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

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

service mysqld start
screen -ls

1 ответ1

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) но это требует написания кода и создания сценария.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .