Si alguna vez ha incursionado en la línea de comandos en Linux (¿quién no?), seguramente se encontrará con los comandos «sudo» y «su». Si bien los usuarios veteranos saben exactamente lo que significan, los nuevos usuarios de Linux siempre están confundidos sobre cuándo usar cuál y las implicaciones y complicaciones que implican ambos. En este artículo, explicaremos en detalle qué es «sudo» y «su», la diferencia entre ellos y cuándo usarlos.
Conceptos básicos de Linux
Durante la instalación de Linux, le pedirá que cree una cuenta de usuario y establezca su propia contraseña. Una vez que se complete la instalación y se reinicie el sistema, se le pedirá que inicie sesión en la cuenta de usuario que ha creado previamente. Una vez que esté en este entorno de usuario, será su propio administrador y podrá ejecutar aplicaciones y personalizar el escritorio a su gusto. Esto es más o menos lo mismo que en Windows y Mac. También tiene su propia carpeta de inicio personal donde puede agregar/eliminar cualquier carpeta hacia y desde ella. Eso es prácticamente todo lo que puedes hacer. Fuera de su carpeta de inicio (es decir, la carpeta raíz), encontrará que la mayoría (si no todos) de los sistemas de archivos no son accesibles para usted.
Si bien puede acceder y leer los archivos en esas carpetas, no podrá realizar cambios en ellos. La razón es porque no tienes suficientes permisos.
Permiso de usuario
La función de permiso de usuario es una función de seguridad que protege a los usuarios de Linux. Con su cuenta de administrador, tiene permiso para administrar todo dentro de su carpeta de inicio (y la partición externa o el disco duro que ha montado). Fuera de eso, necesitará permiso de root para realizar cambios en el archivo del sistema, incluida la instalación y desinstalación de aplicaciones. La separación de la cuenta de administrador y la cuenta raíz garantiza que no estropee su sistema innecesariamente y dificulta que los piratas informáticos/virus/malware ingresen a su sistema raíz.
Nota: A diferencia de Windows, ser el administrador de su propia cuenta de usuario no significa que tenga acceso de root al sistema. No puede simplemente instalar/desinstalar aplicaciones simplemente haciendo doble clic en el instalador. En Linux, deberá ingresar su contraseña para elevar su cuenta de usuario antes de poder instalar/desinstalar una aplicación. Esto también significa que las cosas no se instalan a menos que otorgues un permiso explícito.
La existencia de «sudo» y «su» es para permitirle obtener acceso de root para que pueda convertirse en el verdadero administrador de su propio sistema.
SU
«su» significa «superusuario» y le permite iniciar sesión como root y hacer lo que quiera con el sistema. Se puede ejecutar con el comando:
y requiere que ingrese la contraseña de la cuenta raíz. En algunas distribuciones, particularmente en Ubuntu, la contraseña de root no se establece durante la instalación. Esto hace que sea prácticamente imposible iniciar sesión como root (usando «su») ya que no se puede autenticar.
Si realmente necesita usar el comando «su» para obtener acceso de root, puede cambiar la contraseña de root usando el comando:
De forma predeterminada, «su» lo registra como root en su propio entorno de usuario. Para cambiar el entorno del usuario a root, use el comando:
Otros usos de «su» incluyen:
- Cambiar a otro usuario que no sea el superusuario
- Cambiar a otro usuario y usar ese entorno de usuario
Como se puede ver, usar el comando «su» le da un gran poder para administrar y modificar su sistema, y si no lo controla (o si no tiene experiencia), podría ser destructivo para su sistema.
Nota: En la medida de lo posible, no utilice «su» para administrar su sistema.
SUDO
«sudo» significa «superusuario do» y le permite elevar su cuenta de usuario actual para tener privilegios de root temporalmente. Esto es diferente de «su». Con «sudo», todavía está utilizando su cuenta de usuario, pero con privilegios de root, mientras que en «su», está conectado a la cuenta de root. Además, el privilegio de root en “sudo” solo es válido por un corto período de tiempo. Una vez que caduca, debe ingresar su contraseña nuevamente para recuperar el privilegio de root.
Con «sudo», puedes hacer casi lo mismo que con «su». Para usarlo, solo tiene que agregar «sudo» delante de todos los comandos raíz, por ejemplo:
sudo apt-get update sudo apt-get upgrade
- En algunos casos, si realmente necesita iniciar sesión como root, en lugar de usar «su», es mejor usar:
para iniciar un shell raíz. Esto le permite iniciar sesión como root con su propia contraseña de usuario.
- También puede iniciar sesión como otro usuario
Conclusión
Este es un artículo básico de introducción a «sudo» y «su». Si es un novato, es recomendable mantener las manos alejadas de «su» y usar «sudo» si es necesario. Para usuarios básicos, basta con usar «sudo» para la mayoría de los comandos raíz. Durante más de 6 años de uso de Linux, no me he encontrado con una instancia en la que necesite usar «su» o «sudo -i».
Para administrar el servidor, algunos argumentarán que necesita ser root todo el tiempo para realizar el mantenimiento y realizar cualquier otra tarea. Esto puede ser cierto, pero en mi experiencia personal, si instala «sudo», crea un nuevo usuario y agrega este usuario al grupo sudo, puede hacer casi todo con la cuenta de usuario limitada y el comando sudo. De hecho, creo que esta es una forma más segura de administrar su servidor. Dime si estoy equivocado.