включить редактирование

PROFTPD авторизация из файла

Создан:

Надо организовать FTP.
1. Папки для пользователей, юзер ftp попадает в свою папку и там делает что угодно:

gradation (пользователь gradationftp)
origin (пользователь originftp)

2. Папка для входящих файлов, пользователь видит только эту папку, может только скопировать в нее свой файл, а скачивать уже не может (на практике дается учетка кому угодно например филиалам компании и они льют отчеты, но скачивать для просмотра друг у друга эти файлы не могут):
inbox (пользователь inboxftp)

3. Папка для админа. Видна только пользователю adminftp, естественно у него полные права доступа.
admin (пользователь adminftp)
пользователь adminftp имеет полный доступ ко всем вышеназванным папкам.

Я выбираю proftpd из-за гибкости в настройках.
Ставим как обычно:

#apt-get install proftpd

Переходим в каталог:

#cd /etc/proftpd

Смотрим и правим:

#vim proftpd

ServerName                      "ftp.info-linux.ru"
ServerType                      standalone
DefaultServer                   on
Port                            21
Umask                           022
MaxInstances                    30
User                            nobody
Group                           nobody
DefaultRoot ~
AllowOverwrite          on
AuthUserFile            /etc/proftpd/ftppasswd
AuthGroupFile           /etc/proftpd/ftpgroups
RequireValidShell       off
DirFakeUser             on      ~
DirFakeGroup            on      ~

все по дефолту, за исключением аутентификационных файлов /etc/proftpd/ftppasswd и /etc/proftpd/ftpgroups
создаем их

#touch ftppasswd ftpgroups

Ставим права на файлы:

#chmod 444 ftppasswd ftpgroups
#chmod 644 proftpd.conf
#ls -la
-r--r--r--  1 root root  118 Nov 26 10:08 ftpgroups
-r--r--r--  1 root root 1393 Nov 26 10:08 ftppasswd
-rw-r--r--  1 root root 4269 Nov 26 10:06 proftpd.conf

Создаем дирректории для ftp пользователей

#mkdir -p /data/ftp/admin /data/ftp/gradation /data/ftp/origin /data/ftp/inbox

Создаем наших пользователей:

#ftpasswd --passwd --file=ftppasswd --name=adminftp --shell=/bin/false --home=/data/ftp/admin --uid=100 --gid=200
#ftpasswd --passwd --file=ftppasswd --name=gradationftp --shell=/bin/false --home=/data/ftp/gradation --uid=101 --gid=200
#ftpasswd --passwd --file=ftppasswd --name=originftp --shell=/bin/false --home=/data/ftp/origin --uid=102 --gid=200
#ftpasswd --passwd --file=ftppasswd --name=inboxftp --shell=/bin/false --home=/data/ftp/inbox --uid=103 --gid=200

Проверяем:

#cat ftppasswd
adminftp:$1$QSnGH1go$QVijvVd9u/G1pOdNLFKjI0:100:200::/data/ftp:/bin/false
gradationftp:$1$QSSOHSgo$QwijvVdSu/O1pOdNLFKjI0:101:200::/data/ftp:/bin/false
originftp:$1$QSUOH1goDQwijvVd9u/O1pOGNLFKjI0:101:200::/data/ftp:/bin/false
inboxftp:$1$FSUOH1go$QwijvVd9u/c1pOdGLFKjI0:103:200::/data/ftp:/bin/false

Заводим в группу:

#ftpasswd --group --file=ftpgroups --name=ftpusers -m adminftp -m gradationftp -m originftp -m inboxftp --gid 200

Проверяем:

#cat ftpgroups
ftpusers:x:200:adminftp,gradationftp,originftp,inboxftp

И самое интересное, открываем наш конфигурационный файл и дописываем в конец:

#vim proftpd

# для примера, для нас не актуально в данном случае мы создали пользователей без шела, но для примера полезно
#<Limit SITE_CHMOD WRITE> разрешаем выполнение команды CHMOD
# DenyAll запретить всем
# AllowUser adminftp разрешить только adminftp
#</Limit>

<Directory /data/ftp> # создаем доступ для каталога /data/ftp
<Limit READ WRITE> # разрешаем читать и писать кому?
DenyAll # запретить всем
AllowUser adminftp # разрешить только adminftp
</Limit> # итд по аналогии
</Directory>
<Directory /data/ftp/admin>
<Limit READ WRITE DIRS>
DenyAll
AllowUser adminftp
</Limit>
</Directory>
<Directory /data/ftp/inbox>
<Limit READ WRITE DIRS>
DenyAll
AllowUser adminftp
</Limit>
<Limit STOR WRITE DIRS> # параметр STOR как раз и позволяет выполнить нашу задачу ограничится закачкой
DenyAll
AllowUser inboxftp, adminftp
</Limit>
</Directory>
<Directory /data/ftp/gradation>
<Limit READ WRITE DIRS>
DenyAll
AllowUser gradationftp, adminftp
</Limit>
</Directory>
<Directory /data/ftp/origin>
<Limit READ WRITE DIRS>
DenyAll
AllowUser originftp, adminftp
</Limit>
</Directory>

Перезагружаем демона proftpd:

#/etc/init.d/proftpd restart

Все.

Автор: awful Просмотров: 3331


Рейтинг статьи: 0

Общий рейтинг из всех статей автора :
{0 [888]} [ - - - - - - - - - - ]

Общий рейтинг из всех статей на сайте :
{0 [888]} [ - - - - - - - - - - ]

[?]
комментариев к данной статье нет

Добавить комментарий к статье


Ctrl+Enter

Для активации кнопки, введите символы, которые Вы видите на картинки.

новая

тема

Заметки на тему IT

Монитор поиска
[x]
Новое сообщение

Сообщения в чате

Вы спрашиваете у гостей/у зарегистрированных/ У Вас спрашивают
всем Ctrl+Enter
зарегистрированным Ctrl+Enter
Ctrl+Enter

Краткая инструкция по работе с чатом

  • Вы должны ввести имя, которое будет запомнено и применяться для чата и комментариев на сайте.
  • Выбрать одну из возможностей
    "Вы спрашиваете у гостей/
    у зарегистрированных/
    У Вас спрашивают"
  • Кликните на один из способов и появиться дополнительная информация