Estoy tratando de aprender bash scripting. Estoy trabajando en un problema práctico y en un momento necesito agregar una línea a un archivo que requiere rootpermiso para escribir.
El código se ve así:
# some code
echo "add this line to the code" >> fileName
# some code
¿Es posible de alguna manera hacer que el script solicite la contraseña de root, valide la contraseña y, con una autenticación exitosa, modifique el archivo? La secuencia de comandos debería volver al modo de usuario y continuar la ejecución del comando.

sudo, las contraseñas no parecen ser almacenadas en cachésu.Puedes usar
teeconsudo:echoLa salida de 'se redirige con|( pipe ) asudo tee.teelee de la entrada estándar y escribe en la salida estándar cualquier archivo dado, en este casofilename.-a(o--append) haceteeanexar a los archivos, sin ellos los archivos se sobrescribirán. A medida queteese ejecutasudo, abre archivos con permisos de root. Finalmente,> /dev/nullsuprimeteela salida a salida estándar .Una ventaja de usar en
teelugar de simplemente iniciar todo el comando, incluida la redirección consu -cosudo sh -ces, es que no tiene que cambiar la cita del comando inicial de ninguna manera (las líneas de cita que ya contienen citas pueden ponerse bastante feas a veces).fuente
Pruebe esto Este comando está disponible en Unix y Linux.
sudo sh -c "echo 'add this line to the code' >> fileName"fuente
Haría el truco:
fuente
ssh? No necesitasuconsudoy tampoco necesita especificar,rootya que es el valor predeterminado. Con todo, un poco más de explicaciones sería bueno ya que el OP quería aprender algo y no solo un problema resuelto.