
У меня есть клиент, владелец типографии. Я настроил для него FTP-сервер, куда клиенты могут сбрасывать ему большие файлы, которые они хотят распечатать.
Я создал несколько пользователей FTP. У него есть несколько премиум-клиентов и несколько постоянных клиентов. Постоянным клиентам говорят использовать пользователя FTPклиенты. У владельца есть папка под названием «Клиенты» со следующими разрешениями.
printshopowner# ls -la
drwx-----x 9 printshopowner printshopowner 4096 Aug 17 08:07 .
drwx-wx-wx 9 printshopowner clients 4096 Jan 19 10:24 clients
drwxrwx--- 2 premiumuser printshopowner 4096 Jan 19 08:13 premiumuser
Работает нормально. Клиент может загружать файлы, не видя файлы других клиентов. Проблема возникает, когда клиент загружает папку. Пользователь FTPвладелец типографии не могу удалить эти папки.
[printshopowner/clients]# ls -la
drwx-wx-wx 9 printshopowner clientes 4096 Jan 19 10:24 .
drwx-----x 9 printshopowner printshopowner 4096 Aug 17 08:07 ..
drwxr-xr-x 3 clients clients 4096 Dec 3 11:57 folderA
Есть идеи, как настроить FTP-хранилище, чтобы добиться желаемой функциональности?
решение1
Вы можете попробовать установить local_umask в vsftpd.conf
локальная_маска = 0002
Также рассмотрите возможность использования file_open_mode. Это контролирует разрешения, с которыми создаются загруженные файлы, с применением umasks поверх этого значения.
решение2
Чтобы удалить (или, если говорить точнее, «отсоединить») файл/каталог X, пользователю не нужно быть владельцем X или иметь разрешение на запись в X, но он должен иметь разрешение на запись вродитель Xкаталог.
В вашем случае printshopowner может удалить (rmdir) folderA, но только если она пуста. Пользователь printshopowner не может ничего удалить внутри folderA (у него нет прав на запись). Если вы измените umask клиента на 002, он создаст folderA как "drwxrwxr-x" и printshopowner сможет удалить ее (я предполагаю, что printshopowner назначен обеим группам printshopowner и clients). Не знаю, как изменить umask на вашем FTP-сервере.