Différence entre chmod vs ACL


13

Je comprends chmodet chownet comment fonctionnent les bits d'autorisation, mais il existe un autre système d'autorisation sous Linux, ACLavec setfaclet getfacl, cela me fait me demander.

Quelle est la différence entre ces deux systèmes de contrôle des autorisations? Interférent-ils entre eux?

Réponses:


7

L'un n'est pas meilleur que l'autre, ce ne sont que des méthodes et des modes de pensée différents.

Vous pouvez utiliser les deux systèmes d'autorisations sur le même chemin sans problème.

Ils interfèrent les uns avec les autres lors de la modification du propriétaire, du groupe propriétaire et d'autres autorisations: lors de la définition de la valeur actuelle pour ceux-ci à partir de setfacl, il définira en fait l'autorisation posix, pas celle ACL.

Les autorisations Posix n'autorisent qu'un propriétaire, un groupe propriétaire et une autorisation «tout le monde» tandis que ACL autorise plusieurs utilisateurs et groupes «propriétaires». ACL permet également de définir des autorisations par défaut pour les nouveaux fichiers dans un dossier.

Vous pouvez ajouter plus de gestion des autorisations en plus des deux avec apparmor ou selinux pour un contrôle plus strict.


1
Ai-je raison de supposer que lorsque j'exécuterai, ls -lje ne verrai que les autorisations posix et celles ACL qui limitent davantage le fichier ne seront pas affichées? Ou les autorisations posix seront-elles respectées malgré tout?
mFeinstein

3
@mFeinstein Depends. Sous Linux, ls -lplace un caractère +à la fin des autorisations pour indiquer la présence d'ACL. Si ACL est présent, les autorisations de base ne racontent pas toute l'histoire: ACL remplace les autorisations POSIX.
Gilles 'SO- arrête d'être méchant'

Oh génial! Cela +m'empêche au moins de me prendre au dépourvu
mFeinstein

3

Les autorisations Unix classiques définies par chmod (lecture / écriture / exécution, utilisateur / groupe / autre) existent depuis bien plus longtemps que ACL. Si ACL existait depuis le début, il n'y aurait pas de chmod tel que nous le connaissons. Cependant, comme chmod existe depuis très longtemps, de nombreuses applications l'appellent, de nombreux formats d'archives prennent en charge les autorisations classiques, etc. Vous pouvez exprimer des autorisations chmod avec ACL; ils agissent comme une sorte de point de départ pour l'ACL.

Voir Priorité de l'utilisateur et du propriétaire du groupe dans les autorisations de fichier et Priorité d'ACLS lorsqu'un utilisateur appartient à plusieurs groupes pour un traitement plus détaillé du fonctionnement du contrôle d'accès en présence d'ACL.

La chmodcommande contrôle également certains indicateurs qui ne sont pas vraiment des autorisations, mais qui sont souvent appelés des autorisations: setuid, setgid et le sticky bit . Ce ne sont pas vraiment des autorisations car elles n'affectent pas les accès autorisés sur le fichier, mais le fonctionnement de certaines opérations sur le fichier après leur autorisation. Il n'y a rien de tel avec ACL.


Donc, pour vraiment comprendre l'autorisation d'un fichier, je dois vérifier à la fois l'ACL et ls -l?
mFeinstein

Existe-t-il un moyen de voir s'il existe des autorisations spécifiques à l'ACL sur un fichier / répertoire?
mFeinstein

@mFeinstein Vérifiez si les autorisations affichées par lsont un supplément +à la fin, ou exécutez la getfaclcommande pour afficher toutes les autorisations, y compris ACL.
Gilles 'SO- arrête d'être méchant'

1
Juste getfacl myFile?
mFeinstein

1
Oui, getfacl sur le chemin que vous souhaitez vérifier.
Zulgrib
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.