Ich habe festgestellt, dass POSIX-Zugriffssteuerungslisten es Ihnen als Systemadministrator ermöglichen, Ihre Benutzer vor der schlimmsten Unwissenheit zu schützen, indem Sie die regulären Berechtigungen für Benutzergruppen und andere Dateisysteme außer Kraft setzen, ohne die entscheidenden Probleme zu lösen .
Sie können besonders nützlich sein, wenn Sie beispielsweise möchten, dass Home-Verzeichnisse weltweit zugänglich sind, da Webinhalte für Apache in zugänglich sein müssen ~/public_html/
. (Obwohl Sie mit ACLs jetzt das Gegenteil tun können, entfernen Sie den Zugriff für alle und verwenden Sie eine bestimmte effektive ACL für den Apache-Benutzer.)
Ja, ein sachkundiger Benutzer kann sie wieder entfernen / überschreiben, ist nur selten genug, dass dies unwahrscheinlich ist, und die Benutzer, die dies können, sind in der Regel chmod -R 777 ~/
sowieso nicht die, die dies bequem tun, oder?
Sie müssen das Dateisystem mit der acl
Mount-Option mounten:
mount -o remount,acl /home
In vielen Distributionen werden standardmäßig Benutzergruppen erstellt, jeder Benutzer hat seine primäre Gruppe, und ich habe alle Benutzer in einer sekundären Gruppe mit dem einfallslosen Namen "" festgelegt users
.
Mit ACLs ist es jetzt ganz einfach zu verhindern, dass andere Benutzer auf die Basisverzeichnisse zugreifen:
Vor:
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
Stellen Sie nun die effektiven Verzeichnisberechtigungen für Mitglieder der users
Gruppe auf " 0
Kein Lesen, Schreiben oder Zugriff" ein:
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
Das +
Vorzeichen zeigt das Vorhandensein von ACL-Einstellungen an. Und das getfacl
kann bestätigen:
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
Die group:users:---
zeigen, dass Gruppe effektiv kein Zugriffsrecht hat, trotz der regulären Berechtigungen für andere Wesenother::rwx
Und testen als user1:
[user1@access ~]$ ls -la /home/user2
ls: cannot open directory /home/user2: Permission denied
Eine zweite gängige Lösung für gemeinsam genutzte Systeme besteht darin, die Basisverzeichnisse des Automounters bei Bedarf auf einem Server für den Shell-Zugriff bereitzustellen. Das ist alles andere als ein Kinderspiel, aber normalerweise werden nur eine Handvoll Benutzer gleichzeitig angemeldet, was bedeutet, dass nur die Home-Verzeichnisse dieser Benutzer sichtbar und zugänglich sind.
chmod files 0777
unbedingt notwendig sind, dh die Grundursache des Problems ansprechen, und nicht das Symptom, dass dadurch jeder die Dateien anderer lesen kann. Häufig ist die Empfehlung zum Zulassen aller Zugriffe einfach eine kostengünstige Methode, um Supportanrufe zu vermeiden, oder mangelnde technische Kompetenz, um Berechtigungen korrekt einzurichten. In fast keinem Fall musste ich Dateien festlegen0777
oder Anwendungen vollen Root-Zugriff gewähren, wenn ich dazu aufgefordert wurde. Hier hilft massiv die Aufklärung der Anwender und / oder Anbieter.