El Superusuario (root) en Ubuntu – sudo su
Saludos,
En esta oportunidad quiero documentar lo que entiendo de como esta establecida la política de uso y funcionamiento entorno al usuario root en nuestros sistemas GNU/Linux *Ubuntu.
Introducción:
Por cuenstiones de seguridad, en ubuntu, se procura no hacer uso indiscriminado del usuario root, que como debemos entender, este es el usuario con identificación cero (UID – User ID = 0). Es decir, es el usuario administrador o que todo lo puede en nuestro sistema.
Este usuario root, tiene permiso de hacer cualquier cosas, borrar, modificar, ejecutar o crear cualquier objeto o archivo (fichero/file) en nuestro Ubuntu. En consecuancia en lógico pensar que para garantizar la integridad de nuestro sistema operativo, el uso de este usuario con tales privilegios, sea celosamente de exclusividad para el administrador de la maquina.
Siendo así, y considerando, que este usuario, es entonces un usuario común en todos los sistemas linux, a diferencia del usuario que se crea durante la instalación que normalmente es diferente para cada maquina (en ambientes no coorporativos) entonces, en Ubuntu el usuario root, viene sin clave de acceso preestablecida. Como lo podemos ver en el archivo: /etc/shadow
root:!:14301:0:99999:7::: daemon:*:14301:0:99999:7::: bin:*:14301:0:99999:7::: sys:*:14301:0:99999:7:::
Observermos, que en el contenido del archivo, los campos se separan por el caracter de dos puntos (“:”) . Por lo que en la primera linea, en el segundo campo, se especifica el password del usuario definido en el primer campo, así entonces como observamos que en el caso de root aparece entonces un signo de exclamación (!) esto quiere decirle al sistema que el usuario root no tiene clave establecida.
Siendo así, el usuario root no tiene tampoco derecho a acceder al sistema, motivo por el cual no podrá hacer login. Ni podremos usarlo tampoco de forma indiscriminada.
Otras medidas usuadas para proteger el uso de root, es por ejemplo en el archivo que configura el acceso o login al ambiente gráfico (GDM en el caso de Ubuntu) este archivo es el : /etc/gdm/gdm.conf
En dicho archivo existe entonces una seccion determinada con corchetes, llamada [security] y allí una linea que contiene la variable AllowRoot. En mi archivo se ve mas o menos así:
[security]
# Allow root to login. It makes sense to turn this off for kiosk use, when
# you want to minimize the possibility of break in.
AllowRoot=false
# Allow login as root via XDMCP. This value will be overridden and set to
# false if the /etc/default/login file exists and contains
# “CONSOLE=/dev/login”, and set to true if the /etc/default/login file exists
# and contains any other value or no value for CONSOLE.
AllowRemoteRoot=false
Las lineas resaltadas, inpiden en mi caso, que el usuario root, pueda hacer login al ambiente gráfico tanto de forma local como remota.
Por último, otra de las formas de mantener seguros nuestros sistemas, y en caso de haber instalado el servidor ssh (secure shell) es evitando que se puedan hacer conexiones por este medio con el usuario root, para ello entonces podemos editar en archivo de configuración del servidor ssh, siendo este /etc/ssh/sshd_config el cual en una de sus lineas tiene especificado el que se permita hacer login al usuario root o no. En mi archivo se vé así:
# Authentication:
LoginGraceTime 120
PermitRootLogin no
Es esta linea, la que impide entonces, que el usuario root pueda acceder via ssh.
sudo?
Y si todas esas medidas de seguridad están tomadas, Como hago para administrar mi sistema?
Bueno, la respuesta está en el paquete sudo. sudo significa “super user do” o “Super Usuario Hace” de esta forma, el comando sudo, es el utilizado en la terminal para ejecutar casi cualquier comando como si lo estuviese ejecutando el usuario root nuestra máquina, ahora bien, solo ciertos usuarios pueden usar el comando sudo, por defecto en Ubuntu, durante la instalción, y a diferencia de las otras distribuciones de GNU/Linux, no se pregunta la clave del usuario root, pero si el nombre de un primer usuario y su clave de acceso, ese primer usuario, será entonces quien pueda ejecutar el comando sudo, y en consecuencia casi cualquier comando de root.
Pero y, como lo hace o como lo modifico?
Simple, en el archivo /etc/sudoers (que significaría algo como “quienes pueden hacer sudo”) en este archivo, se encuentra una lista de los usuario o grupos que pueden hacer uso de sudo. Pero este archivo, solo puede ser visto y/o usado por el usuario root o el sistema propiamente, y tiene como caracteristica interesante, es que nadie puede modiicarlo con cualquier editor, y el único que podrá modificarlo en el usuario root con el comando visudo, pero como ya explique no tenemos clave de root, entonces para poder editar el archivo /etc/sudoers sólo podemos hacerlo en ubuntu con el comando:
:~$ sudo visudo
Sin embargo, es interesante, que el archivo no contiene entonces al usuario que establecimos durante la instalación, pero si vemos bien, tiene entonces una linea que dice:
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
Es allí, donde se establece que los miembros del grupo admin, que está especificado en el archivo /etc/group podrán hacer uso del comando sudo.
En consecuencia, el primer usuario que creamos durante la instalación, el mismo fue incluido en el grupo admin del archivo /etc/group y así ese usuario puede ejectuar casi cualquier comando como root, tan solo anteponiedo entonces el comando sudo al comando que quiere ejecutar.
El equivalente al sudo en el ambiente gráfico es el comando gksu y funciona igual que su equivalente sudo en el interprete de comando (terminal) o Shell.
Entonces, si quiero convertirme en el usuario root, tan solo tengo que acceder a la terminal, con un usuario que pertenezca al grupo admin, y ejecutar el comando.
:~$ sudo su
Más adelante, estaré comentando más sobre como funciona entonces el sudo y como configurar mas estrictamente el mismo.





