Запустити команду як «системний» користувач 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?
EMP

3
ви також можете натиснути на опцію -c "your_command_here", щоб передати команду, яку ви хочете виконати, проти очікування оболонки, а потім ввести її в новому підказці.
dmourati

2

Використовуйте судо. Це буде працювати, навіть якщо у користувача немає справжньої оболонки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.