Fundamentos de la línea de comandos
Teoría: Sudo
Cuando trabajamos en la terminal, muchas veces necesitamos permisos especiales para hacer ciertas tareas más avanzadas. Estos permisos se conocen como privilegios de superusuario o root. Vamos a aprender qué significa esto y cómo manejarlo con cuidado.
¿Por qué necesitamos privilegios de superusuario?
Algunas acciones en el sistema operativo son "delicadas" y solo el administrador (root) puede hacerlas. Por ejemplo:
- Instalar o desinstalar programas
- Acceder o modificar archivos de otros usuarios
- Cambiar permisos o propiedades de archivos
- Crear o eliminar archivos del sistema
- Ejecutar programas que modifican la configuración del sistema
¿Cómo cambiamos de usuario?
Antes, se usaba un comando llamado su (significa substitute user o cambiar de usuario) para iniciar sesión como otro usuario, comúnmente como root. Pero hoy en día no se usa mucho porque puede ser inseguro y se considera obsoleto.
sudo (significa super user do ). Este comando te permite ejecutar instrucciones individuales como si fueras root, sin tener que cambiar de usuario por completo.
Cómo usar sudo
La idea es simple: agregamos sudo antes del comando que queremos ejecutar con privilegios elevados.
Ejemplo práctico
Supongamos que queremos crear un archivo en una carpeta del sistema:
Este comando fallará:
Pero si lo hacemos con sudo, funciona:
Ahora el archivo fue creado por root. Podemos verificarlo con:
Este comando nos muestra los detalles del archivo, incluyendo el propietario, que en este caso será root.
Otro ejemplo: borrar un archivo
Si no tenemos permiso para borrar un archivo:
Lo solucionamos usando sudo:
¿Qué pasa con la contraseña?
Cuando usas sudo, puede que el sistema te pida la contraseña de tu usuario. Eso es normal. Además, por cuestiones de seguridad, generalmente recordará la contraseña solo durante 5 minutos, así que si usas sudo varias veces seguidas, no te pedirá la clave cada vez.
Ejecutar comandos como otro usuario (no root)
Tal vez no quieras actuar como root, sino como otro usuario diferente. En ese caso puedes usar la opción -u. Por ejemplo:
Esto crea una carpeta en /tmp bajo el usuario nobody. Puedes ver quién es el propietario con:
Abrir una sesión como root
¿Y si necesitas ejecutar varios comandos como root, no solo uno? En ese caso puedes abrir una sesión de administrador con:
Esto abre una sesión continua como superusuario (root). Puedes confirmarlo con:
Para salir de esa sesión, simplemente escribe:
Precauciones: ¿cuándo no usar sudo?
sudo tratando de forzar que el comando funcione, pero esto no siempre ayuda y puede causar más problemas.
Un error común es usar sudo para crear archivos en tu carpeta personal. Esto crea archivos que ya no te pertenecen y no los podrás modificar sin sudo.
¿Cómo evitar problemas?
Asegurémonos de que:
- Los archivos en tu carpeta personal te pertenezcan a ti (tu usuario).
- Solo uses
sudocuando realmente sea necesario (como modificar el sistema o instalar programas).
Visualizando permisos y propietarios
Para saber quién es el dueño de los archivos, usamos:
Ejemplo de salida:
Aquí podemos ver que todo pertenece al usuario mokevnin, excepto el directorio anterior (..), que pertenece a root.