Odkryłem, że listy kontroli dostępu POSIX pozwalają, jako administrator systemu, chronić użytkowników przed najgorszym ich niewiedzą, zastępując zwykłe uprawnienia systemu plików grupy użytkowników, bez dużej szansy na złamanie czegoś kluczowego .
Mogą być szczególnie przydatne, jeśli na przykład (fi) potrzebujesz, aby katalogi domowe były dostępne na całym świecie, ponieważ zawartość WWW musi być dostępna dla apache ~/public_html/
. (Chociaż za pomocą list ACL można teraz zrobić odwrotnie, usunąć dostęp dla wszystkich i użyć konkretnej skutecznej listy ACL dla użytkownika apache).
Tak, znający się na rzeczy użytkownik może je ponownie usunąć / zastąpić, są po prostu tak rzadkie, że jest to mało prawdopodobne, a ci użytkownicy, którzy zazwyczaj nie są tymi, którzy chmod -R 777 ~/
tak wygodnie, tak?
Musisz zamontować system plików z acl
opcją zamontowania:
mount -o remount,acl /home
W wielu dystrybucjach domyślnie jest tworzenie grup użytkowników, każdy użytkownik ma swoją grupę podstawową, a ja ustawiłem wszystkich użytkowników w grupie dodatkowej o niewyobrażalnej nazwie users
.
Korzystanie z list ACL jest teraz trywialne, aby uniemożliwić innym użytkownikom dostęp do katalogów domowych:
Przed:
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
Teraz ustaw efektywne uprawnienia do katalogu dla członków users
grupy na 0
brak odczytu, zapisu i dostępu:
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
+
Znak oznacza obecność tam ustawienia ACL. I getfacl
może potwierdzić, że:
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
group:users:---
Pokazują, że grupa skutecznie bez prawa dostępu, pomimo regularnych uprawnień dla drugiej istotyother::rwx
I testowanie jako użytkownik1:
[user1@access ~]$ ls -la /home/user2
ls: cannot open directory /home/user2: Permission denied
Drugim powszechnym rozwiązaniem w systemach współdzielonych jest posiadanie na żądanie automountera katalogów domowych montowanych na żądanie i serwera dedykowanego do dostępu do powłoki. To nie jest głupi dowód, ale zazwyczaj tylko garstka użytkowników będzie zalogowana jednocześnie, co oznacza, że tylko katalogi domowe tych użytkowników są widoczne i dostępne.
chmod files 0777
są absolutnie konieczne, tj. Dotyczą pierwotnej przyczyny problemu, a nie objawu, że w ten sposób każdy może czytać pliki innych osób. Wiele razy zalecenie „ zezwól na dostęp” jest po prostu tanim sposobem na uniknięcie wezwań pomocy technicznej lub braku technicznej umiejętności prawidłowego konfigurowania uprawnień. W prawie żadnym przypadku nie musiałem ustawiać plików0777
ani udzielać aplikacjom pełnego dostępu do konta root na żądanie. Edukacja użytkowników i / lub dostawców bardzo pomaga tutaj.