Puedo hacer un su
con su <username>
y me pide mi contraseña. ¿Hay un parámetro de contraseña para su
que no se me solicite una contraseña?
p.ej su <username> -p <password>
superuser
aquí, superuser.com/questions/67765/...
Puedo hacer un su
con su <username>
y me pide mi contraseña. ¿Hay un parámetro de contraseña para su
que no se me solicite una contraseña?
p.ej su <username> -p <password>
superuser
aquí, superuser.com/questions/67765/...
Respuestas:
Si desea escribir un script que se ejecute como un usuario diferente, algo como esto funciona, aunque genera la palabra "contraseña" sin una nueva línea para la salida estándar
su - username <<!
enterpasswordhere
enter commands to run as the new user
!
si tiene un usuario llamado fred con una contraseña de 1234 y desea obtener un directorio de inicio de ls of fred como fred, sin la cadena de contraseña mostrada, se vería como
su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!
su: must be run from a terminal
.
Creo que no existe y no sería una buena idea. He aquí por qué:
si escribe una contraseña en un comando como su <username> -p <password>
, se almacenaría en texto sin formato en su historial de bash. Este es ciertamente un gran problema de seguridad.
Si necesita ejecutar comandos con su
(o sudo
) de forma automática, escriba un shellscript que contenga los comandos sin su
o sudo
y ejecutesu <username> script.sh
su root script
todavía necesita ingresar passwd.
echo <passwd> | sudo -S <command-line>
Aunque no es seguro, pero funciona.
Si desea ejecutar algunos comandos específicos como un nuevo usuario, use el siguiente comando:
sudo -u {username} {command to be executed as the new user}