Sei sulla pagina 1di 5

Como utilizar los comandos su y sudo

Ya me he visto en varias situaciones, en las que intentando explicar cmo hacerse root en la terminal, he
intuido que hay cierta confusin entre los comandos sudo y su, creyendo algunos noveles, que "su" es un
diminutivo de "sudo" y que hacen lo mismo.

Estos comandos son totalmente distintos y cada uno sirve para una cosa muy distinta.

Tambin me he dado cuenta que el uso indiscriminado del "sudo su" despus de instalar Ubuntu para
logearse como root e instalar todo tipo de aplicaciones sin necesidad de escribir el "sudo" constantemente,
provoca algunas malas instalaciones y desconfiguraciones, por no eliminar las variables de entorno del
usuario y cargar las del root (ver consejo al final de la gua).

Para sacarnos de dudas, voy a tratar de explicar con detalle, el uso de estos dos comandos:

El comando "su"
Son las siglas de "Switch User" y sirve, como su propio nombre indica, para cambiar de usuario sin
necesidad de hacer un cierre o cambio de sesin (todo esto desde la terminal, esa cosa tan rara, pero
potente y funcional).

Vamos a ver unos ejemplos y para ello, vamos a utilizar dos comandos ms: whoami (quien soy)
y pwd (directorio en el que nos encontramos en la terminal):

juanetebitel@equipo:~$ whoami
juanetebitel
juanetebitel@equipo:~$ pwd
/home/juanetebitel
Aqu vemos con "whoami", que soy "juanetebitel" y con "pwd", que estoy en mi carpeta personal
"/home/juanetebitel".

Como anotacin, decir que la lnea con que siempre se abre nuestra terminal:

juanetebitel@equipo:~$
Se denomina: "Prompt" y est compuesta por:
nombre de usuario "juanetebitel"
el smbolo de "@"
nombre del equipo "equipo"
dos puntos ":"
directorio donde nos encontramos "~"
smbolo del dolar "$" (si estamos como root cambiar a "#").
Hay que tener en cuenta que en la parte del directorio donde nos encontramos aparece el smbolo "~", que
equivale a la propia carpeta personal del usuario en cuestin "/home/juanetebitel".

Ahora vamos a cambiar al usuario "manuel" con el comando: "su nombreusuario":


juanetebitel@equipo:~$ su manuel
Contrasea: [la de manuel]
Nota: Nos pedir la contrasea de "manuel" (no la de juanetebitel)
Y comprobamos quien es y donde est:
manuel@equipo:/home/juanetebitel$ whoami
manuel
manuel@equipo:/home/juanetebitel$ pwd
/home/juanetebitel
Vemos que es "manuel" pero sigue en mi carpeta personal "/home/juanetebitel" y no en la suya, no
cambiando las variables de entorno. Eso s, en el Prompt (texto por defecto antes del "$"), esta variable de
entorno es actualizada y nos muestra el nuevo usuario y el home del usuario, donde nos encontramos:
"manuel@equipo:/home/juanetebitel$". Esto es muy importante tenerlo en cuenta a la hora de

hacerse root.

Si queremos cambiar al usuario "manuel" y adems cambiar a su carpeta personal y dems variables de
entorno, aadimos un espacio en blanco y un guin medio "-" a "su" (antes de manuel):
juanetebitel@equipo:~$ su - manuel
Contrasea: [la de manuel]
manuel@equipo:~$ whoami
manuel
manuel@equipo:~$ pwd
/home/manuel
Aqu vemos que en el Prompt aparece el directorio con el smbolo "~", que es igual que estar en la propia
carpeta personal del usuario en cuestin manuel@equipo:~$".

Cambiar al usuario root activado:


En sistemas GNU/linux con la cuenta del root activada (no es el caso de Ubuntu por defecto), para
cambiar al usuario "root", se puede hacer escribiendo despus del "su" el usuario ("su root") o no ("su"),
aunque es ms utilizada esta ltima:

juanetebitel@equipo:~$ su
root@equipo:/home/juanetebitel# whoami
root
root@equipo:/home/juanetebitel# pwd
/home/juanetebitel
Como dijimos, "su", cambia de usuario pero no cambia de directorio $HOME ni dems variables de
entorno.

Si queremos cambiar a root y adems cambiar a su carpeta personal y dems variables de entorno,
aadimos un espacio en blanco y un guin medio "-":

juanetebitel@equipo:~$ su -
root@equipo:~# whoami
root
root@equipo:~# pwd
/root
Para salir del usuario "root" o "manuel" y volver a nuestro usuario "juanetebitel", ejecutamos el comando:

exit
Para ver el manual de "su" ejecutar en una terminal:

man su
Para salir del manual pulsar la tecla q.
El comando "sudo"
"Sudo" viene de "switch user do" y permite a los usuarios ejecutar acciones con los privilegios de
seguridad del root, de manera segura. Se instala por defecto en /usr/bin.

Por defecto Ubuntu trae desactivada la cuenta del "root", por seguridad y para administrar el sistema
existe un grupo de usuarios denominado "sudoers users" (administradores o admin), los cuales pueden
obtener permisos de root, mediante la utilizacin de "sudo".

El usuario con el que instalamos Ubuntu, se encuentra incluido en este grupo de administradores.

El archivo que determina el acceso a las tareas administrativas del grupo "sudoers users" es
"/etc/sudoers". En Ubuntu 12.04 el archivo por defecto viene configurado as:
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification


root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges


%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command


%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
visudo"
Nota: todas las lneas con una # delante son comentarios y el sistema no los lee. Este archivo solo puede ser editado por el root con "

Este archivo configura el sistema de forma que cualquier usuario del grupo "admin" (administrador)
pueda realizar tareas administrativas anteponiendo el "sudo" a cualquier orden o comando.

En la terminal se utiliza el comando "sudo", anteponindolo a la orden o comando a ejecutar:


sudo comando
Para ver el manual de "sudo" ejecutar en una terminal:
man sudo
Para salir del manual pulsar la tecla q.

Cambiar al usuario root desactivado


Algunas veces, cuando vamos a ejecutar muchos comandos como root, podemos cambiar al usuario root,
para as, ahorrarnos escribir el "sudo" en cada lnea de rdenes.

A la hora de cambiar al usuario root en Ubuntu y al ser una tarea administrativa, deberemos de utilizar el
"sudo" y hay varias maneras de hacerlo:

La ms comn, pero no la mejor, es utilizar el "sudo su", manteniendo las variables de entorno y el
$HOME:
juanetebitel@equipo:~$ sudo su
root@equipo:/home/juanetebitel# whoami
root
root@equipo:/home/juanetebitel# pwd
/home/juanetebitel
Nota: La contrasea que nos pide es la del usuario que ejecuta el "sudo", no la del root (si la tuviramos
activada)

Tambin podemos conseguir una shell de root sin eliminar las variables de entorno con: "sudo -s" (mucho
ojo con este comando, el prompt no te avisa de que sigues en el home del usuario):
juanetebitel@equipo:~$ sudo -s
root@equipo:~# whoami
root
root@equipo:~# pwd
/home/juanetebitel
Si queremos cambiar al $HOME y dems variables de entorno, utilizamos el guin medio "-":
juanetebitel@equipo:~$ sudo su -
root@equipo:~# whoami
root
root@equipo:~# pwd
/root
Una cosa a tener en cuenta es que con "sudo su" o "sudo su -", ejecutamos recursivamente a root. Me
explico, con "sudo" ejecutamos la siguiente orden (cambio de usuario "su") como root, creando una serie
de variables y luego al ejecutarse el cambio de usuario ("su") nos volvemos a loguear otra vez como root,
con lo cual ejecutamos muchos procesos innecesarios, y lo ms importante, todos como root.

Es por eso, que lo ms recomendable es utilizar la opcin "-i" de sudo: "sudo -i".
juanetebitel@equipo:~$ sudo -i
root@equipo:~# whoami
root
root@equipo:~# pwd
/root
Con este comando cargamos una shell de root, y lo ms importante, eliminamos las variables de entorno del usuario y cargamos las del root, cosa que no pasa con
sudo -s", que si bien nos da una shell de root, no elimina las variables del usuario.
"

Para salir del usuario "root" y volver a nuestro usuario "juanetebitel", ejecutamos el comando:
exit

Consejo:
En Ubuntu, la mejor opcin es usar el sudo en cada uno de los comandos a ejecutar:
sudo comando
Pero si hay que ejecutar muchos podemos usar:
sudo -i
Mejor que "sudo su" o cualquiera de los otros.

Tambin os puede interesar leer como activar la cuenta del root y ms cosas sobre l en:
http://www.ubuntu-guia.com/2010/09/activar-desactivar-root-ubuntu.html
HABILITAR EL USUARIO ROOT EN UBUNTU

Los que administramos sistemas amamos usar el usuario root, pues instalar sudo en un servidor no es algo
que me guste hacer, porque da pi (oportunidad) a que hayan ms usuarios con privilegios

administrativos en el server

El problema es que cuando llegamos a casa y estamos usando una distro como Ubuntu, el usuario root no
est habilitado ya saben, Canonical en su afn de que no daemos el sistema simplemente no nos deja
usar root directamente _ no s ustedes, pero esto a m se me parece un poco a Windows jeje.

HABILITAR ROOT EN UBUNTU


Los que deseen tener root habilitado es simple, con 2 comandos podremos hacerlo.

sudo -i

Esto nos permitir acceder como root, claro, luego de que pongamos el password de nuestro usuario.

sudo passwd root

Esto nos cambiar el password del usuario root, y listo ya podemos presionar Ctrl+F1 y poner como
usuario root y como password el que acabamos de especificar.

Y SI QUIERO VOLVER A DESHABILITAR ROOT?


Con un comando bastar para volver a deshabilitarlo:

sudo passwd -dl root

FIN!

Bueno nada ms que agregar, este es un post realmente corto, espero le sea de utilidad a alguien.

Enjoy!

Potrebbero piacerti anche