Блог ИТ склеротика. Proftpd на Debian с разграничением доступа

Страницы

Расширенный поиск в статьях блога

1 июня 2012 г.

Proftpd на Debian с разграничением доступа

 


Proftpd сервер – это ftp сервер для linux систем с хорошим набором настроек.И так задача такова – сделать фтп сервер,да не простой а такой чтобы,каждый пользователь смотрел в свою папку + был пользователь который мог смотреть в другие папки добавлять в них свое.Пользователей будем создавать в системе,с ограничением доступа.Приступим ..


Для начала нужно установить наш сервер
sudo apt-get install proftpd

Все настройки для сервера хранятся в /etc/proftpd/proftpd.conf сотв.

Сам наш простенький конфиг файл

######################################################

#

# ProFtpd.conf

#

######################################################

# Имя сервера

ServerName "TEST FTP"

ServerType standalone

DefaultServer on

ServerIdent off

#Авторизация по учеткам в системе

AuthPAM yes

# Запрещаем руту логиниться на фтп

RootLogin off

# Слушаем порт 21 (стандартный)

Port 21

# Права на создаваемые файлы

Umask 022

# Chroot-им всех пользователей. Нефига им по файловой системе лазить

DefaultRoot ~

# Не проверяем валидность шелла. Всем подряд я шелл не даю, а на /bin/nologin ругается

RequireValidShell off

User proftpd

Group nogroup

TimeoutIdle 180

TimeoutLogin 120

TimeoutNoTransfer 360

TimeoutStalled 640

TransferLog /var/log/proftpd-tranfer.log

SystemLog /var/log/proftpd-error.log


Вот и минимальная настройка.Теперь осталось создать пользователей и раздать им права.

дерево такое будет
/srv/ftp/users          /clients/client1                   /client2

и 4 пользователя

users который смотрит только в свою папку

client1 и client2 которые тоже видят только свои папки

и adm который видит папку clients и client1,client2

Создадим новых пользователей
useradd users && useradd adm && useradd client1 && useradd client2

задать пароль для пользователя passwd user_name

Создадим группу ftpusers
groupadd ftpusers

Теперь отредактируем домашние директории

на примере client1
sudo nano /etc/passwd

Запись должна быть вида:
client1:x:1002:1002::/srv/ftp/clients/client1:/bin/false

Также добавим пользователей в группу ftpusers

для этого
sudo nano /etc/group

и запись вида
ftpusers:x:1001:adm,client1,client2

просто в уже созданную группу через запятую записываем юзеров.

(кстати если после всех манипуляций не заходит под определенный пользователем на ftp сервер возможно пользователь еще заблокирован

для разблокировки используем passwd -u user_name)

Теперь же мы перейдем к разграничению доступа все тоже на примере client1
chown client1:ftpusers /srv/ftp/clients/client1

(проделываем для домашних директорий пользователей)

(так же на заметку …чтобы пользователь получил доступ к домашней директории нужны права на запуск/поиск(-x)

кстати с разграничение доступа хорошо справляется mc-аналог far’а виндового ( sudo apt-get instal mc ))

Вот небольшая шпаргалка

chmod - изменяет права доступа к файлу (собственно из man-а)

Данная команда имеет различные опции: ‘rwxXstugo’

r -чтение;
w -запись;
x -выполнение (или доступ к каталогу);
X -выполнение, если файл является каталогом или уже имеет право на выполнение для какого-нибудь пользователя;
s -setuid- или setgid-биты;
t -sticky-бит;
u -установка для остальных таких же прав доступа, которые имеет пользователь, владеющий этим файлом;
g -установка для остальных таких же прав доступа, которые имеет группа файла;
o -установка для остальных таких же прав доступа, которые имеют остальные пользователи (не входящие в группу файла).

Т.е, предположим, что у нас есть »Папка_А», которую нам надо сделать доступной для чтения/записи и выполнения (доступа к каталогу).
От рута (супер пользователя) вводим в консоли команду:
chmod =rwx путь_к_папке/ Папка_А

После этого все в общем то готово
sudo /etc/init.d/proftpd restart

если что то не так курим логи в
/var/log/proftpd-error.log

.

Счетчик тИЦ и PR Яндекс.Метрика Msn bot last visit powered by MyPagerank.NetYahoo bot last visit powered by MyPagerank.Net ping fast  my blog, website, or RSS feed for Free