sudo -u пользователь «whoami» работает, но не другие команды


0

Когда я запускаю следующее, это работает:

sudo -u apache 'whoami'

Но когда я запускаю это, он говорит, что команда не найдена:

sudo -u apache 'ls -al ~/.ssh'

Как это исправить?

Ответы:


2

sudo видит весь ls -al ~/.ssh строка как один аргумент и запускает его как один, как если бы apache пользователь вызван

'ls -al ~/.ssh'

И это не работает, потому что нет инструмента, названного буквально ls -al ~/.ssh в целом. Ваша команда должна быть больше похожа

sudo -u apache ls -al ~/.ssh

Обратите внимание, это будет расширяться ~ до sudo даже начинается, в контексте вашего фактического пользователя. Это, с другой стороны:

sudo -u apache ls -al ~apache/.ssh

может быть, что вы действительно хотите.


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