1 votos

"no se puede ejecutar el archivo binario" cuando se utiliza su

Las siguientes obras.

$ ls -d /tmp
/tmp@

Pero si intento ejecutarlo con su no funciona.

$ su otheruser ls -d /tmp
Password:
/bin/ls: /bin/ls: cannot execute binary file

Luego, si me convierto en usuario, vuelve a funcionar.

$ su - otheruser
Password:

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
$ ls -d /tmp
/tmp@

¿Alguna idea de lo que está pasando aquí? Estoy ejecutando Monterey en un Mac Intel.

1voto

Nate Puntos 220

Esa es la sintaxis incorrecta para ejecutar un comando con su . La sintaxis que estás usando funcionaría con sudo pero su funciona de forma diferente. Para ejecutar un comando con su Utiliza el -c con el comando completo como una sola cadena:

su otheruser -c 'ls -d /tmp'

(Los argumentos después del nombre de usuario se pasan al shell de inicio de sesión del otro usuario como argumentos, pero casi todos los shells entienden -c como "aquí hay una cadena de comandos para ejecutar").

Alternativamente, se puede hacer prácticamente lo mismo con sudo :

sudo -u otheruser ls -d /tmp

Tenga en cuenta que su le pedirá la contraseña de la cuenta que está cambiando a , mientras que sudo le pedirá la contraseña de la cuenta que está cambiando de (y también verifique que está autorizado a ejecutar ese comando como ese otro usuario en el archivo /etc/sudoers).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X