Я не хочу, чтобы общая папка была доступна кому-либо в системе, я хочу, чтобы она была доступна только ограниченному кругу пользователей.
Как мне это сделать?
Взятый из этого превосходного сообщения на Форумах Ubuntu Morbius1.
Классический Linux способ сделать этот вид вещи проходит примерно так:
Создайте совместно используемую папку:
sudo mkdir /home/Shared
Создайте группу нового пользователя:
sudo addgroup newgroup
Владение изменения совместно используемой папки новой группе:
sudo chown :newgroup /home/Shared
Добавьте своих требуемых пользователей к той группе:
sudo adduser user1 newgroup
Повторитесь для всех пользователей.
Теперь у Вас есть некоторые решения сделать, о каком Вы хотите, чтобы те пользователи смогли сделать:
[a] Все групповые пользователи могут добавить к и удалить из папки и могут считать и но не записать в каждого файлы других:
sudo chmod 0770 /home/Shared
[b] То же как выше, но только владелец файла может удалить его:
sudo chmod 1770 /home/Shared
[c] Все групповые пользователи могут добавить к и удалить из папки и могут читать и записать в файлы друг друга:
sudo chmod 2770 /home/Shared
[d] То же как [c] только кроме владельца файла может удалить его:
sudo chmod 3770 /home/Shared
A 1
в первом положении chmod команда является липким битом, который предотвращает удаление файла любому кроме владельца.
A 2
в первом положении chmod команда является битом setgid который силы все новые или скопированные файлы, чтобы иметь группу той папки.
A 3
в первом положении chmod команда является комбинацией липкого (1
) И setgid (+2
) биты.
Существует один протест ко всему этому насколько setgid укусил, затронут. Все новые файлы, созданные в и любые файлы, скопированные в ту папку, на самом деле наследуют группу папки. Но не файлы, перемещенные в ту папку. Перемещенные файлы сохраняют владение от того, везде, откуда они были перемещены. Один способ закончить эту проблему состоит в том, чтобы использовать bindfs.
Наконец, если Вы хотите, чтобы другие вне группы смогли видеть, что файлы, но не изменить их изменяют заключительный 0 в chmod
управляйте к 5, например:
sudo chmod 0775 /home/Shared