Как установить 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

Это сделает файлы, которые они создают, доступными для записи по умолчанию.

Другие вопросы по тегам