Diferencia entre su y sudo y cómo configurar sudo en Linux


El sistema Linux es mucho más seguro que cualquiera de sus contrapartes. Una de las formas de implementar la seguridad en Linux es la política de administración de usuarios y el permiso del usuario, y los usuarios normales no están autorizados a realizar ninguna operación del sistema.

Si un usuario normal necesita realizar cambios en todo el sistema, debe utilizar el comando "su" o "sudo".

NOTA: este artículo es más aplicable a las distribuciones basadas en Ubuntu, pero también se aplica a la mayoría de las distribuciones populares de Linux.

"Su" te obliga a compartir tu contraseña de root con otros usuarios, mientras que "sudo" permite ejecutar comandos del sistema sin la contraseña de root . "Sudo" le permite usar su propia contraseña para ejecutar comandos del sistema, es decir, delega la responsabilidad del sistema sin la contraseña de root .

"Sudo" es un setuid binario raíz, que ejecuta comandos raíz en nombre de los usuarios autorizados y los usuarios deben ingresar su propia contraseña para ejecutar el comando del sistema seguido de "sudo".

Podemos ejecutar "/ usr/sbin/visudo" para agregar/eliminar la lista de usuarios que pueden ejecutar "sudo".

$ sudo /usr/sbin/visudo

Una captura de pantalla del archivo "/ usr/sbin/visudo" se parece a esto:

La lista de sudo se parece a la siguiente cadena, por defecto:

root ALL=(ALL) ALL

Nota: Debe ser root para editar el archivo/usr/sbin/visudo.

En muchas situaciones, el administrador del sistema, especialmente nuevo en el campo, encuentra la cadena “root ALL u003d (ALL) ALL” como plantilla y otorga acceso sin restricciones a otros que pueden ser potencialmente muy dañinos.

Editar el archivo "/ usr/sbin/visudo" a algo como el patrón siguiente puede ser realmente muy peligroso, a menos que crea completamente a todos los usuarios enumerados.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

Un "sudo" configurado correctamente es muy flexible y la cantidad de comandos que deben ejecutarse pueden configurarse con precisión.

La sintaxis de la línea "sudo" configurada es:

User_name Machine_name=(Effective_user) command

La sintaxis anterior se puede dividir en cuatro partes:

  1. User_name: This is the name of ‘sudo‘ user.
  2. Machine_name: This is the host name, in which ‘sudo‘ command is valid. Useful when you have lots of host machines.
  3. (Effective_user): The ‘Effective user’ that are allowed to execute the commands. This column lets you allows users to execute System Commands.
  4. Command: command or a set of commands which user may run.

Algunas de las situaciones y su línea "sudo" correspondiente:

Para la situación anterior, la línea "sudo" se puede escribir como:

mark beta.database_server.com=(ALL) ALL

Para la situación anterior, la línea "sudo" se puede escribir como:

mark beta.database_server.com=(tom) ALL

Para implementar la situación anterior, podemos escribir "sudo" como:

mark beta.database_server.com=(cat) dog

Si el número de comandos que se supone que debe ejecutar el usuario es inferior a 10, podemos colocar todos los comandos al lado, con un espacio en blanco entre ellos, como se muestra a continuación:

mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

Si esta lista de comandos varía según el rango, donde literalmente no es posible escribir cada comando manualmente, necesitamos usar alias . ¡Alias! Sí, la utilidad de Linux donde un comando extenso o una lista de comandos se pueden referir como una palabra clave pequeña y fácil.

Algunos ejemplos de alias , que se pueden utilizar en lugar de la entrada en el archivo de configuración "sudo".

User_Alias ADMINS=tom,jerry,adam
user_Alias WEBMASTER=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE
Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

Es posible especificar un grupo de sistemas, en lugar de usuarios, que pertenezca a ese grupo simplemente con el sufijo "%" como se muestra a continuación:

%apacheadmin WEBSERVERS=(www) APACHE

Podemos ejecutar un comando "sudo" sin ingresar la contraseña usando la bandera "NOPASSWD".

adam ALL=(ALL) NOPASSWD: PROCS

Aquí el usuario 'adam' puede ejecutar todos los comandos con alias bajo "PROCS", sin ingresar contraseña.

"Sudo" le proporciona un entorno sólido y seguro con mucha flexibilidad en comparación con "su". Además, la configuración "sudo" es fácil. Algunas distribuciones de Linux tienen "sudo" habilitado de forma predeterminada, mientras que la mayoría de las distribuciones actuales necesitan que lo habilites como medida de seguridad.

Para agregar un usuario (bob) a sudo, simplemente ejecute el siguiente comando como root.

adduser bob sudo

Eso es todo por ahora. Estaré aquí de nuevo con otro artículo interesante. Hasta entonces, estad atentos y conectados a Tecmint. No olvide enviarnos sus valiosos comentarios en nuestra sección de comentarios.