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

Еще один сценарий - то, что услуга, к которой Вы пытаетесь получить доступ, не работает. Я столкнулся с этой проблемой на днях только для запоминания httpd экземпляра, с которым я пробовал к связанному, был остановлен.

Ваши шаги к разрешению проблемы должны были бы запуститься с самого простого, которое идет в другую машину и видит, можно ли соединиться локально и затем работа себя назад к Вашему клиентскому компьютеру. По крайней мере, это позволит Вам удаваться, в какой точке не происходит коммуникации. Можно проявить другие подходы, но это - то, которое работало на меня.

12
13.04.2017, 15:37
4 ответа

С setfacl можно установить полномочия по умолчанию, но не владельца/группу по умолчанию для недавно созданных файлов.

Чтобы заставить новые файлы принадлежать определенному пользователю, Вам был бы нужен бит setuid, который работает как setgid, обдумал каталоги. К сожалению, это не реализовано.

С setfacl можно сделать что-то, что почти эквивалентно в большинстве сценариев: можно установить ACL как default:user:teamlead:rwx. Тем путем именованный пользователь может записать новые файлы, даже если кто-то еще владеет им.

16
27.01.2020, 19:54
  • 1
    Обновите этот ответ с командой для применения 'default:user:teamlead:rwx' к каталогу' –  user319862 10.06.2017, 00:32

Новый файл всегда создается, принадлежа пользователю, которого процесс, создающий файл, выполняет как. (Эффективный идентификатор пользователя, чтобы быть точным.) Это не может быть изменено, потому что разрешение пользователям создать файлы, принадлежащие другим пользователям, было бы дырой в системе безопасности, подобной разрешению некорневым пользователям отдать файл.

Независимо от того, что Вы пытаетесь сделать, Вы не должны делать этого. ACLs достаточны, чтобы гарантировать, что то независимо от того, что должно будет считать файл позже, будет иметь достаточные полномочия. Оставьте файл принадлежавшим пользователю, который создал его.

10
27.01.2020, 19:54
  • 1
    "ACLs достаточен, чтобы гарантировать, что то независимо от того, что должно будет считать файл позже, будет иметь достаточные полномочия". Ложь. Группа Вашего нового файла будет группой Вашего пользователя по умолчанию. Если у пользователей, сотрудничающих, будут различные группы по умолчанию, то Вы не сможете получить доступ к файлам друг друга. Вам нужен setgid, чтобы заставить группу родительской папки "придерживаться" всех детей. сценарии –  bviktor 27.04.2017, 18:21
  • 2
    @bviktor, можно достигнуть того же эффекта с ACL. –  Gilles 'SO- stop being evil' 27.04.2017, 19:32
  • 3
    Как Вы указываете владельца и группу для новых файлов с ACL? –  bviktor 27.04.2017, 20:38
  • 4
    @bviktor, который - владелец то, кто бы ни создает файл, который не изменяется. Группа, которая владеет файлом в традиционных полномочиях, не важна. ACL на новых файлах является ACL каталога по умолчанию, таким же образом что группа владения на новых файлах является владеющей группой каталога с семантикой BSD (g+s). –  Gilles 'SO- stop being evil' 27.04.2017, 23:42
  • 5
    @Gilles нет. Группа новых файлов будет группой входа в систему начальной буквы "пользователя создателя", не группа родительской папки. Поведение, которое Вы описываете (т.е. новый файл получает группу родительского dir) требует, чтобы setgid был установлен на родителе. И группа очень релевантна, потому что, когда пользователи сотрудничают, они не могут получить доступ к файлам друг друга, если группа отличается. Если Ваши файлы не доступны для мира, который не является точно прекрасной идеей. –  bviktor 29.04.2017, 00:22

На Linux у Вас должен быть sgid на родительском dir для наследования группы для файлов. (Хотя Вам не нужен sgid на каталоге в системах BSD.)

0
27.01.2020, 19:54
  • 1
    Вопрос о присвоении владения в недавно созданные файлы. Группе уже правильно присваивают. –  a coder 06.11.2013, 18:13

Если вы хотите, чтобы новые файлы были созданы с новым group, вам нужно изменить основную группу.

Для этого вы можете использовать usermod и параметр -g

  -g, --gid GROUP 
Имя группы или номер новой начальной группы входа пользователя. Группа должна существовать.
Любой файл из домашнего каталога пользователя, принадлежащий предыдущей основной группе пользователя, будет принадлежать этой новой группе. 
Групповое владение файлами вне домашнего каталога пользователя должно быть исправлено вручную. 
 

например

test2@kinakuta:/tmp$ id
uid=1002(test2) gid=1002(test2) grupos=1002(test2),1003(testgroup)
test2@kinakuta:/tmp$ touch test2
test2@kinakuta:/tmp$ ls -la test2
-rw-r--r-- 1 test2 test2 0 nov 23 22:26 test2
root@kinakuta:/tmp# usermod -g testgroup test2
root@kinakuta:/tmp# su test2
test2@kinakuta:/tmp$ touch test2_1
test2@kinakuta:/tmp$ ls -la test2_1 
-rw-r--r-- 1 test2 testgroup 0 nov 23 22:27 test2_1
0
27.01.2020, 19:54

Теги

Похожие вопросы