rilpoint_mw113

ProFTPd

Содержание

Описание

ProFTPD - FTP-сервер, имеющий синтаксис файлов конфигурации, сходный с веб-сервером Apache.

Документация по ProFTPD

Примеры конфигураций ProFTPD

Инструкция по ProFTPD

Синтаксис proftpd.conf

Органичение доступа .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

Внешние ссылки

Сайт ProFTPD

Источник — «http://www.openwiki.ru/wiki/ProFTPd»