Linux (CentOS 6.6) Создать пользователя Ограничить доступ по FTP / SSH и разрешить только определенный набор команд

0

У меня есть VPS-сервер, который весь день запускает скрипт, который используется для проверки клиентов, использующих наше программное обеспечение. Проблема в том, что иногда этот скрипт падает, и мне нужно перезапустить его. Я знаю кого-то, кому я хочу разрешить перезапустить скрипт, когда у меня нет проблем с этим. Это то, что я не хочу разрешать ему доступ к VPS через FTP / SSH, и я хочу ограничить его пользователя определенным набором команды.

например, только эти команды (просто перечислить несколько)

service mysqld start
screen -ls
dataDev331
источник

Ответы:

0

Вы можете разрешить ему подключаться к вашему серверу через SSH как обычный пользователь, а затем предоставить ему права sudo строго для действия, которое вы хотите, чтобы он выполнял.

Вы должны добавить новую группу для этого (назовем это пока services):

sudo addgroup services

Добавьте пользователя вашего парня в эту группу:

sudo adduser your_guy_user services

Отредактируйте /etc/sudoers.d/services и добавьте запись для группы услуг:

%services ALL=(ALL) /usr/sbin/service
%services ALL=(ALL) /usr/bin/service mysqld *
%services ALL=(ALL) /path-to/screen

Сохраните файл, попросите вашего парня войти в систему через ssh и попробуйте перезапустить службу mysql.

Если вы хотите ограничить команды, которые он может использовать, вы должны изменить разрешения для этих команд:

/ bin / ping - по умолчанию имеет 755 разрешений (владелец имеет rwx , группа имеет rx , остальные имеют rx ), поэтому команда может быть выполнена любым пользователем. Если вы не хотите, чтобы команда ping была доступна для вашего парня, сделайте chmod 750 /bin/ping. Таким образом, только пользователь root и корень группы будут иметь права на выполнение этой команды. Это всего лишь пример, вы можете экстраполировать отсюда.

Таким образом, в конце пользователь должен иметь возможность войти на ваш сервер через SSH, чтобы перезапустить эту службу. Конечно, это может быть достигнуто другими различными способами, такими как наличие сценария Python, который действует как веб-сервер, так что пользователь подключается к нему, входит в систему с именем пользователя и паролем и выполняет команду restart (сценарий может быть на python, perl, php) но это требует кодирования и создания сценария.

Так что я бы пошел с первым вариантом.

Богдан Стойка
источник