Conceptos Fundamentales de Archivos en Linux
En el sistema operativo Linux, todo se trata como un archivo. Es fundamental comprender los permisos de archivos y los timestamps asociados.
Permisos de Archivos en Linux
- Los tipos de permisos en Linux incluyen lectura (r), escritura (w) y ejecución (x)
- Los permisos se aplican en tres niveles: propietario (owner), grupo (group) y otros (others)
- Cada archivo puede tener configuraciones diferentes de rwx para cada nivel de acceso
Información de Tiempo de Archivos
Los archvios en Linux tienen tres timestamps relacionados con su estado:
- atime (access time): Momento en que el archivo fue accedido por última vez
- mtime (modify time): Fecha de la última modificación del contenido del archivo
- ctime (change time): Tiempo en que los metadatos del archivo cambiaron (permisos, propietario, etc.)
Comandos Esenciales para Gestión de Archivos
Comando ls
El comando ls permite listar archivos del directorio actual o verificar la existencia de un archivo.
Sintaxis básica:
# Lista archivos del directorio actual
[root@servidor ~]# ls
documento.txt imagen.png script.sh
# Verifica existencia de un archivo
[root@servidor ~]#ls documento_existente
documento_existente
# Verifica existencia de un archivo inexistente
[root@servidor ~]#ls archivo_inexistente
ls: no se puede acceder a 'archivo_inexistente': No existe el archivo o el directorio
Uso avanzado: Para verificar la existencia de un archivo sin mostrar resultados en pantalla:
[root@servidor ~]#ls documento.txt 1> /dev/null 2>&1
[root@servidor ~]#ls archivo_inexistente.txt 1> /dev/null 2>&1
Comando ll (equivalente a ls -l)
Muestra detallees de los archivos incluyendo permisos, tamaño, fecha de modificación y nombre.
[root@servidor ~]#ll
total 16
-rw-r--r-- 1 usuario usuarios 123 Mar 15 10:30 documento.txt
-rw-r--r-- 1 usuario usuarios 2048 Mar 16 14:22 imagen.png
-rwxr-xr-x 1 usuario usuarios 56 Mar 17 09:15 script.sh
Comando chmod
Permite modificar los permisos de acceso a archivos y directorios.
Sintaxis simbólica: chmod [ugoa][+-=][rwxX] nombre_archivo
u: propietario del archivog: usuarios del mismo grupoo: otros usuariosa: todos los usuarios+: agregar permiso-: remover permiso=: establecer permiso exacto
Ejemplos:
# Agregar permiso de lectura para todos los usuarios
chmod a+r documento.txt
# Remover permiso de escritura para otros usuarios
chmod o-w documento.txt
Sintaxis numérica: Los permisos se representan con números donde r=4, w=2, x=1
# Establecer permisos 644 (propietario: lectura/escritura, grupo y otros: solo lectura)
chmod 644 documento.txt
[root@servidor ~]#ll
-rw-r--r-- 1 usuario usuarios 123 Mar 15 10:30 documento.txt
# Establecer permisos 755 (propietario: lectura/escritura/ejecución, grupo y otros: lectura/ejecución)
chmod 755 script.sh
[root@servidor ~]#ll
-rwxr-xr-x 1 usuario usuarios 56 Mar 17 09:15 script.sh
Comando stat
Muestra información detallada sobre el estado de un archivo, incluyendo permisos y timestamps.
# Verificar archivos existentes
[root@servidor ~]#ll
total 16
-rw-r--r-- 1 usuario usuarios 63 Mar 22 21:59 documento.txt
drwxr-xr-x 3 usuario usuarios 4096 Mar 22 20:45 documentos
# Obtener información detallada de un archivo
[root@servidor ~]#stat documento.txt
Archivo: 'documento.txt'
Tamaño: 63 Bloques: 8 IO Block: 4096 archivo regular
Dispositivo: fd01h/64769d Inodo: 2228226 Enlaces: 1
Acceso: (0644/-rw-r--r--) Uid: ( 1000/ usuario) Gid: ( 1000/ usuarios)
Acceso: 2023-03-22 19:55:27.000000000 +0800
Modificación: 2023-03-22 21:59:24.482165123 +0800
Cambio: 2023-03-22 21:59:24.482165123 +0800
Nacimiento: -
Visualización de Timestamps con ll
El comando ll puede mostrar diferentes timestamps según la opción utilizada:
# Mostrar tiempo de modificación (por defecto)
[root@servidor ~]#ll
# Mostrar tiempo de acceso (atime)
[root@servidor ~]#ll --time=atime
# Mostrar tiempo de cambio (ctime)
[root@servidor ~]#ll --time=ctime