En cualquier distribución GNU/Linux, hay un superusuario llamado root, el equivalente a un usuario de Windows en el grupo de administradores. El usuario root puede hacer cualquier cosa, y por lo tanto, hacer el trabajo diario como superusuario puede ser peligroso. Podrías hacer algo mal y destruir todo el sistema. Lo ideal es que se ejecute como un usuario que sólo tiene los privilegios necesarios para la tarea en cuestión (sudo). En algunos casos, esto es necesariamente root, pero habitualmente debes ser un usuario regular.
Usando sudo
Por defecto algunas distros no configuran una contraseña de root y por lo tanto no se puede acceder como tal. En su lugar, se te da la posibilidad de realizar tareas con privilegios de superusuario utilizando sudo.
Esto significa que no puedes iniciar sesión como root directamente o usar el comando su para convertirte en el usuario root. Pero en otras distribuciones sí puedes hacer login como root. Sin embargo, dado que la cuenta de root existe físicamente, todavía es posible ejecutar programas con privilegios de nivel de root.
El comando sudo permite a los usuarios autorizados ejecutar ciertos programas como root sin tener que conocer la contraseña de root.
El siguiente ejemplo ejecutará el comando whoami como usuario root. Reemplaza el siguiente comando whoami con el comando que quieres ejecutar como root:
$ sudo whoami root
Aunque puedes crear una contraseña para la cuenta root que te permita iniciar sesión como root con su, esta no es la forma típica de hacer las cosas en algunas distros. En su lugar, Ubuntu esperaría que utilices sudo. Sudo es una alternativa a dar a la gente una contraseña de root para realizar tareas de superusuario. En una instalación predeterminada de tu distro, la persona que instaló el sistema operativo recibe el permiso “sudo” de forma predeterminada, mientras que cualquier persona con permiso sudo puede realizar algo “como superusuario” mediante la preparación de sudo para un comando. Por ejemplo, para ejecutar apt dist-upgrade como superusuario, puedes usar:
$ sudo apt dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Por defecto, sudo te pedirá la contraseña de tu propia cuenta cuando ejecutas el comando. Esto ayuda a la seguridad. Las credenciales se recuerdan durante unos minutos, así que si tienes algunas tareas que hacer con sudo, sólo te pedirá tu contraseña en la primera vez y durará escaso tiempo, el cual cumplido, te volverá a pedir la contraseña. Cuando ejecutes programas gráficos que requieran privilegios de root, también se te pedirá login de sudo.
Beneficios del uso de Sudo
Hay una serie de beneficios para dejar desactivados por defecto los inicios de sesión de root en algunas distros, puedes elegir de antemano qué usuarios tienen acceso a sudo. No es necesario que recuerden una contraseña de root, ya que utilizan su propia contraseña. Si tienes varios usuarios, puedes dar permiso a algunos usuarios sudo o revocar el acceso de otro superusuario eliminando su permiso sudo, sin cambiar la contraseña de root y notificando a todo el mundo de una nueva contraseña. Incluso puedes elegir qué comandos puede ejecutar un usuario usando sudo y qué comandos están prohibidos para ese usuario, evitando así el inicio de sesión interactivo “puedo hacer lo que quiera” de forma predeterminada. Sudo añade una entrada de registro de la ejecución de comandos (en /var/log/auth.log). Si alguien estropea las cosas, puede volver atrás y ver qué comandos se ejecutaron. Sin una contraseña de root, hace que los ataques de fuerza bruta en la cuenta de root sean imposibles. Esto es relevante si permites el inicio de sesión a través de SSH. En su lugar, un atacante necesitaría saber el nombre de una cuenta local.
Usando un shell de root
Si no quieres usar el comando sudo cada vez que necesites ejecutar un comando con privilegios de root, puedes obtener el shell de root usando el comando sudo y su opción -i:
$ sudo -i
o bien:
$ sudo su
Ten en cuenta que la línea de comandos cambiará de $ a #, lo que indica que actualmente te encuentras en un intérprete de comandos de root. Ahora estás actuando como un superusuario para cada comando. Es un buen principio de seguridad no permanecer como superusuario más tiempo del necesario, sólo para disminuir la posibilidad de causar accidentalmente algún daño al sistema.
Configurar/Cambiar contraseña root predeterminada
Si quieres cambiar la contraseña root en blanco predeterminada y establecer una contraseña de root, ingresa:
[dvarela@pruebas ~]$ sudo passwd [sudo] contraseña para pedro: Introduzca la nueva contraseña de UNIX: Vuelva a escribir la nueva contraseña de UNIX: passwd: contraseña actualizada correctamente
Una vez establecida la contraseña de root, puedes iniciar sesión como root utilizando el comando su:
[dvarela@pruebas ~]$ sudo -i [root@pruebas ~]#
Finalmente es así como cambiamos la contraseña de root por defecto para que ahora podamos iniciar sesión y usar algunas distros como superusuario, pero recuerda tener mucho cuidado con el uso de tu ordenador de esta manera.