Тюрьма SFTP и сохранение владельца файла / Владелец файла на папку

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

rawny bawb-sftp / home / rawny <- rawny владеет этим / home / rawny / sftp <- rawny также владеет этим, но bawb-sftp может загружать в него, редактировать файлы и т. д.

bawb-sftp загружает файл /home/rawny/sftp/lol.txt rawny должен по-прежнему владеть этим файлом, как если бы он сделал это в первую очередь, хотя bawb-sftp был тем, кто его загрузил.

По сути, я предполагаю, что я прошу sftp-тюрьму, которая действует как крайне ограниченный проход / марионетка для другого пользователя?

1 ответ

Решение

Предполагая Linux, использование группы является одним из способов пойти сюда. Создайте группу, содержащую оба rawny а также bawb-sftpи использовать chgrp thatgroup /home/rawny/sftp (если начать с пустого каталога, в противном случае добавьте -R для рекурсии).

Затем установите в каталоге биты suid и sgid и предоставьте доступ пользователю и группе rwx: chmod 677? /home/rawny/sftp (замените? на то, что вы хотите, чтобы доступ к миру был. Общие варианты выбора - 5 (rx) 1 (x) и 0, в зависимости от того, хотите ли вы, чтобы кто-то еще имел к нему доступ или нет.) Если папка не пуста, не используйте -R, вам нужно применять биты suid/sgid/x к каждой папке отдельно.

Биты suid / sgid, когда они используются в каталогах в Linux, заставляют вновь созданные файлы и подкаталоги автоматически принадлежать / группироваться так же, как каталог (подкаталоги также будут suid/sgid), поэтому все файлы, созданные в /home/rawny/sftp будет принадлежать rawny И в thatgroup так bawb-sftp может получить к ним доступ. Обратите внимание, что umask может потребоваться изменение для создания файлов с разрешениями на групповую запись ( см. здесь, но используйте с umask 00? где? = 2 6 или 7, совпадающий с выбором ранее)

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