Принудительное назначение группы в среде 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.

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