Я виявив, що списки контролю доступу POSIX дозволяють вам, як адміністратору системи, захищати своїх користувачів від найгіршого їхнього власного невігластва, переосмислюючи звичайний дозвіл на файлову систему-групу користувачів, без особливого шансу зламати щось вирішальне. .
Вони можуть бути особливо корисними, якщо вам, наприклад, потрібні домашні каталоги, щоб бути доступними у всьому світі, оскільки веб-вміст повинен бути доступним для апачу в ~/public_html/
. (Хоча з ACL тепер ви можете робити і зворотний, видалити доступ для всіх і використовувати специфічний ефективний ACL для користувача apache.)
Так, знаючий користувач може їх видалити / змінити знову, просто нечасто, що це малоймовірно, а ті користувачі, які, як правило, не є зручними для chmod -R 777 ~/
будь-якого, чи не так?
Вам потрібно змонтувати файлову систему за допомогою acl
параметра монтажу:
mount -o remount,acl /home
У багатьох дистрибутивах за замовчуванням створюються групи користувачів, кожен користувач має свою первинну групу, і я встановив усіх користувачів у вторинній групі з немисленою назвою users
.
Використовуючи ACL, тепер тривіально запобігати доступу інших користувачів до домашніх каталогів:
Перед:
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
Тепер встановіть ефективні дозволи каталогів для членів users
групи 0
без читання, запису чи доступу:
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
+
Знак означає наявність налаштувань ACL там. І getfacl
може підтвердити, що:
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:---
Показують , що група ефективно , не мають права доступу, незважаючи на регулярні дозволу на інобуттяother::rwx
І тестування як user1:
[user1@access ~]$ ls -la /home/user2
ls: cannot open directory /home/user2: Permission denied
Другим загальним рішенням для спільних систем є автоматизатор монтувати домашні каталоги на вимогу на сервері, призначеному для доступу до оболонки. Це далеко не дурне доказ, але зазвичай лише кілька користувачів будуть реєструватися одночасно, тобто лише домашні каталоги цих користувачів видимі та доступні.
chmod files 0777
, тобто вирішити першопричину проблеми, а не симптом, що, будь-хто, може прочитати файли будь-кого іншого. Багато разів рекомендація щодо дозволу на доступ до всіх - це просто дешевий спосіб уникнути викликів служби підтримки або відсутності технічних можливостей щодо правильного налаштування дозволів. Майже в жодному випадку мені не доводилося встановлювати файли0777
або надавати програмам повний доступ до кореневих запитів за запитом. Тут масово допомагає освіта користувачів та / або постачальників.