Выполненная часть сценария удара как другой пользователь

Существует ли способ сделать часть сценария выполненной как другой (некорневой) пользователь? Если это помогает, часть, которая будет выполнена, поскольку другой пользователь происходит в конце сценария

Редактирование:
ОС-> Ubuntu 9.04

33
задан 09.01.2010, 11:41

3 ответа

Используйте команду sudo в сценарии.

В форме:

sudo -u username command

sudo управляют командой выполнений как пользовательским именем пользователя.

Если скрипт запускается как корень, я не думаю, что он запросит пароль. Иначе эта статья обсуждает, как использовать sudo с паролем в одной командной строке?, и эта статья обсуждает, как использовать sudo без пароля?

42
ответ дан 07.12.2019, 09:07

Этот ответ хорош, но 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 страница справочника имеет много окровавленных деталей

6
ответ дан 07.12.2019, 09:07

не столь уверенный в этом, но если Вы хотите, что ТОЛЬКО конец того сценария будет работать как другой пользователь, Вы могли добавить su someuser до конца сценария.

Я пропускаю что-то?

Надежда, которая помогает,

С уважением

2
ответ дан 07.12.2019, 09:07

Теги

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