Назад | Перейти на главную страницу

Как мне ограничить пользователей, которые могут запускать определенные пользователем команды в Linux?

У меня 2 аккаунта пользователей, фу и бар

Я хочу разрешить пользователю фу для выполнения команд как root и любого другого пользователя, т.е.

sudo su root -c './ run-my-script'

sudo su bar -c './ другой-скрипт'

sudo su другой -c './ еще один-скрипт

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

sudo su bar -c './ run-my-script'

но нет

sudo su root -c './ run-my-script'

Это возможно ?

Да, конечно, возможно.

Во-первых, вам нужно исправить использование sudo, чтобы выполнить команду от имени пользователя, отличного от root (по умолчанию), с помощью sudo синтаксис: sudo -u username command

Затем вы можете заблокировать пользователей, чью личность пользователь может принять через /etc/sudoers config, например, полностью привилегированный пользователь выглядит так:

jim ALL=(ALL) ALL

Тогда как пользователь с ограничениями выглядит так:

jim ALL=(admin,bill) ALL

Это означает, что если я попытаюсь выполнить команду как пользователь, которого нет в списке, мне будет отказано:

jim@mybox:~$ sudo -u nobody whoami
Sorry, user jim is not allowed to execute '/usr/bin/whoami' as nobody on mybox.