Принудительное назначение группы в среде chroot sftp
У меня есть следующие настройки:
Есть несколько пользователей /home/user1, /home/user2 и так далее. Дополнительно есть пользователь /home/sftp-all. Папка /home/sftp-all/shared монтируется в любой другой каталог users / home, например, / home / user1 / shared. Все пользователи user1,user2,...,sftp-all являются членами группы под названием "sharegroup".
Теперь проблема в том, что если один из этих пользователей (user1,...) записывает в эту папку, новый файл принадлежит пользователю и его основной группе (например, user1:user1,..). Вместо этого я хочу, чтобы он принадлежал user1:sharegroup. Есть идеи как решить это? Заранее спасибо!
2 ответа
Вы должны изучить использование разрешений ACL в файловой системе. Вы можете установить разрешение по умолчанию, и вы можете иметь несколько групп, пользователей и т. Д.
https://help.ubuntu.com/community/FilePermissionsACLs
Смотрите ответ на этот другой пост для получения дополнительной информации:
https://superuser.com/questions/381416/forcing-group-and-permissions-for-created-file-inside-folder
Установите бит sgid, чтобы он был включен в каталоге /home/sftp-all/shared
и создайте группу этого каталога sharegroup
,
$ chmod g+s /home/sftp-all/shared
Наконец, убедитесь, что любые ранее существующие файлы в /home/sftp-all/shared
их группа настроена на sharegroup
, Это можно сделать так:
$ chgrp sharegroup /home/sftp-all/shared/*
Установив бит xgid в каталоге, вы заставляете распространять то, что принадлежит группе, например, каталог, каждый раз, когда в нем создаются новые файлы. Этот подход будет работать только для вновь созданных файлов, например, он не будет обеспечивать владение группой, если кто-то будет перемещать файлы в этот каталог из другого места в системе.
Однако, учитывая, что это приложение сервера SFTP, я не могу представить, каким образом пользователь сможет перемещать файлы в этот каталог за пределы SFTP.