Редактирование члена группы в файл * автоматически * меняет владельца, группу и разрешения
У меня есть каталог, который я пытаюсь настроить таким образом, чтобы у всех участников группы были права rwx. Вот подмножество каталога и его разрешения:
-rwxr-xr-x 1 myusrnm grpnm 21638 2015-04-22 14:14 correct
-rwxrwxr-- 1 myusrnm grpnm 14403 2015-04-22 14:14 correct.c
Теперь я перехожу к одному из пользователей в группе, подтверждаю, что он в нем:
myusrnm@server:~/grpdir$ sudo su hisusrnm
hisusrnm@server:/grpdir$ whoami
hisusrnm
hisusrnm@server:/grpdir$ groups
hisusrnm sshusers grpnm
И отредактируйте правильную. Теперь в другом терминале я проверяю каталог и нахожу:
-rwxr-xr-x 1 myusrnm grpnm 21638 2015-04-22 14:14 correct
-rwxrwxr-- 1 hisusrnm hisusrnm 14368 2015-04-22 14:23 correct.c
Я просто понял, что то же самое происходит, когда я редактирую файл; его группа автоматически меняется на myusrnm
и его разрешения автоматически изменяются на 774. Почему это происходит? Как я могу заставить участников группы редактировать файл, не меняя его группу, владельца и разрешения? Это поведение Linux по умолчанию? Или моя система ведет себя сверхспециально?
1 ответ
Используйте SetGID в родительской папке. Это заставит владельца группы остаться тем из родительских папок.
Вы можете включить SetGID с chmod g+s folder/path
или поставьте 2 в верхнюю позицию числового шаблона; например: chmod 2740 folder/path
, если это новая папка, вы можете просто применить право владения к папке, и новые файлы примут владельца группы папок или существующую папку, укажут саму папку, но с помощью переключателя chmod -R установите разрешение на все существующие дети. если у детей есть действующие владельцы, вам также необходимо установить их
chown -R user:group /path/to/existing/dir
chmod -R 2640 /path/to/existing/dir
Что касается того, почему ваши разрешения меняются, проверьте ваш umask
, звучит так, будто установлено 0003
, Вы настроили это? рассмотреть возможность изменения его на 0022
,