Я хочу настроить заключенную в тюрьму учетную запись 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-тюрьму, которая действует как сильно ограниченная сквозная передача / марионетка для другого пользователя?
Предполагая, что 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 соответствует выбору ранее)