Permisos especiales en Linux

Cuando creamos un archivo en Linux, éste tiene una serie de atributos que determinan los permisos para escribir, leer y ejecutar. Estos atributos se repiten para el usuario, grupo y otros.
Para modificar dichos permisos podemos usar chmod con el método binario indicando los permisos en suma por categoría:
  • Leer(r): 4
  • Escritura(w): 2
  • Ejecución(x): 1
Si quisieramos leer y escribir el archivo, colocamos 4+2=6 en la categoría correspondiente. Las categorías son:
  1. Dueño(u)
  2. Grupo(g)
  3. Otros(o)
Todos los permisos para dueño, solo escritura para el grupo y ejecución para otros.

Otro método es con el operador de asignación potencial (+) y (-) más su categoría, pudiendo usarse a para llamar a todos.

Quitamos y agregamos los atributos de lectura y escritura 

PERMISOS ESPECIALES

Adicionalmente se tienen tres permisos especiales para archivos ejecutables y directorios públicos. Cuando se configuran estos permisos, cualquier usuario  que ejecute el archivo asume el ID de usuario creador o de su grupo.
Debemos tener en cuenta que un usuario podría obtener privilegios de superusuario al ejecutar un programa que configure la ID de usuario a root, por lo que se debe tener mucho cuidado.

setuid hace que el proceso que ejecuta el archivo obtenga acceso basándose en el autor del archivo en lugar del usuario que ejecuta el archivo. Permite al usuario acceder a los archivos y directorios que normalmente se encuentran disponibles solo para el autor.



setgid o set group identification hace algo similar a setuid, excepto que cambia  el ID del grupo efectivo del proceso a la del grupo del autor del archivo, por lo que el usuario obtiene acceso basado en los permisos del grupo.
Si se aplica a un directorio, los archivos creados dentro pertenecen al al grupo y no al grupo al que el proceso pertenece. Cualquier usuario con permiso de escritura y ejecución puede crear un archivo dentro del directorio pero éste pertenecerá al grupo del directorio y no del usuario que lo creó.



sticky es un bit de permiso que protege los archivos dentro de un directorio. Un archivo con bit sticky solo puede ser eliminado por el autor del archivo, el autor de la carpeta o el root.


Fuente:
https://www.linux.com/learn/understanding-linux-file-permissions
https://docs.oracle.com/cd/E19683-01/806-4078/secfiles-69/index.html

Comentarios