comando sudo

¿Cómo utilizar el comando Sudo?

Antes de explicar la forma de utilizar el comando sudo, debemos hablar de qué es. El comando permite a los usuarios no root realizar ciertos comandos Linux que generalmente requieren privilegios de un usuario root. También, debemos hablar del archivo sudoers, que le indica al sistema la forma de manejar el comando sudo.

A lo largo de este artículo, te brindaremos todos los conceptos básicos sobre el comando sudo y la forma de editar el archivo sudoers.

Comando Sudo

Para comenzar a entender la manera en la que funciona sudo, primero debes acceder a tu Cloud por medio de SSH.

De forma predeterminada, el usuario root no requiere el uso del prefijo sudo, ya que posee todos los privilegios posibles. Por otra parte, si un usuario no root desea añadir otro usuario, va a necesitar agregar el prefijo sudo al comando useradd, de la siguiente manera:

sudo useradd edward

En el caso de que el usuario no utilice el prefijo sudo, recibirá un mensaje sobre que tiene el permiso denegado.

Archivo Sudoers

El comando sudo se debe configurar por medio de un archivo que se encuentra en /etc/ llamado sudoers.

Gracias al comando sudo, tienes la posibilidad de proporcionar privilegios de un mayor nivel a los usuarios normales. Generalmente, en un cloud, el usuario que generes al instalar Ubuntu poseerá derechos de sudo; a este usuario se lo llama usuario raíz (root user) predeterminado. Además, podrás configurar y agregar más usuarios para que puedan ejecutar el comando sudo. Se puede realizar editando el archivo sudoers.

Advertencia: Debes ser cuidadoso al editar el archivo sudoers. Si lo haces con errores o sintaxis incorrecta, puede desencadenar un bloqueo de todos los usuarios.

Sintaxis del archivo Sudoers

Tienes la posibilidad de abrir el archivo con el editor de texto que quieras. Para este ejemplo, lo haremos utilizando vi:

vi /etc/sudoers
comando sudo
¿Cómo utilizar el comando Sudo?

Debemos ver ciertos formatos y reglas a seguir al editar sudoers:

  • Las líneas que empiezan con # son comentarios.
  • root ALL=(ALL: ALL) ALL – quiere decir que el usuario root posee privilegios ilimitados y podrá ejecutar el comando que desea en el sistema.
  • %admin ALL=(ALL) ALL – El % lo que hace es especificar un grupo. Las personas del grupo de administradores poseen los mismos privilegios que un usuario root.
  • %sudo ALL = (ALL: ALL) ALL – Todos los usuarios del grupo sudo pueden ejecutar cualquier comando.

Otra de las líneas que debes tener en cuenta es #includedir /etc/sudoers.d, esta línea asegura que podemos añadir configuraciones al archivo sudoers.d y vincularlo con este.

Edición del archivo Sudoers

Ahora veamos la forma de editar el archivo /etc/sudoers. Utiliza el siguiente comando:

sudo visudo -f /etc/sudoers

Desde nuestro lado, te recomendamos que emplees Visudo para editar el archivo sudoers. Visudo lo que hace es asegurar de que sudoers sea editado por un solo usuario a la vez y brinda las comprobaciones de sintaxis necesarias.

Para visualizar los usuarios que se encuentran en el grupo sudo, puedes utilizar un comando grep:

grep ‘sudo’ /etc/group

Lo que hará, es generar una lista de nombres de usuario.

Si quieres añadir un usuario llamado “joe” al grupo sudo, debes emplear el comando adduser en la línea de comandos, de la siguiente forma:

adduser joe sudo

Entonces, si usas el comando grep para comprobar los usuarios que se encuentran dentro del grupo, podrás ver el nombre “joe”.

Si quieres brindarle privilegios de root a un usuario, lo único que tienes que hacer es agregarlos a sudo.

Por otro lado, si ahora quieres eliminar a “joe” como usuario:

deluser joe sudo

El comando deluser borrará la factura del grupo sudo.

Entonces, “joe” ya no podrá ejecutar acciones que necesiten de un privilegio mayor.

Utilizar el archivo Sudoers para dar privilegios

Ahora veamos que sucede si quieres que Joe solo pueda ejecutar ciertos tipos específicos de comandos con privilegios de sudo.

Lo primero que hay que hacer, es crear un archivo de configuración /etc/sudoers.d/ llamado networking.

Debes emplear el próximo código para generar el archivo:

sudo visudo -f /etc/sudoers.d/networking

Añade el próximo texto al archivo:

Cmnd_Alias     CAPTURE = /usr/sbin/tcdump
Cmnd_Alias     SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd
Cmnd_Alias     NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL

Has creado un grupo netadmin. Los usuarios de este grupo pueden ejecutar los comandos que se especifican en NETALL. Al mismo tiempo, incluye todos los comandos con los alias CAPTURE y SERVERS. El comando tcpdump se encuentra bajo el alias CAPTURE, es decir, /usr/sbin/tcpdump.

Veamos como añadir a Joe al grupo netadmin:

sudo adduser bill netadmin

Entonces, Joe ahora tiene el privilegio para ejecutar el comando tcpdump junto con más comandos que se relacionen con el trabajo en red.

Conclusión

Si trabajas con muchos usuarios, el comando sudo y archivo sudoers son fundamentales. Hemos visto los conceptos básicos acerca de estos. Ahora ya puedes tener el control de los privilegios de tu sistema.

¿Te resultó útil esta guía?

Emanuel Duarte
Emanuel Duarte

Emanuel Duarte es un apasionado de las tecnologías y el uso de ellas para el armado de desarrollo web, cuya especialización es la principal plataforma del mercado: Wordpress.
Adicionalmente, se destaca por conocer las herramientas aledañas que convierten los sitios webs en confiables, seguros y ágiles.