Búsqueda de sitios web

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


El sistema Linux es mucho más seguro que cualquiera de sus homólogos. Una de las formas de implementar la seguridad en Linux es la política de administración de usuarios y los permisos de 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 distribuciones basadas en Ubuntu, pero también a la mayoría de las distribuciones populares de Linux. distribuciones.

'su' versus 'sudo'

'su' te obliga a compartir tu contraseña root con otros usuarios, mientras que 'sudo' permite ejecutar comandos del sistema sin 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.

¿Qué es "sudo"?

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

¿Quién puede ejecutar '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 esta:

La lista sudo se parece a la siguiente cadena, de forma predeterminada:

root ALL=(ALL) ALL

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

Otorgar acceso a sudo

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

Editar el archivo '/usr/sbin/visudo' con un patrón similar al siguiente puede ser realmente muy peligroso, a menos que crea completamente en todos los usuarios enumerados.

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

Parámetros de sudo

Un ‘sudo‘ configurado correctamente es muy flexible y la cantidad de comandos que deben ejecutarse se pueden configurar 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. Nombre_usuario: este es el nombre del usuario 'sudo'.
  2. Machine_name: este es el nombre del host en el que el comando 'sudo' es válido. Útil cuando tienes muchas máquinas host.
  3. (Effective_user): El 'usuario efectivo' que puede ejecutar los comandos. Esta columna le permite a los usuarios ejecutar comandos del sistema.
  4. Comando: comando o conjunto de comandos que el usuario puede ejecutar.

Lectura sugerida: 10 configuraciones útiles de Sudoers para configurar 'sudo' en Linux

Algunas de las Situaciones y su correspondiente línea 'sudo':

P1. Tiene una marca de usuario que es un administrador de base de datos. Se supone que debe proporcionarle todo el acceso al servidor de base de datos (beta.database_server.com) únicamente, y no a ningún host.

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

mark beta.database_server.com=(ALL) ALL

P2. Tiene un usuario 'tom' que se supone que ejecuta el comando del sistema como usuario distinto root en el mismo servidor de base de datos, explicado anteriormente.

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

mark beta.database_server.com=(tom) ALL

P3. Tienes un usuario sudo 'cat' que se supone que ejecuta el comando ' perro' solamente.

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

mark beta.database_server.com=(cat) dog

P4. ¿Qué sucede si al usuario se le deben otorgar varios comandos?

Si el número de comandos que el usuario debe ejecutar es inferior a 10, podemos colocar todos los comandos al lado, con espacios 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, debemos usar alias. Alias! Sí, la utilidad de Linux donde un comando largo o una lista de comandos se puede referir como una palabra clave pequeña y fácil.

Algunos ejemplos de aalias, que se pueden usar 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

P5. ¿Qué tal ejecutar un comando ‘sudo‘ sin ingresar la contraseña?

Podemos ejecutar un comando 'sudo' sin ingresar la contraseña usando el indicador 'NOPASSWD'.

adam ALL=(ALL) NOPASSWD: PROCS

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

Lectura sugerida: Deje que Sudo lo insulte cuando ingrese una contraseña incorrecta

sudo ” le proporciona un entorno sólido y seguro con mucha flexibilidad en comparación con 'su'. Además, la configuración de “sudo” es sencilla. Algunas distribuciones de Linux tienen “sudo” habilitado de forma predeterminada, mientras que la mayoría de las distribuciones actuales necesitan que lo habilites como una 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í nuevamente con otro artículo interesante. Hasta entonces, estad atentos y conectados a Tecmint. No olvide brindarnos sus valiosos comentarios en nuestra sección de comentarios.