¿Quien es root y por que se cree Dios?

Una de las primeras cosas que van a notar cuando se instala Linux, es que pide que se cree un usuario y que se cree una contraseña para el usuario “root” (a veces permite usar la contraseña del usuario para root, depende de la distribución).

Este usuario (root) es el administrador del sistema, tiene acceso a todos los archivos (se acuerdan que hablamos del Owner y el Group en la guia anterior?) sin importar los atributos/permisos que tengan los archivos y a los procesos del sistema. En definitiva, puede hacer lo que se le antoje.

También suele ser el único usuario con permisos para instalar programas a nivel sistema (se pueden instalar programas como usuario, pero solo para ese usuario y siempre que se alojen dentro de su carpeta), también puede instalar drivers, cambiar configuraciones del sistema como los archivos de /etc y, una de las cosas a tener mas en cuenta, puede romper el sistema.

Root puede hacer lo que quiera en el sistema (bueno, casi lo que quiera, hasta ahora encontré una sola cosa que no puede hacer, pero es demasiado rebuscado para explicarlo acá) pero puede, por ejemplo, borrar archivos que están siendo usados por otro usuario o por el sistema mismo. Esto, obviamente es MUY PELIGROSO.

¿A que viene esta aclaración? Generalmente la gente que usa Windows, se loguea al sistema como Administrador (técnicamente hablando, Administrador bajo Windows, es root bajo Linux) esto se suele hacer por dos motivos, el primero es que no se crea una cuenta de usuario y se deja el usuario Administrador sin password (y después se quejan que Windows es inseguro), el segundo motivo suele ser porque es mas cómodo loguear como Administrador para instalar programas, o cambiar configuraciones del equipo, etc.

Bueno, si bien se puede loguear como root en linux, no es para nada aconsejable, de hecho, se recomienda loguear como usuario normal y cuando sea necesario escalar privilegios y luego de realizar lo que se precisaba hacer, volver a usuario normal. Es decir, usar root lo mínimo indispensable. Esto es por el simple hecho de que si hay algún problema de seguridad, el sistema se va a ver comprometido, ya sea por ejecutar algo sin querer o por intrusión en el sistema, todo se esta ejecutando con privilegios de root, lo que significa que todos los programas tienen acceso a todo sin restricción. Sin embargo, si ejecutamos un comando o programa que podría romper el sistema con un usuario sin privilegios, el sistema no permite ejecutarlo y lo mas grave que puede suceder es que nos tire un mensaje de error.
Para hacer esto de escalar privilegios los programas instaladores como YaST o synaptic por ejemplo, suelen pedir la clave de root cuando se los ejecuta con usuario sin privilegios. Esto elimina en gran parte la necesidad de loguearse como root.
Sin embargo, hay ocasiones en que es necesario utilizar los privilegios de root y el sistema no pregunta la clave, por ejemplo cuando queremos instalar un programa compilando el código fuente (voy a cubrir esto mas adelante) para hacer esto existen dos comandos:

  • su: Eleva los privilegios del usuario a root hasta que se desloguea, obviamente pide la clave de root. (su = super user)
  • sudo: similar a su, pero en vez de elevar los privilegios del usuario, ejecuta un comando con privilegios de root, por ej: “sudo chmod a+w *” cambiaria los atributos de todos los archivos sin importar a quien pertenezcan.

Creo que esto cubre bastante bien el tema de root, ahora les dejo un par de comandos para configurar el tema de usuarios, recuerden que las distribuciones nuevas suelen tener herramientas gráficas para hacer esto, pero, nunca esta demás para arreglar algún problema del sistema conocer estos comandos.

  • passwd: cambia la clave del usuario actual, si se especifica un nombre de usuario cambia la clave de ese usuario, por ej: “passwd igniz”, para cambiar la clave de otro usuario hay que tener privilegios de root.
  • adduser: agrega un usuario al sistema. El uso básico es: “adduser [nombre_de_usuario]“, esto crea la carpeta home del usuario y pide que se le asigne una clave.
  • addgroup: agrega un grupo al sistema o agrega un usuario a un grupo, para agregar un grupo simplemente se especifica el nombre del grupo, así: “addgroup grosos” y para asignar un usuario a un grupo se pone primero el nombre de usuario y después el grupo, así: “addgroup igniz grosos”.
  • deluser: borra un usuario del sistema, solo se especifica el nombre del usuario: “deluser usuario_feo”.
  • delgroup: borra un grupo del sistema, igual que el anterior, se especifica el nombre del grupo a borrar, por ej: “delgroup grupo_feo”.
  • http://Website Edu

    sudo “make me a sandwich” :P