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

0

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

sudo -u apache 'whoami'

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

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

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

Albert
источник

Ответы:

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

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

Kamil Maciorowski
источник
Brilliant. Спасибо, это работает. :)
Albert