GNU/Linux >> Tutoriales Linux >  >> Linux

Explorando las diferencias entre los comandos sudo y su en Linux

Este artículo explora las diferencias entre sudo y su Comandos en Linux. También puede ver este video para aprender acerca de estos comandos. Convertirse en root permanentemente con su es un conocido 'no-no' en el universo *nix. ¿Por qué? Porque convertirse en root con su significa que usted es root, que es lo mismo que iniciar sesión en una terminal como usuario root con la contraseña de root. Y eso es peligroso por muchas razones.

[ También te puede interesar: Conceptos básicos de la línea de comandos de Linux:sudo]

Trabajar como root significa que tiene el poder de:

  • Eliminar alguno o todos los archivos
  • Cambiar los permisos de cualquiera o todos los archivos
  • Cambiar el nivel de ejecución del sistema
  • Alterar cuentas de usuario
  • Montar o desmontar sistemas de archivos
  • Eliminar o instalar software
  • Crear, eliminar y modificar sistemas de archivos

Básicamente, puede hacer cualquier cosa en el sistema como usuario raíz. Es la cuenta administrativa todopoderosa. Y, a diferencia de otros sistemas operativos más habladores, no verá un "¿Está seguro?" cuadro de diálogo para asegurarse de que rm -rf * el comando que acaba de emitir estaba en /opt/tmp en lugar de en / . Como puede imaginar, los errores cometidos como usuario root pueden ser irreversibles y devastadores. Hay una alternativa:sudo .

sudo

sudo , que es un acrónimo de superuser do o replace user do , es un comando que ejecuta un indicador elevado sin necesidad de cambiar su identidad. Dependiendo de su configuración en /etc/sudoers archivo, puede emitir comandos individuales como root o como otro usuario. Para continuar ejecutando comandos con poder de root, siempre debe usar el comando sudo. Por ejemplo, si desea instalar Nginx paquete, ejecutas:

$ dnf install nginx

Pero verá un error si no es root o no está en el grupo sudo. En cambio, si ejecuta este comando:

$ sudo dnf install nginx

Se le pedirá que escriba su contraseña y luego puede ejecutar el comando si es parte del grupo sudo.

Una forma sencilla de cambiar a una sesión interactiva como usuario root es la siguiente:

$ sudo -i

La teoría detrás del uso de sudo es que el acto de emitir el comando sudo antes de ejecutar cualquier comando te hace pensar más en lo que estás haciendo y, con suerte, cometer menos errores con una cuenta que posee un poder ilimitado.

su

su , por otro lado, es un acrónimo de cambiar de usuario o sustituir al usuario . Básicamente, está cambiando a un usuario en particular y necesita la contraseña del usuario al que está cambiando. La mayoría de las veces, la cuenta de usuario a la que cambia es la cuenta raíz, pero puede ser cualquier cuenta del sistema.

Por ejemplo, si escribe:

$ su -

En el ejemplo anterior, está cambiando a root y necesita la contraseña de root. El (- ) le proporciona el entorno de root (ruta y variables de shell) en lugar de simplemente darle poder de usuario root para un solo comando mientras mantiene su propio entorno.

$ su bryant

Para el segundo ejemplo, está cambiando a bryant , por lo que necesita la contraseña de Bryant a menos que sea root.

Si desea cambiar al bryant cuenta de usuario, incluida la ruta de Bryant y las variables de entorno, utilice (- ) cambiar:

$ su - bryant

El (- ) tiene el mismo efecto que iniciar sesión en un sistema directamente con esa cuenta de usuario. En esencia, te conviertes ese usuario.

Resumir

Recapitulando lo que has aprendido.

  • sudo le permite emitir comandos como otro usuario sin cambiar su identidad
  • Necesitas tener una entrada en /etc/sudoers para ejecutar estos permisos restringidos
  • sudo -i lo lleva a una sesión interactiva como root
  • su significa cambiar a un usuario en particular
  • Solo escribiendo su cambia al usuario root
  • sudo le pedirá su contraseña, mientras que su le pedirá la contraseña del usuario al que está cambiando

[ ¿Quiere obtener más información sobre seguridad? Consulte la lista de verificación de cumplimiento y seguridad de TI. ] 

Pero, ¿cuándo usas uno y no otro? Desde el sudo la política se define en /etc/sudoers , esto puede proporcionar poderosos controles de permisos. Desde sudo puede hacer prácticamente todo lo que su puede, yo diría que es mejor quedarse con sudo a menos que esté trabajando con algunos códigos heredados que requieren el su comando.


Linux
  1. Cómo permitir que el usuario use sudo en Ubuntu Linux

  2. Cómo limitar los comandos de usuario en Linux

  3. ¿Cuáles son las diferencias entre lsof y netstat en Linux?

  4. UAC de Windows frente a Linux sudo

  5. Diferencia entre los comandos 'ifconfig' e 'ip'

Comprender la diferencia entre los comandos sudo y su en Linux

Ejecute comandos como otro usuario a través de Sudo en Linux

Escriba los comandos de Linux en mayúsculas para ejecutarlos como usuario de Sudo

Cómo saber los grupos de un usuario de Linux

Comandos avanzados de Linux para usuarios avanzados

Aprendizaje de los comandos Linux Delete User o Linux Add User