В конечном итоге я хочу заключить группу пользователей в тюрьму, чтобы они могли использовать FTP только в их домашней папке. Они должны иметь возможность чтения и записи в своей домашней папке и во ВСЕХ каталогах в этой папке. Я пытался сделать это некоторое время, но, похоже, нет простого решения, которое легко работает. Вот что я пробовал:
chroting пользователей в их домашнюю папку, добавив следующий следующий код в vstfp conf:
chroot_local_user=YES
Это создало проблему, потому что у пользователей не было полного доступа к каталогам внутри, и некоторые проблемы зависали с правами доступа к файлам.
Удаление ВСЕХ разрешений для / для группы с помощью списков ACL со следующим кодом:
setfacl -x g:501 /
Когда я выполнил эту команду, ничего не произошло, хотя она верна (насколько мне известно, она дословно соответствует документации).
Я задал здесь еще один вопрос о настройке списков управления доступом, и Zypher правильно сообщил мне, что возня с разрешениями / может быстро испортиться, поэтому я ищу лучший способ сделать то, что я описал выше. Любая помощь высоко ценится!
chroot_local_user
правильный вариант для установки. Если у них нет доступа к файлам в их домашнем каталоге, значит, права доступа к этим файлам неверны, и их следует исправить, или согласиться с тем, что у пользователя не будет полного доступа ко всем файлам. Я сильно сомневаюсь, почему файлы, которые не принадлежат пользователю, помещаются в домашний каталог пользователя.
В крайнем случае, вы можете использовать расширенные атрибуты, чтобы получить желаемое поведение. setfacl -m -R u:<user>:rw $(getent passwd <user> | cut -d : -f 6); setfacl -m -R d:u:<user>:rw $(getent passwd <user> | cut -d : -f 6)
для всех значений <user>
, но это не гарантия - кто-то, кто может записать файл в домашний каталог пользователя, может удалить ACL, что вернет вас к исходной точке.