LinuxForum.Fans
Тема

[Решено] Proftpd невозможен upload на httproot

Автор: lexikon 8 сообщений 2487 просмотров
#42090

Добрый вечер...хотелось бы полностью почистить систему от собранного из исходников proftpd...хотя можно поставить и по другому вопрос дабы была польза от данной темы не только мне :rolleyes:

суть в том что был собран proftpd из исходников...попытался его удалить из папки исходников воспользовался командами make clean и make distclean но все равно он где то падла засел :( что делать в таких случаях?

root:~# whereis proftpd
proftpd: /usr/include/proftpd /usr/share/man/man8/proftpd.8
root:~# proftpd
bash: /usr/local/sbin/proftpd: Нет такого файла или каталога

если я установлю фтп сервер уже из репозиториев то будет функционировать токо с доработкой скриптов что очень не хочется делать :(
откуда он берет информацию что proftpd находится именно в /usr/local/sbin/proftpd

#42098

А какие ошибки дает? Если проблема с библиотеками, то, имхо, только ручками.

#42102

читаем Makefile и выкорчевываем ручками всё, что там написано.

#42103
lexikon написал:
откуда он берет информацию что proftpd находится именно в

а какой дистрибутив? почему из сырцов ставили?

#42120

дистриб Debian lenny! ставил исходники для того чтобы заюзать мод lang!
хочу поставить proftpd из репов сквиза...там свежая версия...
ошибки не дает просто как то не корректно будет все работать(( хочется избежать всяких символьных ссылок и прочей лабуды :(

читаем Makefile и выкорчевываем ручками всё, что там написано.

а разве команды make clean не делает все тоже самое?

суть только вот в этом

root:~# proftpd
bash: /usr/local/sbin/proftpd: Нет такого файла или каталога

он должен сказать что команда не найдена а говорит что нет файла :( то есть откуда то он берет этот PATH



Так походу нашел решение проблемы!
используем команду locate proftpd
она выдает список файлов которые как то связаны с proftpd
удаляем остатки! используем команду updatedb ставим пакет из репов...префикс благополучно меняется на необходимый wink

#42163
lexikon написал:
а разве команды make clean не делает все тоже самое?

это не команда а инструкция к цели clean описанной в Makefile, в 60% случаях её не описывают нифига.

#42172
lexikon написал:
locate proftpd
она выдает список файлов которые как то связаны с proftpd

она выдаёт список файлов, в имени которых есть proftpd, на состояние в 4 утра. ну или когда у вас в последний раз запускалась updatedb (она запускается сама). потому updatedb нужно исполнять ДО, а не после locate.

Вы удалили далеко не всё, я-бы глянул в /usr/local командой
[console]find /usr/local -iname "*proftpd*"[/console]
и далее - ручками... ну перед этим запаковал-бы этот каталог - а то у мну ручки кривые :rolleyes:

system-root написал:
это не команда а инструкция к цели clean описанной в Makefile, в 60% случаях её не описывают нифига.

угу... обычно она вовсе и не деинсталлирует. в большинстве случаев её действие противоположно make, т.е. она стирает файлы из временного каталога (с исходником), которые создались при компиляции. но вот из системы она ничего не удаляет.

впрочем - это не очень важно - из исходников ставится в /usr/local а из репов в /usr, потому допустимо иметь сразу 2 версии. ну или полторы, как сейчас у ТС oO

#42412

cстолкнулся с новой проблемой! все переставил короче в итоге(( заново все отконфигурировал! сделал поддержку mysql...пассов в криптованой форме...MOD_WRAP с мускулем опять же!
:( уже вовсе не знаю что делать! конненчусь любым юзером и листаю директории нормально! заливаю всеми акками тоже нормально! но вот юзером http которые схрутится в свою домашнюю директории залить или изменить файлы не могу :(
хотя права есть у юзера и 777 пробовал! все равно 550!
представляю конфиги все
proftpd.conf

text
#-------------------------------------
# Подключение сторонних модулей
#-------------------------------------
Include /etc/proftpd/modules.conf

#------------------------------------- # Глобальные настройки FTP сервера #------------------------------------- ServerName "FTP Server" ServerType standalone DefaultServer on UseIPv6 off IdentLookups off UseReverseDNS off

DisplayLogin welcome.msg DisplayChdir .message true ShowSymlinks off

TimeoutLogin 1200 TimeoutNoTransfer 1200 TimeoutStalled 1200 TimeoutIdle 2400

DenyFilter \*.*/ RequireValidShell off

#------------------------------------- # Используемые порты #------------------------------------- Port 21 PassivePorts 60000 65000

#------------------------------------- # Маска для создания удаления файлов #------------------------------------- Umask 022

# To prevent DoS attacks, set the maximum number of child processes # to 30. If you need to allow more than 30 concurrent connections # at once, simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service # (such as xinetd). MaxInstances 30

# Set the user and group under which the server will run. User ftp Group nogroup UseFtpUsers off

# To cause every FTP user to be "jailed" (chrooted) into their home # directory, uncomment this line. DefaultRoot ~

# Normally, we want files to be overwriteable. AllowOverwrite on AllowOverride off

#------------------------------------- # Логирование #------------------------------------- ExtendedLog /var/log/proftpd/extend.log # TransferLog /var/log/proftpd/xfer.log SystemLog /var/log/proftpd/proftpd.log # SQLLogFile /var/log/proftpd/sql.log DebugLevel 9

#------------------------------------- # Подключаем файл конфигураций модулей #------------------------------------- Include /etc/proftpd/modconf.conf

#------------------------------------- # Подключаем файл конфигураций глобальных модулей #------------------------------------- #Include /etc/proftpd/ldap.conf Include /etc/proftpd/sql.conf #Include /etc/proftpd/tls.conf #Include /etc/proftpd/virtuals.con

# Bar use of SITE CHMOD by default <Limit SITE_CHMOD> DenyAll </Limit>

# A basic anonymous configuration, no upload directories. If you do not # want anonymous users, simply delete this entire <Anonymous> section. <Anonymous /home/ftp> User ftp Group nogroup SQLEngine off

# We want clients to be able to login with "anonymous" as well as "ftp" UserAlias anonymous ftp

# Limit the maximum number of anonymous logins MaxClients 50

# We want 'welcome.msg' displayed at login, and '.message' displayed # in each newly chdired directory. DisplayLogin welcome.msg DisplayChdir .message

# Limit WRITE everywhere in the anonymous chroot <Limit WRITE> DenyAll </Limit> </Anonymous>

modules.conf

text
#
# This file is used to manage DSO modules and features.
#

# This is the directory where DSO modules reside

ModulePath /usr/lib/proftpd

# Allow only user root to load and unload modules, but allow everyone # to see which modules have been loaded

ModuleControlsACLs insmod,rmmod allow user root ModuleControlsACLs lsmod allow user *

# LoadModule mod_site_misc.c LoadModule mod_ctrls_admin.c LoadModule mod_tls.c

# Install one of proftpd-mod-mysql, proftpd-mod-pgsql or any other # SQL backend engine to use this module and the required backend. # This module must be mandatory loaded before anyone of # the existent SQL backeds. LoadModule mod_sql.c

# Install proftpd-mod-ldap to use this #LoadModule mod_ldap.c

# # 'SQLBackend mysql' or 'SQLBackend postgres' directives are required # to have SQL authorization working. You can also comment out the # unused module here, in alternative. #

# Install proftpd-mod-mysql and decomment the previous # mod_sql.c module to use this. LoadModule mod_sql_mysql.c

# Install proftpd-mod-pgsql and decommen the previous # mod_sql.c module to use this. #LoadModule mod_sql_postgres.c

# Install proftpd-mod-sqlite and decomment the previous # mod_sql.c module to use this #LoadModule mod_sql_sqlite.c

# Install proftpd-mod-odbc and decomment the previous # mod_sql.c moduleto use this #LoadModule mod_sql_odbc.c

LoadModule mod_radius.c LoadModule mod_quotatab.c LoadModule mod_quotatab_file.c

# Install proftpd-mod-ldap to use this #LoadModule mod_quotatab_ldap.c

# Install proftpd-mod-pgsql or proftpd-mod-mysql to use this #LoadModule mod_quotatab_sql.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 # Install proftpd-mod-pgsql or proftpd-mod-mysql to use this LoadModule mod_wrap2_sql.c LoadModule mod_dynmasq.c

# keep this module the last one LoadModule mod_ifsession.c

modconf.conf

text
<IfModule mod_wrap2.c>
    WrapEngine              on
    WrapAllowMsg            "Доступ юзеру '%u' разрешен правилами доступа"
    WrapDenyMsg             "Доступ юзеру '%u' ЗАПРЕЩЕН правилами доступа"
    WrapLog                 /var/log/proftpd/wrap.log

#Описания запросов к sql базе MOD_WRAP SQLNamedQuery get-allowed-clients SELECT "allowed FROM wrapallow WHERE name = '%{0}'" SQLNamedQuery get-denied-clients SELECT "denied FROM wrapdeny WHERE name = '%{0}' or name = 'ALL'"

#Директива WrapUserTables предназначена для ограничений по пользователям, существуют также #директивы WrapGroupTables и WrapTables соответственно для ограничений по группам и ограничений для всех. #Хотя в документации и показано что можно опускать имя пользователя в директиве WrapUserTables на #самом деле это не так, поэтому я добавил !unknown что означает применять данные ограничения для всех пользователей #кроме пользователя unknown которого не существует на самом деле :) WrapUserTables !unknown sql:/get-allowed-clients sql:/get-denied-clients </IfModule>

<IfModule mod_dynmasq.c> # DynMasqRefresh 28800 </IfModule>

<IfModule mod_quotatab.c> QuotaEngine on </IfModule>

<IfModule mod_ratio.c> Ratios off </IfModule>

<IfModule mod_lang.c> #LangEngine on #UseEncoding utf8 cp1251 # UseEncoding on </IfModule>

<IfModule mod_delay.c> DelayEngine on </IfModule>

<IfModule mod_ctrls.c> ControlsEngine off ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule>

<IfModule mod_ctrls_admin.c> AdminControlsEngine off </IfModule>

sql.conf

text
<IfModule mod_sql.c>
    SQLBackend        mysql
    SQLEngine         on
    SQLAuthenticate     users
    SQLMinID 32

# Тип шифрования пароля ( Crypt Plaintext Backend ) SQLAuthTypes Crypt

# Подключение SQLConnectInfo proftpd@localhost юзер пасс

# Описание полей таблицы SQLUserInfo users username password uid gid homedir shell #SQLGroupInfo grouptable groupname gid members

# Дополнительные запросы SQLLog PASS counter_login SQLNamedQuery counter_login UPDATE "`last_login`=now(), \ `login_count`=`login_count`+1 WHERE \ `username`='%u'" `users` # пишем неудачные логины в БД SQLLog ERR_PASS counter_err SQLNamedQuery counter_err UPDATE "`last_err_login`=now(), \ `err_login_count`=`err_login_count`+1 WHERE \ `username`='%U'" `users`

# логируем что сохраняет и тащщит с сервера: # переменные # %u - имя пользователя (с которым залогинился) # %f - полный путь и имя файла который был скачан # %b - число байт, которые были скачаны # %h - имя клиента (из DNS), если не удалось разрешить - IP # %a - IP-адрес клиента # %m - имя команды полученной от клиента (RETR/STOR) # %T - время (секунд) ушедшее на передачу файла клиенту

SQLLog RETR,STOR log_story_transfer SQLNamedQuery log_story_transfer INSERT "'', now(), '%u', '%f', '%b', '%a', '%m', '%T'" `xfer_table`

# записываем ошибки при сохранении и чтении файлов # (в одну строку не влезли - но работает и в таком виде :)) SQLLOG ERR_RETR,ERR_STOR,ERR_DELE,ERR_RMD,ERR_RNTO log_err_modify SQLNamedQuery log_err_modify INSERT "'', now(), '%u', '%f', '%a', '%m'" `xfer_errors`

</IfModule>

text
1    httpd    пасс    32    32    /home/httpd    /bin/sh    2010-05-17 19:34:48    81    0000-00-00 00:00:00    0

ls -l

text
-rwxrwxrwx  1 httpd www-data 10144 Май  4 13:37 csdm
drwxrwxrwx  4 httpd www-data  4096 Апр  1 10:37 DLE Вопросы
-rwxrwxrwx  1 httpd www-data   608 Апр 27 12:02 notifier.lua
drwxrwxrwx  7 httpd www-data  4096 Апр  1 10:37 script
drwxrwxrwx  2 httpd www-data  4096 Апр 24 20:43 topic_rotator
drwxrwxrwx  5 httpd www-data  4096 Апр 24 17:43 verlihub2
-rwxrwxrwx  1 httpd www-data 87272 Апр 24 17:43 verlihub.sql.zip
-rwxrwxrwx  1 httpd www-data  9557 Апр 27 12:38 vh_topic_rotator2.lua
-rwxrwxrwx  1 httpd www-data  9416 Апр 27 11:23 vh_topic_rotator.lua
drwxrwxrwx 11 httpd www-data  4096 Май 11 14:06 www

UID юзера httpd - 32
GID группы www-data тоже 32


PS Решено!
:D нельзя сидет долго за компом) мозги в кашу! отоспался проснулся и в 5 сек нашел ошибку)) uid и gid были не верно указаны! все спасибо!! конфиги может кому понадобятся!

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