Me gustaría ejecutar sudo con mi contraseña como parámetro para poder usarlo para un script. Lo intenté
sudo -S mypassword execute_command
pero sin ningún éxito. ¿Alguna sugerencia?
Me gustaría ejecutar sudo con mi contraseña como parámetro para poder usarlo para un script. Lo intenté
sudo -S mypassword execute_command
pero sin ningún éxito. ¿Alguna sugerencia?
sudo
correctamente para que no solicite la contraseña de ciertos programas / usuarios / grupos para evitar tales hacks sucios.
Respuestas:
El interruptor -S hace que sudo lea la contraseña de STDIN. Esto significa que puedes hacer
echo mypassword | sudo -S command
para pasar la contraseña a sudo
Sin embargo, las sugerencias de otros que no implican pasar la contraseña como parte de un comando, como verificar si el usuario es root, probablemente sean ideas mucho mejores por razones de seguridad.
sudo chmod -R 0100 myScriptFolder
:? ¿No resolvería eso los problemas de seguridad (siempre que nadie use su computadora como root excepto usted)?
Puede configurar el s
bit para su script para que no lo necesite sudo
y se ejecute como root (y no necesita escribir su contraseña de root en el script):
sudo chmod +s myscript
+s
es el bit setuid. +t
es la parte pegajosa.
echo -e "YOURPASSWORD\n" | sudo -S yourcommand
echo -e "YOURPASSWORD\n" | sudo -S "run -x"
. Dice sudo: run -x: command not found
. ¿Alguna idea de como solucionar esto?
Una opción es usar la bandera -A para sudo. Esto ejecuta un programa para solicitar la contraseña. En lugar de preguntar, podría tener un script que escupe la contraseña para que el programa pueda continuar.
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi