Запустите команду как «системный» пользователь Linux (shell = / bin / false)


29

Я создал «системного» пользователя в Ubuntu 11.04 ( adduser --system) для запуска определенных заданий cron, но иногда я хочу проверить это, вручную выполнив команды от имени этого пользователя. Какой самый простой способ сделать это?

suне работает, потому что пользователь имеет в /bin/falseкачестве оболочки (что хорошо для cron). Я вручную изменил оболочку, чтобы /bin/bashвыполнить тестирование, а затем снова вернул ее обратно, но мне интересно, есть ли более простой способ?

Ответы:


41

Я использую su - targetuser -s /bin/bashиз корневой оболочки.

Для непосредственного выполнения команды используйте -c:

su - targetuser -s /bin/bash -c "/bin/echo hello world" 

Это работает, спасибо! Как я пропустил опцию -s?
ПУОС

3
Вы также можете использовать опцию -c "your_command_here", чтобы передать команду, которую вы хотите запустить, вместо ожидания оболочки, а затем набрать ее в новом приглашении.
Дмурати

2

Используйте sudo. Это будет работать, даже если у пользователя нет настоящей оболочки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.