- Permisos en Linux
Cada archivo o carpeta tiene 3 tipos de permisos y 3 categorías de usuarios:
| Símbolo | Significado | Valor |
|---|---|---|
r |
Lectura (read) | 4 |
w |
Escritura (write) | 2 |
x |
Ejecución (execute) | 1 |
| Categoría | Se aplica a |
|---|---|
u |
Usuario propietario |
g |
Grupo propietario |
o |
Otros usuarios |
ls -lEjemplo:
-rwxr-xr-- 1 francisco users 1234 oct 21 script.shSignificado:
rwx→ usuarior-x→ grupor--→ otrosfrancisco→ dueñousers→ grupo
chmod u+x script.sh # añadir ejecución al usuario
chmod g-w script.sh # quitar escritura al grupo
chmod o=r file.txt # solo lectura para otros
chmod a+r file.txt # todos pueden leerchmod 755 script.sh| Valor | Permiso | Descripción |
|---|---|---|
| 7 | rwx | lectura, escritura, ejecución |
| 6 | rw- | lectura, escritura |
| 5 | r-x | lectura, ejecución |
| 4 | r-- | solo lectura |
| 0 | --- | sin permisos |
chown usuario archivo
chgrp grupo archivo
chown usuario:grupo archivoEjemplo:
sudo chown francisco:users script.shExisten tres permisos especiales en Linux:
| Bit | Valor | Se aplica a | Efecto |
|---|---|---|---|
SUID (s) |
4000 | Archivos ejecutables | Se ejecuta con permisos del dueño |
SGID (s) |
2000 | Archivos / directorios | Hereda grupo o ejecuta con grupo del archivo |
Sticky bit (t) |
1000 | Directorios | Solo el dueño puede borrar sus archivos |
El sticky bit se usa en directorios para evitar que otros borren archivos ajenos.
chmod +t /tmp/publico
# o modo numérico
chmod 1777 /tmp/publicoVer resultado:
ls -ld /tmp/publico
drwxrwxrwt 9 root root 4096 oct 21 09:00 /tmp/publicodrwxrwxrw**t** → el “t” final indica el sticky bit activo.
Ejemplo típico:
El directorio /tmp siempre lo tiene activado.
Ejemplo:
ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 oct 21 /usr/bin/passwd- La
sen lugar de laxdel usuario indica SUID activo. - Permite ejecutar con permisos del dueño del archivo (en este caso, root).
Activar o desactivar manualmente:
chmod u+s archivo # activar
chmod u-s archivo # desactivarEn ejecutables:
chmod g+s archivoEn directorios:
chmod g+s carpeta/Efecto:
Los nuevos archivos heredan el grupo del directorio, útil para carpetas compartidas.
Los atributos controlan cómo se comporta un archivo, más allá de los permisos.
lsattr archivoEjemplo:
----i--------e----- documento.txtHacer un archivo inmutable:
sudo chattr +i archivo.txtSolo root puede revertirlo:
sudo chattr -i archivo.txtModo append-only (solo añadir contenido):
sudo chattr +a log.txt| Letra | Descripción | Uso |
|---|---|---|
i |
Inmutable | Proteger archivos críticos |
a |
Solo append | Logs o auditorías |
c |
Comprimir | Backups |
d |
Excluir de dump | Archivos temporales |
e |
Extents (ext4) | Normalmente activo |
s |
Borrado seguro | Privacidad |
u |
Recuperable | Auditoría |
#!/bin/bash
# Proteger archivos del sistema
ARCHIVOS=("/etc/passwd" "/etc/shadow" "/etc/fstab")
for f in "${ARCHIVOS[@]}"; do
if [ -f "$f" ]; then
sudo chattr +i "$f"
echo "Protegido: $f"
fi
done
lsattr "${ARCHIVOS[@]}"| Permiso | Valor | Aplica a | Efecto |
|---|---|---|---|
SUID (u+s) |
4000 | Archivos ejecutables | Ejecuta con permisos del dueño |
SGID (g+s) |
2000 | Archivos / carpetas | Hereda grupo o ejecuta con grupo del archivo |
Sticky (+t) |
1000 | Directorios | Solo el dueño puede borrar sus archivos |
Inmutable (+i) |
— | Archivos | No se puede modificar ni borrar |
Append-only (+a) |
— | Archivos | Solo se puede añadir contenido |
Autor: Fravelz