J'ai trouvé que les listes de contrôle d'accès POSIX permettaient à vous, en tant qu'administrateur système, de protéger vos utilisateurs du pire de leur propre ignorance, en remplaçant l'autorisation régulière du système de fichiers d'un autre groupe d'utilisateurs, sans beaucoup de chance de casser quelque chose de crucial .
Ils peuvent être particulièrement utiles si, par exemple (fi), vous avez besoin que les répertoires personnels soient accessibles à tous, car le contenu Web doit être accessible pour apache dans ~/public_html/
. (Bien qu'avec les ACL, vous pouvez maintenant faire l'inverse, supprimer l'accès pour tous et utiliser une ACL efficace spécifique pour l'utilisateur apache.)
Oui, un utilisateur averti peut à nouveau les supprimer / remplacer, est assez rare pour que ce soit improbable, et les utilisateurs qui ne le sont généralement pas de chmod -R 777 ~/
toute façon, n'est-ce pas?
Vous devez monter le système de fichiers avec l' acl
option de montage:
mount -o remount,acl /home
Dans de nombreuses distributions, la valeur par défaut est de créer des groupes d'utilisateurs, chaque utilisateur a son groupe principal et j'ai défini tous les utilisateurs dans un groupe secondaire avec le nom sans imagination de users
.
À l'aide des ACL, il est désormais trivial d'empêcher d'autres utilisateurs d'accéder aux répertoires personnels:
Avant:
chmod 0777 /home/user*
ls -l /home/user*
drwxrwxrwx. 2 user1 user1 4096 Jul 11 15:40 user1
drwxrwxrwx. 2 user2 user2 4096 Jul 11 15:24 user2
Définissez maintenant les autorisations de répertoire effectives pour les membres du users
groupe sur 0
aucune lecture, écriture ou accès:
setfacl setfacl -m g:users:0 /home/user*
ls -l
drwxrwxrwx+ 2 user1 user1 4096 Jul 11 15:40 user1
drwxrwxrwx+ 2 user2 user2 4096 Jul 11 15:24 user2
Le +
signe indique la présence de paramètres ACL à cet endroit. Et le getfacl
peut confirmer que:
getfacl /home/user1
getfacl: Removing leading '/' from absolute path names
# file: home/user1
# owner: user1
# group: user1
user::rwx
group::rwx
group:users:---
mask::rwx
other::rwx
Le group:users:---
spectacle que le groupe n'a effectivement aucun droit d'accès, malgré les autorisations régulières pour les autresother::rwx
Et tester en tant qu'utilisateur1:
[user1@access ~]$ ls -la /home/user2
ls: cannot open directory /home/user2: Permission denied
Une deuxième solution courante sur les systèmes partagés consiste à avoir les répertoires de base de montage automatique à la demande et un serveur dédié à l'accès shell. C'est loin d'être infaillible, mais en général, seule une poignée d'utilisateurs seront connectés simultanément, ce qui signifie que seuls les répertoires personnels de ces utilisateurs sont visibles et accessibles.
chmod files 0777
sont strictement nécessaires, c'est-à-dire qu'elles s'attaquent à la cause première du problème, plutôt qu'au symptôme selon lequel, ce faisant, n'importe qui peut lire les fichiers de n'importe qui d'autre. Plusieurs fois, la recommandation d' autoriser l'accès est simplement un moyen peu coûteux d'éviter les appels d'assistance ou le manque de prouesse technique pour pouvoir configurer correctement les autorisations. Dans presque aucun cas, je n'ai dû définir des fichiers0777
ou accorder aux applications un accès root complet sur demande. L'éducation des utilisateurs et / ou des fournisseurs aide massivement ici.