Как установить umask для папки и ее подпапки?
Я работаю над одним каталогом с некоторыми друзьями, и они получают к нему доступ через SSH.
Я добавил нас в одну и ту же группу и определил "липкий бит", чтобы сохранить значения user: group.
Но когда пользователь создает файл / папку, атрибут Write для группы не определяется, что запрещает другим записывать его / в него.
Как определить Umask для добавления значения Write для групп в определенном каталоге и его подпапках?
Я пытался найти помощь раньше, но видел только подсказки для Fedora/CentO, и я использую Debian Squeeze.
Спасибо за вашу помощь
3 ответа
Я предполагаю, что вы уже сделали:
chmod g+rwxs directory
и теперь вы должны убедиться, что у пользователей есть umask типа 002. Чтобы настроить umask для всех пользователей, попробуйте в /etc/bashrc или /etc/profile.
предостережение: вы не можете настроить umask для каждого каталога, так как это уровень процесса.
Интересное чтиво http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html
Вот подробный пример использования setfacl , который дает вам запрошенный вами детальный контроль для каждого каталога, где новые файлы будут создаваться с атрибутом записи для группы:
1.Создайте группу, которой будет принадлежать общая папка:
sudo addgroup projects
2. Создайте папку « project1 », к которой мы хотим предоставить общий доступ, по соответствующему пути FHS, например /srv:
sudo mkdir /srv/project1
3.Измените владельца общей папки « project1 » на группу « projects »:
sudo chown root:projects /srv/project1
4. Установите для папки режим, доступный для записи членам группы, но разрешите только владельцу удалять свои собственные файлы:
sudo chmod -R 1775 /srv/project1
4.Добавьте своих пользователей в группу " проекты ":
sudo usermod -a -G projects user1
sudo usermod -a -G projects user2
5.Пользователи должны выйти из системы и снова войти в систему, чтобы распознать новое членство в группе.
6. Наконец, подайте заявкуsetfacl
поэтому все новые файлы создаются с возможностью записи для членов группы:
sudo setfacl -d -m group:projects:rwx /srv/project1
Пользователи теперь могут редактировать файлы друг друга. С точки зрения управления групповыми документами лучшим решением будет система управления версиями, такая как Git.
Umask - это атрибут среды пользователя (точнее, процесса), а не каталог. Таким образом, каждый из пользователей, разделяющих этот каталог, должен добавить следующее umask
командовать их ~/.profile
:
umask 002
Это сделает файлы, которые они создают, доступными для записи по умолчанию.