ProFTPd
Содержание |
Описание
ProFTPD - FTP-сервер, имеющий синтаксис файлов конфигурации, сходный с веб-сервером Apache.
Органичение доступа .ftpaccess
Закрыть все для всех (кладётся в корень FTP)
<Limit READ WRITE DIRS> DenyAll </Limit>
Разрешить frienduser читать/писать/листать папку (кладется в папку)
<Limit READ WRITE DIRS>
Allowuser frienduser
</Limit>
Разрешить доступ только тем, кто входит сразу в обе группы
<Limit READ WRITE DIRS>
AllowGroup group1,group2
</Limit>
Разрешить доступ всем членам обоих групп
<Limit READ WRITE DIRS>
AllowGroup group3
AllowGroup group4
</Limit>
Пример конфига с разграничением по группам
Создаем /etc/ftpd.passwd и /etc/ftpd.group скриптом ftpasswd
cd /etc /usr/sbin/ftpasswd --passwd --name user1 --home /var/ftp.test/ --shell /bin/sh --uid 2001 /usr/sbin/ftpasswd --passwd --name user2 --home /var/ftp.test/ --shell /bin/sh --uid 2002 /usr/sbin/ftpasswd --passwd --name user3 --home /var/ftp.test/ --shell /bin/sh --uid 2003 /usr/sbin/ftpasswd --group --name group1 --member user1 --member user2 --gid 2001 /usr/sbin/ftpasswd --group --name group2 --member user1 --member user2 --gid 2002
/etc/ftpd.group:
group1:x:2001:user1,user2 group2:x:2002:user2,user3
/etc/ftpd.passwd:
user1:***:2001:2001::/var/ftp.test:/bin/sh user2:***:2002:2002::/var/ftp.test:/bin/sh user3:***:2003:2003::/var/ftp.test:/bin/sh
/etc/proftpd.conf:
# не забываем убрать AuthPAMConfig и AuthOrder из конфига по умолчанию
# или дописать в AuthOrder первым модулем mod_auth_file.c
# в первом случае будет авторизация только по /etc/ftpd.*
# во втором - и по юниксовым паролям(для доступа к домашним директориям пользователей)
AuthUserFile /etc/ftpd.passwd
AuthGroupFile /etc/ftpd.group
<Directory /var/ftp.test>
<Limit ALL>
AllowGroup group1,group2
</Limit>
</Directory>
<Directory /var/ftp.test/group1>
<Limit ALL>
AllowGroup group1
DenyGroup !group1
</Limit>
</Directory>
<Directory /var/ftp.test/group2>
<Limit ALL>
AllowGroup group2
DenyGroup !group2
</Limit>
</Directory>
Пример конфига с разрешением пользователям делать chmod
Разрешить пользователям user1 и user2 выполнять команды CHMOD на сервере, а остальным запретить
<Limit SITE_CHMOD> Order deny,allow AllowUser user1 AllowUser user2 </Limit>
В принципе по аналогии работают SITE_CHGRP и SITE_CHOWN, но по соображениям безопасности ставить их не рекомендуется.
Итог:
[root@vixen etc]# lftp user1@localhost Password: lftp user1@localhost:~> ls drwxr-xr-x 4 root root 4096 Mar 15 13:57 . drwxr-xr-x 4 root root 4096 Mar 15 13:57 .. drwxr-xr-x 2 root root 4096 Mar 15 13:57 group1 [root@vixen etc]# lftp user2@localhost Password: lftp user2@localhost:~> ls drwxr-xr-x 4 root root 4096 Mar 15 13:57 . drwxr-xr-x 4 root root 4096 Mar 15 13:57 .. drwxr-xr-x 2 root root 4096 Mar 15 13:57 group1 drwxr-xr-x 2 root root 4096 Mar 15 13:57 group2 [root@vixen etc]# lftp user3@localhost Password: lftp user3@localhost:~> ls drwxr-xr-x 4 root root 4096 Mar 15 13:57 . drwxr-xr-x 4 root root 4096 Mar 15 13:57 .. drwxr-xr-x 2 root root 4096 Mar 15 13:57 group2
Авторизация системным пользователем
RequireValidShell off AuthPAM off AuthPAMConfig ftp

