Управление произвольными разрешениями пользователя в PureFTPd

Мне нужно предоставить FTP-сервис, которым нужно управлять через Интернет самым простым способом. Мой клиент хочет создавать папки и пользователей и предоставлять им только чтение или доступ на чтение / запись произвольно.

Например:

Папка "Документы" должна быть доступна только для чтения нескольким пользователям, доступна для записи внутренним пользователям и невидима для остальных.

Папка "Изображения" должна быть доступна только для журналистов, доступна для записи и невидима для остальных.

Папка "Медиа" должна быть доступна только для чтения, доступна для записи или невидима для произвольных пользователей, указанных администратором.

Там может быть большое количество пользователей и папок.

Я не могу найти хороший способ сделать это.

Я думал, что мог бы дать каждому пользователю домашнюю папку и поместить символические ссылки для папок, к которым у него есть доступ для чтения, и сделать пользователя частью группы папок, когда у него тоже есть права на запись, но теперь я думаю, что это не сработает, потому что с PureFTPd (или ProFTPd) я могу указать только сопоставление виртуального пользователя системному пользователю и только один GUID для каждого виртуального пользователя. Мой подход требует, чтобы я мог указать несколько GUID для каждого пользователя (по одному на каждую папку, к которой у него есть права на запись).

Мне нужно начать программировать этого администратора, и я до сих пор не знаю, какой подход сработает, если таковой будет.

Вопрос в том, как дать произвольные разрешения 20 папкам или около того большому количеству пользователей FTP?

1 ответ

Решение

Будет ли ACL работать на вас? Для Ubuntu 10.10 монтируйте файловые системы с опцией acl.

sudo vim /etc/fstab

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 по умолчанию, acl 0 1

sudo mount -o remount,acl /

(или может есть отдельный / home / раздел?) Для этого создайте группы.

sudo groupadd journalists
sudo groupadd associates
sudo usermod -a -G journalists $username_1
sudo usermod -a -G associates $username_2

(Пользователи должны выйти из системы и войти снова, чтобы стать участником группы.)

Просто для иллюстрации в каталоге, /home/ftp/Pictures, выполните "Папка" Изображения "должна быть доступна только для журналистов, доступна для записи и невидима для остальных":

sudo chown -R root.associates /home/ftp/Pictures
sudo chmod 0770 /home/ftp/Pictures
sudo chmod g+s /home/ftp/Pictures
sudo setfacl -d -m u::rwx,g::rwx,o::--- /home/ftp/Pictures
sudo setfacl -d -m u::rwx,g:journalists:r-x,o::--- /home/ftp/Pictures

Теперь у вас есть члены группы сотрудников, которые могут читать / писать все в / home / ftp / Pictures, в то время как члены журналистов могут только читать (выполнять), а все остальные вообще не имеют разрешения.

Если мы хотим ограничить удаление и переименование для всех, кроме пользователя, который создал файл:

sudo chmod +t /home/ftp/Pictures
Другие вопросы по тегам