Diferencia entre chmod vs ACL

13

Entiendo chmody chowncómo funcionan los bits de permiso, pero hay otro sistema de permisos dentro de Linux, ACLcon setfacly getfacl, así que esto me hace preguntarme.

¿Cuál es la diferencia entre esos dos sistemas de control de permisos? ¿Interfieren entre sí?

mFeinstein
fuente

Respuestas:

7

Uno no es mejor que el otro, son solo métodos y formas de pensar diferentes.

Puede usar ambos sistemas de permisos en la misma ruta sin problemas.

Interfieren entre sí al modificar los permisos del propietario, el grupo propietario y otros permisos: al establecer el valor actual para estos desde setfacl, en realidad establecerá el permiso posix, no el ACL.

Los permisos Posix solo permiten un propietario, un grupo propietario y un permiso de "todos", mientras que ACL permite múltiples usuarios y grupos "propietarios". ACL también permite configurar permisos predeterminados para nuevos archivos en una carpeta.

Puede agregar más administración de permisos además de ambos con apparmor o selinux para un control más estricto.

Zulgrib
fuente
1
¿Estoy en lo cierto al suponer que cuando ejecuto ls -lsolo veré los permisos posix y los ACL que limitan aún más el archivo no se mostrarán? ¿O se respetarán los permisos posix independientemente?
mFeinstein
3
@mFeinstein depende. En Linux, ls -lcoloca un +al final de los caracteres de permisos para indicar que ACL está presente. Si ACL está presente, los permisos básicos no cuentan la historia completa: ACL anula los permisos POSIX.
Gilles 'SO- deja de ser malvado'
¡Oh, genial! Eso +al menos me impide tomarme por sorpresa
mFeinstein
3

Los permisos clásicos de Unix establecidos por chmod (lectura / escritura / ejecución, usuario / grupo / otros) han existido durante mucho más tiempo que ACL. Si ACL hubiera existido desde el principio, entonces no habría un chmod tal como lo conocemos. Sin embargo, dado que chmod ha existido durante mucho tiempo, muchas aplicaciones lo llaman, muchos formatos de archivo admiten los permisos clásicos, etc. Puede expresar permisos chmod con ACL; actúan como una especie de punto de partida para la ACL.

Consulte Precedencia de usuario y propietario de grupo en permisos de archivo y Precedencia de ACLS cuando un usuario pertenece a múltiples grupos para un tratamiento más detallado de cómo funciona el control de acceso en presencia de ACL.

El chmodcomando también controla algunos indicadores que en realidad no son permisos, pero que a menudo se llaman permisos: setuid, setgid y sticky bit . Estos no son realmente permisos, ya que no afectan qué accesos están autorizados en el archivo, sino cómo ciertas operaciones en el archivo funcionan después de haber sido autorizadas. No hay nada como esto con ACL.

Gilles 'SO- deja de ser malvado'
fuente
Entonces, para comprender realmente el permiso de un archivo, tengo que verificar tanto la ACL como la ls -l?
mFeinstein
¿Hay alguna manera de ver si hay permisos específicos de ACL en un archivo / directorio?
mFeinstein
@mFeinstein Vea si los permisos mostrados por lstienen un extra +al final, o ejecute el getfaclcomando para mostrar todos los permisos incluyendo ACL.
Gilles 'SO- deja de ser malvado'
1
Solo getfacl myFile?
mFeinstein
1
Sí, obtenga el camino que desea verificar.
Zulgrib