En Linux, el acceso a los archivos se administra a través de los permisos, los atributos y la propiedad de los archivos. Esto garantiza que solo los usuarios y procesos autorizados puedan acceder a los archivos y directorios.
Este tutorial cubre cómo usar chmod
comando para cambiar los permisos de acceso de archivos y directorios.
Permisos de archivo de Linux #
Antes de continuar, expliquemos el modelo básico de permisos de Linux.
En Linux, cada archivo está asociado con un propietario y un grupo y se le asignan derechos de acceso de permisos para tres clases diferentes de usuarios:
- El propietario del archivo.
- Los miembros del grupo.
- Otros (todos los demás).
La propiedad del archivo se puede cambiar usando el chown
y chgrp
comandos.
Hay tres tipos de permisos de archivos que se aplican a cada clase:
- El permiso de lectura.
- El permiso de escritura.
- El permiso de ejecución.
Este concepto le permite especificar qué usuarios pueden leer el archivo, escribir en el archivo o ejecutar el archivo.
Los permisos de archivo se pueden ver usando ls
comando:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt
|[-][-][-]- [------] [---]
| | | | | | |
| | | | | | +-----------> 7. Group
| | | | | +-------------------> 6. Owner
| | | | +--------------------------> 5. Alternate Access Method
| | | +----------------------------> 4. Others Permissions
| | +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
El primer carácter muestra el tipo de archivo. Puede ser un archivo normal (-
), directorio (d
), un enlace simbólico (l
), o cualquier otro tipo especial de archivo.
Los siguientes nueve caracteres representan los permisos del archivo, tres tripletes de tres caracteres cada uno. El primer triplete muestra los permisos del propietario, el segundo grupo los permisos y el último triplete muestra los permisos de todos los demás. Los permisos pueden tener un significado diferente según el tipo de archivo.
En el ejemplo anterior (rw-r--r--
) significa que el propietario del archivo tiene permisos de lectura y escritura (rw-
), el grupo y los demás solo tienen permisos de lectura (r--
).
Cada uno de los tres tripletes de permisos se puede construir con los siguientes caracteres y tener efectos diferentes, dependiendo de si se configuran en un archivo o en un directorio:
Efecto de los permisos en los archivos
Permiso | Personaje | Significado en archivo |
---|---|---|
Leer | - | El archivo no se puede leer. No puede ver el contenido del archivo. |
r | El archivo es legible. | |
Escribir | - | El archivo no se puede cambiar ni modificar. |
w | El archivo se puede cambiar o modificar. | |
Ejecutar | - | El archivo no se puede ejecutar. |
x | El archivo se puede ejecutar. | |
s | Si se encuentra en el user triplete establece el setuid poco. Si se encuentra en el group triplete, establece el setgid poco. También significa que x está establecido.Cuando el setuid o setgid las banderas se establecen en un archivo ejecutable, el archivo se ejecuta con el propietario del archivo y/o privilegios de grupo. | |
S | Igual que s pero el x la bandera no está configurada. Esta marca rara vez se usa en archivos. | |
t | Si se encuentra en los others triplete establece el sticky bit.También significa que x se establece la bandera. Esta bandera es inútil en los archivos. | |
T | Igual que t pero el x la bandera no está configurada. Esta bandera es inútil en los archivos. |
Permiso | Personaje | Significado en el directorio |
---|---|---|
Leer | - | No se puede mostrar el contenido del directorio. |
r | Se puede mostrar el contenido del directorio. (p. ej., puede enumerar archivos dentro del directorio con ls .) | |
Escribir | - | El contenido del directorio no se puede modificar. |
w | El contenido del directorio se puede modificar. (p. ej., puede crear archivos nuevos, eliminar archivos, etc.) | |
Ejecutar | - | No se puede cambiar el directorio. |
x | El directorio se puede navegar usando cd . | |
s | Si se encuentra en el user triplete, establece el setuid poco. Si se encuentra en el group triplete establece el setgid poco. También significa que x se establece la bandera. Cuando el setgid se establece en un directorio, los nuevos archivos creados en él heredan el ID de grupo de directorio (GID), en lugar del ID de grupo principal del usuario que creó el archivo.setuid no tiene efecto en los directorios. | |
S | Igual que s pero el x la bandera no está configurada. Esta bandera es inútil en los directorios. | |
t | Si se encuentra en los others triplete establece el sticky bit.También significa que x se establece la bandera. Cuando el sticky bit se establece en un directorio, solo el propietario del archivo, el propietario del directorio o el usuario administrativo puede eliminar o cambiar el nombre de los archivos dentro del directorio. | |
T | Igual que t pero el x la bandera no está configurada. Esta bandera es inútil en los directorios. |