Предоставьте разрешение на запись по умолчанию для группирования всех вновь создаваемых файлов и папок.

15

Допустим, у нас есть 2 пользователя: a и b, которые являются частью общей группы.

Мне бы хотелось, чтобы любой файл или папка, которые создает A, имели бы разрешение на запись в группу GENERAL.

Как мне это сделать?

Например, недавно созданный файл установлен как:

-rw-r--r-- 1 a general

Это не дает разрешения на запись генералу группы

Dejel
источник
Возможно, вас заинтересует этот ответ: stackoverflow.com/questions/3175303/…
Гавриил
2
Я не хочу делать это с Java. Это не правильный способ сделать это
Dejel
«Я не хочу делать это из Java. Это не правильный способ сделать это». Это почти философское утверждение. Это применимо везде ...
GargantuChet

Ответы:

15

Да, вы можете сделать это, изменив umask. В umaskопределяет , какие права доступа по умолчанию для вновь creted файла.

Вы можете добавить umask g+wв конце своего файла конфигурации оболочки ( ~/.bashrcнапример).

Но на самом деле это не рекомендуемая практика. Если вы хотите обеспечить целостность файла и забыли обновить права доступа к файлу, он будет изменен группой. Это противоречит принципу безопасности «начальные ценности».

Вместо этого вы можете сделать все вновь созданные файлы из определенного каталога доступными для записи группой. Вы можете сделать это, управляя списками ACL каталога. Например, setfacl -dm u::rw,g::rw,o::r ~/shared.

Посмотрите на эти сообщения для справки: /server/349145/can-i-override-my-umask-using-acls-to-make-all-files-created-in-a-given-director и /programming/580584/setting-default-permissions-for-newly-created-files-and-sub-directories-under-a .

lgeorget
источник
Что если я не знаю, какой будет директория? Допустим, у меня есть папка TEST. Все файлы, которые создает A, будут в режиме TEST. Однако он может создать папку 20130515 и под ней найти новый созданный файл. так должно быть для любого файла и папки, которые рекурсивно создаются в папке TEST
Dejel
2
ACL по умолчанию наследуют новые подкаталоги и применяются к файлам, созданным в этих каталогах. Поэтому, если вы /srv/TESTустановили списки ACL по умолчанию для этого каталога, тогда /srv/TEST/20130515он будет иметь те же списки ACL по умолчанию, что и родительский каталог.
Братчли
Это также может быть хорошей идеей для запуска, sudo chmod g+s [dir]так что файлы будут принадлежать группе
linuxgnuru