Назад | Перейти на главную страницу

принудительное назначение группы в chrooted sftp среде

У меня такая настройка:

Есть несколько пользователей / home / user1, / home / user2 и так далее. Дополнительно есть пользователь / home / sftp-all. Папка / home / sftp-all / shared монтируется во всех остальных пользователях / домашнем каталоге, например / home / user1 / shared. Все пользователи user1, user2, ..., sftp-all являются членами группы под названием sharegroup.

Теперь проблема в том, что если один из этих пользователей (user1, ...) записывает в эту папку, новый файл принадлежит пользователю и его основной группе (например, user1: user1, ..). Вместо этого я хочу, чтобы он принадлежал user1: sharegroup. Есть идеи, как это решить? Заранее спасибо!

Установите бит 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.

Вам следует изучить использование разрешений ACL в файловой системе. Вы можете установить разрешение «по умолчанию», и у вас может быть несколько групп, пользователей и т. Д.

https://help.ubuntu.com/community/FilePermissionsACLs

См. Ответ на этот другой пост для получения дополнительной информации:

https://superuser.com/questions/381416/forcing-group-and-permissions-for-created-file-inside-folder