Quiero ejecutar un comando en un shell en nombre de otro usuario. El comando es el siguiente:
sudo -u USER cd /home/USER
yo obtengo
sudo: cd: command not found
¿Cuál es la sintaxis correcta para que el comando pase a sudo?
sudo
cd-command
taza de cafe
fuente
fuente

cd. OP probablemente quieresudo -i.cdno es un comando externo, es solo un shell incorporado, porsudolo que no puede ejecutarlo. La razón por la quecdsolo existe como shell incorporado es que un proceso no puede afectar el directorio actual de otro proceso; por lo tanto, un programa que cambia el directorio actual y sale inmediatamente es inútil. (Casi inútil: uncdprograma devolvería un estado que indica si fue exitoso).Si desea cambiar a un directorio y luego ejecutar comandos como otro usuario, ejecute un shell que haga todo eso.
fuente
Tiendo a usar:
sudo su - USERNAMEy luego hago lo que necesita como ese usuario. Para salir simplemente escribaexitfuente
USERNAMEy luego ejecutar el comando es diferente que ejecutar el comando directamente comoUSERNAME