Существует ли способ сделать часть сценария выполненной как другой (некорневой) пользователь? Если это помогает, часть, которая будет выполнена, поскольку другой пользователь происходит в конце сценария
Редактирование:
ОС-> Ubuntu 9.04
Используйте команду sudo в сценарии.
В форме:
sudo -u username command
sudo управляют командой выполнений как пользовательским именем пользователя.
Если скрипт запускается как корень, я не думаю, что он запросит пароль. Иначе эта статья обсуждает, как использовать sudo с паролем в одной командной строке?, и эта статья обсуждает, как использовать sudo без пароля?
Этот ответ хорош, но serverfault совет немного опасен - позволил бы любому выполнять что-либо как корень! Таким образом, я отправляю здесь, потому что я не могу отформатировать комментарий.
Я рекомендовал бы использовать visudo для предоставления полномочий, в которых Вы нуждаетесь так точно, как Вы можете. Ввести visudo
и добавьте строку как:
username hostname = NOPASSWD: /full/path/to/command1, full/path/to/command2
Если действительно необходимо выполнить это то же самое на многих хостах, Вы могли бы открыть его с:
username ALL = NOPASSWD: /full/path/to/command1, full/path/to/command2
Но я был бы ** не*, используют также:
username ALL=(ALL) NOPASSWD: ALL
или имя хоста имени пользователя = ВСЕ
sudoer страница справочника имеет много окровавленных деталей