Я обнаружил, что списки контроля доступа POSIX позволяют вам, как системному администратору, защищать своих пользователей от наихудшего их собственного невежества, переопределяя обычное разрешение файловой системы user-group-other без особого шанса нарушить что-либо критически важное. ,
Они могут быть особенно полезны, если вы, например, (fi) нуждаетесь в том, чтобы домашние каталоги были доступны всему миру, потому что веб-контент должен быть доступен для apache in ~/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
или предоставлять приложениям полный root-доступ по запросу. Обучение пользователей и / или поставщиков очень помогает здесь.