
Compartir
Acerca de sudo
Algunas de las preguntas que más se repiten cuando alguien que no conoce Ubuntu lo instala por primera vez tienen relación con sudo:
- ¿Donde está la cuenta de root?
- Necesito ejecutar dsafkljsd como root y no me funciona su (o gksu)
- Lo primero, ¿qué es sudo?:
- Se podría decir que sudo es un sistema de autorización. Es decir, en cualquier máquina con GNU/Linux existe un usuario que es el todopoderoso (root), que es el que puede administrar la máquina a su antojo. Pues bien, en el caso de Ubuntu, ese todopoderoso se ha ido de vacaciones y nos ha dejado un sustituto (que es el usuario que se crea en el proceso de instalación) con la autorización para hacer todo lo que suele hacer root.
- Entonces, ¿ese usuario es root?
- No, ni mucho menos, ese usuario puede hacer todas las labores que hace root pero siempre que muestre la autorización, si no va con la autorización colgada del pecho no podrá abrir muchas puertas.
- Entonces, ¿qué hago cuando tengo que instalar los drivers de JHGF y las instrucciones me dicen que lo haga como root?
- Ejecutarlo con sudo.
- README.txt
- download-deps.sh
- install-jhgf.sh
# Accede como root su # Comprueba, descarga e instala dependencias ./download-deps.sh # Ejecuta la instalación ./install-jhgf.sh exitEstá claro que si intentamos seguir estas instrucciones nos quedamos atrancados en el primer paso, así tenemos que hacer una pequeña traducción a Ubuntu:
# Comprueba, descarga e instala dependencias sudo ./download-deps.sh # Ejecuta la instalación sudo ./install-jhgf.shPero, ¿qué ocurre si en lugar de tener que ejecutar un par de comandos como root tenemos que hacer un montón de cosas más como si fueramos root (por ejemplo editar varios ficheros de configuración)?. ¿Tenemos que estar escribiendo sudo delante de cada acción que queramos hacer? Esa es una posibilidad, pero no la única, en el ejemplo anterior podriamos haber hecho otra cosa, algo distinta:
# Accede como root sudo -s # Comprueba, descarga e instala dependencias ./download-deps.sh # Ejecuta la instalación ./install-jhgf.sh exitPor tanto si tenemos que lanzar varios comandos como root una buena posibilidad es utilizar sudo -s para acceder como root y a partir de ahí ejecutar lo que se necesite sin escribir sudo. Además en este segundo caso se puede ver que la traducción de las instrucciones ha consistido, simplemente, en sustituir su por sudo -s quedando el resto igual.
- ¿Y qué pasa si tengo que abrir Nautilus (u otra aplicación gráfica) como root?
- Pues utilizamos gksudo. Por ejemplo gksudo -u root nautilus --no-desktop abre Nautilus como root después de preguntarnos en una ventanita por nuestra contraseña. Tan solo tenemos que crearnos un lanzador que ejecute lo anterior y pulsarlo cuando queramos tener esa funcionalidad. Aquí se puede encontrar un script para Nautilus que hace precisamente eso a golpe de ratón (una vez instalado simplemente hay que seleccionar en el menú que aparece con el botón auxiliar, derecho para diestros, Script->Nautilus Root o como lo hayamos llamado).
- Ahora bien, ¿me merece la pena activar la cuenta de root y eliminar sudo?
- Me temo que la respuesta será diferente según quién se la plantee. Tan solo hay que recordar que Ubuntu viene preparado para sudo y que todas las opciones de menú que son tareas administrativas, y hay unas cuantas, están configuradas con gksudo, por tanto si vamos a activar la cuenta de root y desinstalar o desactivar sudo tendremos que modificar todas esas opciones del menú para sustituir gksudo por gksu, al menos si queremos que funcionen
Comentarios
¿Se trata de un script que
¿Se trata de un script que utiliza sudo y ejecuta apache? Si es eso está pidiendo la password del usuario que lanza el proceso apache y al ser un proceso de servidor no te solicita a tí esa password y dará simplemente error. Entiendo que tendrías que tener configurado el usuario con el que se lanza apache (usualmente www-data) para que pueda ejecutar con sudo los comandos de ese script, y además supongo que tendrías que ponerle en la configuración del sudo que no pida password.
Por ejemplo, si el usuario es www-data y en el script tienes que ejecutas un mv con sudo tendrías que poner en /etc/sudoers algo parecido a:
Si vas a tocar el archivo /etc/sudoers, hazlo mediante el comando visudo para evitar errores.
mi problema es q mi script sh
mi problema es q mi script sh funciona bien dentro de mi servidor cuando lo mando ejecutar desde php no me resuelve nada dentro de mi script utilizo antes de cada comando sudo y en los logs de apache me marca q de entrada a un password:3 veces de ahi me sale el mensaje de sorry try again y me vuelve a pedir password en realidad no se q password
¿Qué quieres decir con que
¿Qué quieres decir con que cambiaste la contraseña? ¿que le pusiste contraseña al root? ¿que cambiaste la contraseña de tu usuario?
En cualquier caso sudo funciona con la contraseña del propio usuario, no utiliza en ningún caso la del root (tenga o no tenga).
yo cambie la contraseña, como
yo cambie la contraseña, como puedo activar el programa