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

Правило Sudoers не работает должным образом

Я хочу разрешить пользователю visit запускать команды как пользователь admin, но только команды, расположенные в определенном каталоге.
Поэтому я добавил в файл sudoers следующее правило:

visit localhost=(admin) NOPASSWD: /home/admin/

Внутри каталога / главная / админ / есть два файла: cmd.sh и dummy.txt
Содержание cmd.sh является:

кто я
коснитесь dummy.txt

Затем я вхожу в систему как пользователь visit и введите:

sudo -u admin /home/admin/cmd.sh

и вывод для этого:

админ
touch: не может коснуться `dummy.txt ': в разрешении отказано

Но если я войду как admin и введите ./cmd.sh, вывод:

админ

и dummy.txt успешно затронут

Почему пользователь visit не могу коснуться adminфайл при использовании sudo?

К содержимому cmd.sh:

whoami
touch dummy.txt

Добавить:

pwd

Я подозреваю, что когда пользователь "visit" запускает сценарий с sudo, он не запускается в каталоге, который вы думаете. Вы можете решить эту проблему, передав полный путь к команде tuuch, например,

touch /home/admin/dummy.txt

Вы не полностью указали путь к dummy.txt в своей сенсорной команде. Я предполагаю, что вы запускаете скрипт из места, где у администратора нет прав на запись.

sudo -u admin /home/admin/cmd.sh

Вы говорите sudo запустить cmd.sh от имени администратора в вашем текущем каталоге, который из вашего описания, скорее всего, посещает домашний каталог. admin не имеет права записи в домашний каталог для посещения, поэтому он не работает.