Как настроить доступ по группам к FTP серверу?

Ссылка скопирована
1 ответ

Необходимо настроить 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.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Роман IT Ответ

Для настройки доступа по группам к FTP серверу, вам потребуется выполнить следующие шаги:

1. Создание групп пользователей:
Для начала создайте группы пользователей, которым будет предоставлен доступ к FTP серверу. Для этого используйте команду `groupadd` в терминале:
```

groupadd group1
groupadd group2

groupadd group1 groupadd group2

```

2. Создание пользователей и добавление их в группы:
Создайте пользователей и добавьте их в соответствующие группы с помощью команды `useradd` и `usermod`:
```

useradd -m -g group1 user1
usermod -aG group2 user2

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

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 серверу, чтобы обеспечить безопасность и эффективность вашей системы.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно