Как настроить доступ по группам к FTP серверу?
Необходимо настроить FTP сервер на Ubuntu, так что бы группа пользователей имела доступ только к своей папке. Я использовал VSFTPD, создал группу group1, каталог /ftp/group1 и несколько локальных пользователей. Каждый из них подключаясь может скачивать и загружать файлы в эту папку.
/etc/vsftpd.conf
#Ports connect_from_port_20=YES listen_port=21 pasv_min_port=40000 pasv_max_port=50000 listen=YES listen_ipv6=NO #Connect anonymous_enable=NO local_enable=YES write_enable=YES download_enable=YES #Upload files guest_enable=YES guest_username=ftp virtual_use_local_privs=YES #ACCESS USERS chroot_local_user=YES local_root=/ftp local_umask=002 chown_uploads=YES chmod_enable=YES userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO dirmessage_enable=YES use_localtime=YES xferlog_enable=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd #SSL rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH |
#Ports connect_from_port_20=YES listen_port=21 pasv_min_port=40000 pasv_max_port=50000 listen=YES listen_ipv6=NO #Connect anonymous_enable=NO local_enable=YES write_enable=YES download_enable=YES #Upload files guest_enable=YES guest_username=ftp virtual_use_local_privs=YES #ACCESS USERS chroot_local_user=YES local_root=/ftp local_umask=002 chown_uploads=YES chmod_enable=YES userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO dirmessage_enable=YES use_localtime=YES xferlog_enable=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd #SSL rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
права на папку
chown nobody:nogroup /ftp chmod 755 /ftp/group1/ chown nobody:group1 /ftp/group1/ chmod 775 /ftp/group1/ |
chown nobody:nogroup /ftp chmod 755 /ftp/group1/ chown nobody:group1 /ftp/group1/ chmod 775 /ftp/group1/
Но когда создаю еще две группы со своими папками, пользователи всё равно могут загружать файлы в чужие папки.
Дополнительно:
Сам спросил - сам нашел ответ) Решил задачу так:
конфиг
#Ports connect_from_port_20=YES listen_port=21 pasv_min_port=40000 pasv_max_port=50000 listen=YES listen_ipv6=NO #Connect anonymous_enable=NO local_enable=YES write_enable=YES download_enable=YES #ACCESS USERS chroot_local_user=YES local_root=/ftp local_umask=007 chown_uploads=YES chmod_enable=YES userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO dirmessage_enable=YES use_localtime=YES xferlog_enable=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd #SSL rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH |
#Ports connect_from_port_20=YES listen_port=21 pasv_min_port=40000 pasv_max_port=50000 listen=YES listen_ipv6=NO #Connect anonymous_enable=NO local_enable=YES write_enable=YES download_enable=YES #ACCESS USERS chroot_local_user=YES local_root=/ftp local_umask=007 chown_uploads=YES chmod_enable=YES userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO dirmessage_enable=YES use_localtime=YES xferlog_enable=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd #SSL rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
Создал три группы, добавил пользователей в эти группы, а доступ к папкам группы ограничил правами.
Теперь при подключении к FTP все пользователи могут видеть папки остальных, но зайти в них не могут, к своим же папкам имеют полный доступ.
назначение прав
groupadd group1 groupadd group2 useradd -g group1 user11 useradd -g group1 user12 useradd -g group1 user21 useradd -g group1 user22 chown nobody:group1 /ftp/group1 chown nobody:group2 /ftp/group2 chmod 770 /ftp/group1 chmod 770 /ftp/group2 |
groupadd group1 groupadd group2 useradd -g group1 user11 useradd -g group1 user12 useradd -g group1 user21 useradd -g group1 user22 chown nobody:group1 /ftp/group1 chown nobody:group2 /ftp/group2 chmod 770 /ftp/group1 chmod 770 /ftp/group2
Ответы:
Я когда-то такое делал через proftpd, хитро вывернутые права и mount --bind
https://github.com/drakkan/sftpgo
Мега гибкая штука. У себя поднял в docker.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для настройки доступа по группам к FTP серверу, вам потребуется выполнить следующие шаги:
1. Создание групп пользователей:
Для начала создайте группы пользователей, которым будет предоставлен доступ к FTP серверу. Для этого используйте команду `groupadd` в терминале:
```
groupadd group1 groupadd group2
```
2. Создание пользователей и добавление их в группы:
Создайте пользователей и добавьте их в соответствующие группы с помощью команды `useradd` и `usermod`:
```
useradd -m -g group1 user1 usermod -aG group2 user2
```
3. Настройка прав доступа к FTP серверу:
Измените конфигурационный файл FTP сервера (например, vsftpd) для настройки доступа по группам. Откройте файл `/etc/vsftpd.conf` и добавьте следующие строки:
```
userlist_deny=NO userlist_enable=YES userlist_file=/etc/vsftpd.user_list ``` Создайте файл `/etc/vsftpd.user_list` и добавьте в него имена пользователей, которым разрешен доступ. 4. Перезапустите FTP сервер: После внесения изменений в конфигурационный файл, перезапустите FTP сервер для применения изменений: ``` <pre lang="php"> service vsftpd restart
```
Теперь у ваших пользователей будет доступ к FTP серверу в соответствии с их группами. Пожалуйста, убедитесь, что вы следуете инструкциям и правильно настраиваете доступ по группам к FTP серверу, чтобы обеспечить безопасность и эффективность вашей системы.