Eu quero executar um comando em um shell em nome de outro usuário. O comando é o seguinte:
sudo -u USER cd /home/USER
eu recebo
sudo: cd: command not found
Qual é a sintaxe correta para o comando passar para o sudo?
sudo
cd-command
coffeMug
fonte
fonte
cd
. OP provavelmente quersudo -i
.cd
não é um comando externo, é apenas um shell embutido, portantosudo
não pode executá-lo. A razão pela qualcd
existe apenas como um shell embutido é que um processo não pode afetar o diretório atual de outro processo; portanto, um programa que altera o diretório atual e sai imediatamente é inútil. (Quase inútil: umcd
programa retornaria um status que indica se foi bem-sucedido.)Se você deseja alterar para um diretório e executar comandos como outro usuário, execute um shell que faça tudo isso.
fonte
Eu costumo usar:
sudo su - USERNAME
e, em seguida, faça o que você precisa como usuário. Para sair, basta digitarexit
fonte
USERNAME
e, em seguida, executar o comando é diferente que a execução direta de comando comoUSERNAME