У меня такая настройка:
Есть несколько пользователей / 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