Я создал 3 пользователей u1, u2, u3. Теперь я хочу предоставить доступ пользователям каталога u1 / home / u1 / share u2, u3.
Я не хочу создавать новую общую группу с именем 'shared' и добавлять туда трех пользователей. Можно ли использовать саму группу u1?
Пока я пробовал
#add u2,u3 to group of u1
usermod -a -G u1 u2
usermod -a -G u1 u3
#ensure u1 has group read access
chmod 750 /home/u1
#create new shared dirs
umask 027 && mkdir /home/u1/share
Хотя
ls -ld /home/u1/share
drwxr-x---. 2 u1 u1 4096 Apr 23 10:11 /home/u1/share
показывает доступ для чтения к группе - пользователь u2 не может получить доступ к этому каталогу.
[u2@ ~]$ ls -l /home/u1/share
ls: cannot access /home/u1/share: Permission denied
Есть мысли по этому поводу? где я делаю не так?
Вам нужны ACL для решения проблемы с разрешениями. Вы должны предоставить всем соответствующим группам каталогов права на запись и установить для них списки ACL по умолчанию (в случае, если пользователи смогут создавать подкаталоги):
setfacl -d -m g:u1:rwx "$directory"
или вместо этого
setfacl -d -m g::rwx "$directory"
если вы гарантируете с помощью бита SGID, что вновь созданный подкаталог принадлежит той же группе.
Я не считаю ваше решение не создавать новую группу хорошей идеей.
То, что вы сделали, должно быть в порядке, но пользователь u2
вышли из системы и снова зашли, так как вы запустили usermod? Членство в группах выбирается только при входе в систему.
Делая id -a
для u2
также может помочь подтвердить, действительно ли это u2
оболочка находится в группе u1
, или не.
Как бы то ни было, хотя я не согласен с Хауке насчет списков ACL (они определенно не нужны в данном случае, потому что, как вы показали, это можно делать с группами; я считаю, что ACL практически никогда не нужны, и такая невероятная боль даже в редких случаях, когда я обычно советую людям изменить свои требования), я согласен, что это идеальный случай для новой, настраиваемой группы.