LinuxForum.Fans
Тема

ProFTPD и ntfs права доступа

Автор: Tlen 12 сообщений 3248 просмотров
#134583

Здравствуйте такая проблема, в нете нарыть не смог, тут вроде тоже нет.
Есть сервер на нем стоит ubuntu 10.04, на этой машине висит ftp сервер ProFTPD, папка для ftp находиться на диске в файловой системе ntfs. Переформатировать в нормальную файловую систему винт пока возможности нет, так вот вопрос можно ли реализовать такое, чтобы на фтп сервер можно было записывать файлы, но нельзя было удалить, вход на фтп производиться по логину и паролю. Как говорили что в ntfs нельзя ограничить запись и удаление.
Извиняюсь за возможно не точно сформулированный вопрос) просто пока в этом новичок.

#134623

А какая разница какая фаловая система. Главное правильно настроить сам фтп.
И всё получиться! Ведь можно задать limit на комманды которые можно выполнять.

#134625
Kettler написал:
А какая разница какая фаловая система. Главное правильно настроить сам фтп.
И всё получиться! Ведь можно задать limit на комманды которые можно выполнять.

А можно поподробнее хоть немножко) где искать в конфиг файле?

#134637

)) Я по моему писал что новичок, совсем совсем новичок)) мне бы просто объяснить на пальцах как это работает и что для этого нужно будет сделать, а не давать огромную документацию на буржуйском языке.)

#134647

===== Настройка FTP сервера на примере PROFTPD =====

Устанавливаем сам сервер

apt-get install proftpd

Открываем файл /etc/shells:

nano /etc/shells

Добавляем в конец

/bin/false

Теперь создадим директорию под ftp, это будет папка FTP в /home каталоге:

mkdir /home/FTP

Нам нужно создать пользователя с ником userftp:

useradd userftp -p пароль! -d /home/FTP -s /bin/false

После всего этого переименовываем файл proftpd.conf, что присутствует в системе, он нам не нужен, вместо него создадим и отредактируем свой:

mv /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.sample
nano /etc/proftpd/proftpd.conf

нам открылся файл для редактирования, добавляем в него следующее:

text

    # имя сервера, которое высвечивается при подключении
    ServerName "server"
    ServerType standalone
    # делаем сервером по умолчанию
    DefaultServer on
    ScoreboardFile /var/run/proftpd/proftpd.scoreboard
    
    Port 21
    # отключаем IPv6
    UseIPv6 off
    Umask 002
    
    # Приветствие при успешной регистрации на ftp-сервере
    AccessGrantMsg «Добро пожаловать!!!»
    # идентификация
    ServerIdent on «My FTP-Server»
    
    MaxInstances 30
    CommandBufferSize 512
    # под кем работаем
    User proftpd
    Group nogroup
    
    # Логи
    UseReverseDNS off
    ExtendedLog /var/log/proftpd/ftp.log
    TransferLog /var/log/proftpd/proftpd-tranfer.log
    SystemLog /var/log/proftpd/proftpd-error.log
    
    # запрещаем использования SITE CHMOD
    <Limit SITE_CHGRP SITE_CHMOD>
       DenyAll
    #  AllowUser userftp
    </Limit>
    
    # настройки, которые активны для всех
    <Global>
    # домашняя папка пользователя - это то, куда будет подключаться пользователь по умолчанию
    DefaultRoot ~
    # запрещаем подключаться от пользователя root
    RootLogin off
    # максимальное число попыток залогиниться
    MaxLoginAttempts 5
    # как ни странно, это запрещает авторизоваться пользователям из списка /etc/ftpusers
    UseFtpUsers on
    # позволяем продолжать скачивания и закачки
    AllowRetrieveRestart on
    AllowStoreRestart on
    
    LoginPasswordPrompt on
    DirFakeGroup on
    MaxClients 15
    tcpNoDelay on
    # удаляем незавершенные закачки
    DeleteAbortedStores on
    # разрешаем подключаться пользователям, у которых нет командной оболочки
    RequireValidShell off
    # указываем, что будем использовать порты 24000-26000 для PASV режима
    PassivePorts 24000 24003
    # без этой опции нельзя будет перезаписывать файлы
    AllowOverwrite On
    # а без этой будет выскакивать ошибка SECURITY VIOLATION: Passive connection from {host} rejected
    AllowForeignAddress On
    
    <Directory /home/FTP/>
    # прячем файлы, которые принадлежат пользователю root
    HideUser root
    # прячем файлы, которые пользователь не может изменить
    HideNoAccess on
    </Directory>
    </Global>
    # если не выключить эти две опции, то фтп при подключении будет сильно тормозить
    IdentLookups off
    UseReverseDNS off
    #Тут права и директория
    <Directory  /home/FTP>
        <limit ALL>
                Order allow,deny
                AllowUser userftp
                DenyAll
        </limit>
    </directory>

Стартуем:

/etc/init.d/proftpd start

Вот тут и указываем права

<limit CWD PWD DIRS READ>
Order allow,deny
AllowUser userftp
DenyAll
</limit>

#153241

Все привет.

Похожая или такая же проблема, и такой же новичок) Решил опробывать Линукс.

Пользуюсь Proftpd c оболочкой Gproftpd

пользователь white2 не работает так как его путь на файловой системе нтфс, а white работает.

Пробивал:
"Открываем файл /etc/shells:
nano /etc/shells
Добавляем в конец
/bin/false"

Но мне отказано в доступе, не могу ничего изменить.


Вот что сичас настроил.

Показать

ModulePath /usr/lib/proftpd
LoadModule mod_ctrls_admin.c
LoadModule mod_tls.c
LoadModule mod_radius.c
LoadModule mod_quotatab.c
LoadModule mod_quotatab_file.c
LoadModule mod_quotatab_radius.c
LoadModule mod_wrap.c
LoadModule mod_rewrite.c
LoadModule mod_load.c
LoadModule mod_ban.c
LoadModule mod_wrap2.c
LoadModule mod_wrap2_file.c
LoadModule mod_dynmasq.c
LoadModule mod_vroot.c
LoadModule mod_ifsession.c
ServerType standalone
DefaultServer on
Umask 022
ServerName "100.100.100.100"
ServerIdent on "FTP ArtSirius"
ServerAdmin artsirius.lviv@gmail.com
IdentLookups off
UseReverseDNS off
Port 21
PassivePorts 49152 65534
MasqueradeAddress 100.100.100.100
TimesGMT off
MaxInstances 30
MaxLoginAttempts 3
TimeoutLogin 300
TimeoutNoTransfer 120
TimeoutIdle 120
DisplayLogin welcome.msg
DisplayChdir .message
User nobody
Group nobody
DirFakeUser off nobody
DirFakeGroup off nobody
DefaultTransferMode binary
AllowForeignAddress off
AllowRetrieveRestart on
AllowStoreRestart on
DeleteAbortedStores off
TransferRate RETR 40000
TransferRate STOR 40000
TransferRate STOU 40000
TransferRate APPE 40000
SystemLog /var/log/secure
RequireValidShell off
<Limit LOGIN>
AllowUser white2
AllowUser white
DenyALL
</Limit>

<Anonymous /media/SASHA/WORK/FTP/white>
User white2
Group Art
AnonRequirePassword on
MaxClients 10 "The server is full, hosting %m users"
DisplayLogin welcome.msg
DisplayChdir .msg
<Limit LOGIN>
Allow from All
Deny from all
</Limit>
AllowOverwrite off
<Limit LIST NLST STOR STOU APPE RETR PWD XPWD SIZE STAT CWD XCWD CDUP XCUP >
AllowAll
</Limit>
<Limit RNFR RNTO DELE MKD XMKD SITE_MKDIR RMD XRMD SITE_RMDIR SITE SITE_CHMOD SITE_CHGRP MTDM >
DenyAll
</Limit>
<Directory /home/rasamaxa/FTP>
AllowOverwrite off
<Limit LIST NLST STOR STOU APPE RETR RNFR RNTO PWD XPWD SIZE STAT CWD XCWD CDUP XCUP >
AllowAll
</Limit>
<Limit DELE MKD XMKD SITE_MKDIR RMD XRMD SITE_RMDIR SITE SITE_CHMOD SITE_CHGRP MTDM >
DenyAll
</Limit>
</Directory>
<Directory /media/SASHA/WORK/FTP/white>
AllowOverwrite on
<Limit LIST NLST STOR STOU APPE RETR RNFR RNTO DELE MKD XMKD SITE_MKDIR RMD XRMD SITE_RMDIR SITE SITE_CHMOD SITE_CHGRP MTDM PWD XPWD SIZE STAT CWD XCWD CDUP XCUP >
AllowAll
</Limit>
<Limit NOTHING >
DenyAll
</Limit>
</Directory>
</Anonymous>

<Anonymous /home/rasamaxa/FTP>
User white
Group Art
AnonRequirePassword on
MaxClients 10 "The server is full, hosting %m users"
DisplayLogin welcome.msg
DisplayChdir .msg
<Limit LOGIN>
Allow from All
Deny from all
</Limit>
AllowOverwrite off
<Limit LIST NLST STOR STOU APPE RETR PWD XPWD SIZE STAT CWD XCWD CDUP XCUP >
AllowAll
</Limit>
<Limit RNFR RNTO DELE MKD XMKD SITE_MKDIR RMD XRMD SITE_RMDIR SITE SITE_CHMOD SITE_CHGRP MTDM >
DenyAll
</Limit>
<Directory /home/rasamaxa/FTP>
AllowOverwrite off
<Limit LIST NLST STOR STOU APPE RETR RNFR RNTO PWD XPWD SIZE STAT CWD XCWD CDUP XCUP >
AllowAll
</Limit>
<Limit DELE MKD XMKD SITE_MKDIR RMD XRMD SITE_RMDIR SITE SITE_CHMOD SITE_CHGRP MTDM >
DenyAll
</Limit>
</Directory>
</Anonymous>


Подскажите что делать?

#153253
RASAMAXA написал:
Подскажите что делать?

без NTFS никак? тогда монтируйте её с umask=0000, хотя это дыра.... такая дыра...
если нет каталогов, то umask=0111, если заливка не нужна и нет каталогов 0333
там права очень сложно задать :(

#153273

У меня какая ситуация.

Стоит 2 ОС (Линукс и Win7)

Иду на работу включаю Линукс, прихожу и надо работать включаю Win7 так как работаю в Adobe premiere, illustrator, flash i Photosop.

А так чтоб не раскидать по разным папкам сделал на диске с НТФС (так как Линукс видед ету файловую систему, что нельзя сказать о Win7 которая не видит файловую систем Линукса)

Есть еще раздел ФАТ32, с ним не пробывал

У меня папка находится по пути D:\Work\FTP\user

#153355
RASAMAXA написал:
У меня папка находится по пути D:\Work\FTP\user

1) создайте в домашнем каталоге юзера white2 каталог data.
2)* создайте каталог /mnt/D
3)* пропишите в /etc/fstab

text
/dev/sda1        /mnt/D     ntfs-3g     users                         1   0
/mnt/D   /home/white2/data auto bind 0 0

тут sda1 это ваш диск D: (замените на свой)
старое упоминание диска D вычеркнете (поставьте # в самом начале строки)
4)* mount -o remount /mnt/D
5)* mount /home/white2/data
(эти команды должны молча завершится)
6) перезагрузитесь
7) PROFIT - у юзера white2 есть каталог /home/white2/data, куда он может читать и писать. а каталог на NTFS.

#153356

забыл сказать - перед командами надо закрыть ВСЕ программы, которые юзают диск Д. и остановить proftpd.

#153425

Буду пробывать.

Войдите или зарегистрируйтесь, чтобы ответить.