Переключающиеся пользователи в сценарии удара

Я хочу выполнить сценарий удара, который переключает пользователя и затем выполняет ряд команд. Ни одно из этого пользователи не имеет полномочия пользователя root. Я предполагаю, что должен отредактировать sudoers файл для предоставления user1 (пользователь, выполняющий сценарий) полномочия смочь зарегистрироваться как user2 без подсказки пароля. Я искал этот пример, но я не нашел никого.

Заранее спасибо.

0
задан 29.03.2011, 09:48

3 ответа

В этом примере:

  • Пользователь, запускающий скрипт = fred
  • Пользователь сценарий хочет выполнить определенные команды как = boris
  • Управляет, чтобы сценарий хотел работать как boris =/bin/cat и/bin/rm

В sudoers файле (visudo) имеют:

fred   ALL=(boris) NOPASSWD:/bin/cat, (boris) NOPASSWD:/bin/rm

Затем в сценарии:

#!/bin/sh
sudo -u boris cat /home/boris/privatefile
sudo -u boris rm /home/boris/privaterubbish

Если Вы хотите позволить fred выполнять какую-либо команду, поскольку boris используют это в sudoers:

fred    ALL=(boris) NOPASSWD:ALL
1
ответ дан 24.11.2019, 12:04

Поместите ряд команд в файле, заставьте его запуститься с #!/bin/sh, и сделайте это исполняемым файлом. Затем дайте пользовательское разрешение запустить тот скрипт с visudo.

Остерегайтесь: это, вероятно, предоставит Escape им для выполнения любой команды. Альтернатива должна записать программу C, которая выполняет рассматриваемые команды. Даже затем необходимо ступать осторожно, например, убрать environmentvariables, который пользователь мог использовать, чтобы ввезти контрабандой способы заставить команды выполниться способами, которыми Вы не ожидали.

0
ответ дан 24.11.2019, 12:04

sudoers файл симпатичен сам документирующий, по моему опыту; это заполнено комментариями и примерами. Можно стать довольно детализированными с полномочиями как @reinierpost упомянутый, и необходимо знать, что Вы эффективно даете этому пользовательскому суперпользователю полномочия, разрешая их использовать sudo.

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

origuser           ALL = (ALL) ALL 

или если Вы хотите обойти подсказку пароля

origuser           ALL = NOPASSWD: ALL

Насколько переключающиеся пользователи идут, Вы могли бы использовать sudo -u [command] или sudo -u -i [command] если Вам нужна среда 'целевого' пользователя.

0
ответ дан 24.11.2019, 12:04

Теги

Похожие вопросы