Linux: Comandos básicos para administrar archivos y permisos
Introducción: Por qué es importante dominar archivos y permisos en Linux
Si estás empezando en el mundo de la administración de servidores, una de las habilidades más fundamentales que debes adquirir es la gestión de archivos y permisos en Linux. Aunque al principio pueda parecer complejo, dominar estos conceptos te permitirá mantener tu servidor seguro, organizado y funcionando sin problemas. En esta guía, te explicaré paso a paso los comandos básicos que todo SysAdmin debe conocer, desde navegar entre directorios hasta asignar permisos precisos a usuarios y grupos. No importa si usas una distribución como Ubuntu, Debian o CentOS; los comandos son prácticamente los mismos. Al final, tendrás una base sólida para administrar archivos con confianza.
[INFO] Esta guía está pensada para usuarios sin experiencia previa en Linux. Si ya tienes conocimientos básicos, puedes saltar a las secciones de permisos.
## Primeros pasos: Navegar por el sistema de archivos
Antes de modificar permisos, necesitas saber moverte por el sistema. Linux organiza todo en una estructura de árbol que comienza en la raíz (/). Aquí tienes los comandos esenciales para empezar.
### pwd – ¿Dónde estoy?
El comando pwd (print working directory) te muestra la ruta completa del directorio en el que te encuentras. Es útil cuando pierdes la noción de tu ubicación.
pwd
# Resultado: /home/usuario
### ls – Listar contenido
ls muestra los archivos y carpetas del directorio actual. Para ver más detalles, usa opciones como -l (formato largo) y -a (archivos ocultos).
ls -la
# Muestra permisos, propietario, tamaño y fecha
### cd – Cambiar de directorio
Con cd (change directory) te mueves entre carpetas. Usa rutas absolutas (desde /) o relativas (desde tu ubicación actual).
cd /var/www/html # Ruta absoluta
cd .. # Sube un nivel
cd ~ # Va al home del usuario
[TIP] Si escribes
cdsin argumentos, te lleva directamente a tu directorio personal.
### mkdir y rmdir – Crear y eliminar directorios
Para crear una carpeta nueva:
mkdir proyectos
mkdir -p proyectos/backend/logs # Crea subdirectorios automáticamente
Para eliminar directorios vacíos:
rmdir proyectos
## Gestión de archivos: Crear, copiar, mover y eliminar
Una vez que sabes moverte, toca trabajar con archivos. Aquí tienes los comandos básicos que usarás a diario.
### touch – Crear archivos vacíos
touch crea un archivo vacío o actualiza la fecha de modificación si ya existe.
touch index.html
touch config.php
### cp – Copiar archivos
Copia archivos o directorios completos. La sintaxis es: cp origen destino.
cp index.html backup.html # Copia un archivo
cp -r proyectos/ respaldo/ # Copia todo un directorio (recursivo)
cp -i archivo.txt /tmp/ # Pide confirmación antes de sobrescribir
### mv – Mover o renombrar
mv sirve para mover archivos a otra ubicación o cambiarles el nombre.
mv index.html /var/www/html/ # Mueve el archivo
mv viejo.txt nuevo.txt # Renombra el archivo
### rm – Eliminar archivos
Ten mucho cuidado con rm, ya que elimina de forma permanente (no va a la papelera).
rm archivo.txt # Elimina un archivo
rm -r carpeta/ # Elimina directorio y su contenido
rm -f archivo.txt # Fuerza la eliminación sin preguntar
[WARNING] Nunca uses
rm -rf /a menos que quieras borrar todo el sistema. Este comando es peligroso.
## Entendiendo los permisos de archivos en Linux
Linux usa un sistema de permisos basado en tres roles: propietario (owner), grupo (group) y otros (others). Cada rol puede tener tres tipos de permisos: lectura (r), escritura (w) y ejecución (x). Los permisos se representan como una cadena de 10 caracteres. Por ejemplo:
-rw-r--r--
- El primer carácter indica el tipo (
-para archivo,dpara directorio). - Los siguientes tres (
rw-) son para el propietario. - Los siguientes tres (
r--) para el grupo. - Los últimos tres (
r--) para otros.
### Permisos en formato numérico (octal)
Cada permiso tiene un valor numérico:
- r = 4
- w = 2
- x = 1
Se suman para cada rol. Por ejemplo, rwx = 4+2+1 = 7, r-x = 4+0+1 = 5. Así, el permiso -rwxr-xr-- equivale a 754.
## Comandos para cambiar permisos y propietarios
Ahora que entiendes la teoría, veamos cómo aplicarla con comandos prácticos.
### chmod – Cambiar permisos
chmod modifica los permisos de archivos y directorios. Puedes usar notación simbólica o numérica.
Notación simbólica:
chmod u+x script.sh # Añade ejecución al propietario
chmod g-w archivo.txt # Quita escritura al grupo
chmod o=r documento.pdf # Otros solo lectura
chmod a+rx carpeta/ # Todos (a) obtienen lectura y ejecución
Notación numérica:
chmod 755 script.sh # Propietario: rwx, Grupo: r-x, Otros: r-x
chmod 644 index.html # Propietario: rw-, Grupo: r--, Otros: r--
chmod 700 clave.pem # Solo el propietario tiene acceso total
[TIP] Para directorios, el permiso de ejecución (x) permite entrar a la carpeta. Un directorio con
755es estándar para sitios web.
### chown – Cambiar propietario y grupo
chown (change owner) asigna un nuevo propietario y/o grupo a un archivo.
chown usuario:grupo archivo.txt # Cambia propietario y grupo
chown usuario archivo.txt # Solo cambia propietario
chown :grupo archivo.txt # Solo cambia grupo
chown -R usuario:grupo carpeta/ # Aplica recursivamente a todo el contenido
### chgrp – Cambiar solo el grupo
Si solo necesitas cambiar el grupo, puedes usar chgrp:
chgrp desarrolladores proyecto/
## Casos prácticos de administración de permisos
Veamos situaciones reales donde aplicarás estos comandos.
### Escenario 1: Subir archivos a un servidor web
Supón que tienes un sitio en /var/www/html y necesitas que el usuario www-data (el usuario del servidor web) pueda escribir en la carpeta uploads.
sudo chown -R www-data:www-data /var/www/html/uploads
sudo chmod 755 /var/www/html/uploads
### Escenario 2: Compartir archivos entre usuarios
Si varios usuarios del grupo equipo necesitan editar documentos en /home/compartido:
sudo mkdir /home/compartido
sudo chown root:equipo /home/compartido
sudo chmod 770 /home/compartido # Propietario y grupo tienen control total
### Escenario 3: Proteger claves SSH
Las claves privadas deben tener permisos restrictivos:
chmod 600 ~/.ssh/id_rsa # Solo el propietario puede leer/escribir
chmod 700 ~/.ssh/ # Solo el propietario puede entrar
[WARNING] Si los permisos de tu clave SSH son demasiado abiertos, el sistema rechazará la conexión por seguridad.
## Comandos avanzados para administración de archivos
Además de los básicos, hay herramientas que te harán la vida más fácil.
### find – Buscar archivos por permisos
Puedes localizar archivos con permisos específicos:
find /var/www -type f -perm 777 # Archivos con todos los permisos abiertos
find /home -type d -perm 755 # Directorios con permisos 755
### stat – Ver información detallada
Muestra permisos, propietario, tamaño y fechas de un archivo:
stat index.html
### umask – Establecer permisos por defecto
umask define los permisos que se asignarán automáticamente a nuevos archivos y directorios. Por ejemplo, umask 022 da como resultado archivos 644 y directorios 755.
umask 027 # Archivos: 640, Directorios: 750
## Integración con paneles de control (Syspanel)
Si usas un panel de administración como Syspanel (accesible por el puerto 2106), muchas tareas de permisos se simplifican. Sin embargo, es útil conocer los comandos subyacentes para depurar problemas.
Por ejemplo, si subes archivos por FTP y no se ven en tu sitio web, probablemente sea un problema de permisos. Con Syspanel puedes verificar desde la interfaz, pero si prefieres la terminal:
ls -la /home/usuario/web/tudominio/public_html
sudo chown -R usuario:usuario /home/usuario/web/tudominio/public_html
sudo chmod 755 /home/usuario/web/tudominio/public_html
[INFO] Syspanel gestiona automáticamente los permisos de las cuentas de hosting, pero si modificas archivos manualmente, deberás ajustarlos.
## Preguntas frecuentes (FAQ)
¿Cómo saber qué permisos tiene un archivo?
Usa ls -l nombre_archivo. La salida muestra los permisos, número de enlaces, propietario, grupo, tamaño y fecha.
¿Qué significa el permiso 777?
Significa que todos (propietario, grupo y otros) tienen permisos de lectura, escritura y ejecución. Es muy inseguro y no debe usarse en producción.
¿Por qué no puedo eliminar un archivo aunque tenga permisos de escritura?
Puede ser que no tengas permisos de escritura en el directorio que contiene el archivo. Para eliminar, necesitas permiso w en el directorio, no en el archivo.
¿Cómo cambio el propietario de un archivo si no soy root?
Solo el superusuario (root) puede cambiar el propietario de un archivo. Si necesitas hacerlo, usa sudo.
¿Qué hago si un script no se ejecuta?
Verifica que tenga permiso de ejecución: chmod +x script.sh. También asegúrate de que el shebang (#!) al inicio del script sea correcto.
¿Cómo aplico permisos a todos los archivos dentro de una carpeta?
Usa la opción -R (recursiva): chmod -R 755 carpeta/. Ten cuidado, porque esto afecta tanto archivos como directorios.
## Conclusión
Dominar los comandos básicos para administrar archivos y permisos en Linux es el primer paso para convertirte en un SysAdmin competente. Con herramientas como chmod, chown, ls y find, puedes mantener tu servidor organizado y seguro. Recuerda siempre seguir el principio de mínimo privilegio: otorga solo los permisos necesarios para cada tarea. Si además usas un panel como Syspanel (puerto 2106), tendrás una interfaz amigable para gestionar estas tareas, pero nunca está de más saber lo que ocurre detrás de escena.
[TIP] Practica en una máquina virtual o en un contenedor Docker antes de tocar un servidor en producción. Así evitarás accidentes.
Ahora que tienes esta guía, ¡manos a la obra! Explora tu terminal, experimenta con los comandos y verás cómo en poco tiempo te sentirás cómodo administrando archivos y permisos en Linux.
