1 (23.04.2011 10:57:53 отредактировано RASAMAXA)

Я новичок пока в линукс.

Но мне очень нужно сделать автозапуск FTP сервера

Как это сделать?  Искал искал и не нашел.

Нашел файл в /etc/init.d/proftpd

а в нем такое)

+ открыть спойлер

#!/bin/sh

### BEGIN INIT INFO
# Provides:          proftpd
# Required-Start:    $remote_fs $syslog $local_fs $network
# Required-Stop:     $remote_fs $syslog $local_fs $network
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts ProFTPD daemon
# Description:       This script runs the FTP service offered
#                    by the ProFTPD daemon
### END INIT INFO

# Start the proftpd FTP daemon.

PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/proftpd
NAME=proftpd

# Defaults
RUN="no"
OPTIONS=""

PIDFILE=`grep -i 'pidfile' /etc/proftpd/proftpd.conf | sed -e 's/pidfile[\t ]\+//i'`
if [ "x$PIDFILE" = "x" ];
then
    PIDFILE=/var/run/proftpd.pid
fi

# Read config (will override defaults)
[ -r /etc/default/proftpd ] && . /etc/default/proftpd

trap "" 1
trap "" 15

test -f $DAEMON || exit 0

. /lib/lsb/init-functions

#
# Servertype could be inetd|standalone|none.
# In all cases check against inetd and xinetd support.
#
if ! egrep -qi "^[[:space:]]*ServerType.*standalone" /etc/proftpd/proftpd.conf
then
    if egrep -qi "server[[:space:]]*=[[:space:]]*/usr/sbin/proftpd" /etc/xinetd.conf 2>/dev/null || \
       egrep -qi "server[[:space:]]*=[[:space:]]*/usr/sbin/proftpd" /etc/xinetd.d/* 2>/dev/null || \
       egrep -qi "^ftp.*/usr/sbin/proftpd" /etc/inetd.conf 2>/dev/null
    then
            RUN="no"
            INETD="yes"
    else
        if ! egrep -qi "^[[:space:]]*ServerType.*inetd" /etc/proftpd/proftpd.conf
        then
            RUN="yes"
            INETD="no"
        else
            RUN="no"
            INETD="no"
        fi
    fi
fi

# /var/run could be on a tmpfs

[ ! -d /var/run/proftpd ] && mkdir /var/run/proftpd

inetd_check()
{
    if [ ! -x /usr/sbin/inetd -a ! -x /usr/sbin/xinetd ]; then
        echo "Neither inetd nor xinetd appears installed: check your configuration."
    fi
}

start()
{
    log_daemon_msg "Starting ftp server" "$NAME"

    start-stop-daemon --start --quiet --pidfile "$PIDFILE" --oknodo --exec $DAEMON -- $OPTIONS 
    if [ $? != 0 ]; then
        log_end_msg 1
        exit 1
    else
        log_end_msg 0
    fi
}

signal()
{

    if [ "$1" = "stop" ]; then
        SIGNAL="TERM"
        log_daemon_msg "Stopping ftp server" "$NAME"
    else
    if [ "$1" = "reload" ]; then
        SIGNAL="HUP"
        log_daemon_msg "Reloading ftp server" "$NAME"
    else
        echo "ERR: wrong parameter given to signal()"
        exit 1
    fi
    fi
    if [ -f "$PIDFILE" ]; then
        start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"
        if [ $? = 0 ]; then
            log_end_msg 0
        else
        SIGNAL="KILL"
        start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"
            if [ $? != 0 ]; then
                log_end_msg 1
                [ $2 != 0 ] || exit 0
            else
                log_end_msg 0
            fi
        fi
       if [ "$SIGNAL" = "KILL" ]; then
        rm -f "$PIDFILE"
        fi
    else
        log_end_msg 0
    fi
}

case "$1" in
    start)
    if [ "x$RUN" = "xyes" ] ; then
        start
    else
        if [ "x$INETD" = "xyes" ] ; then
        echo "ProFTPd is started from inetd/xinetd."
        inetd_check
        else
            echo "ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration."
        fi
    fi
    ;;

    force-start)
    if [ "x$INETD" = "xyes" ] ; then
        echo "Warning: ProFTPd is started from inetd/xinetd (trying to start anyway)."
        inetd_check
    fi
    start
    ;;   
   
    stop)
    if [ "x$RUN" = "xyes" ] ; then
        signal stop 0
    else
        if [ "x$INETD" = "xyes" ] ; then
        echo "ProFTPd is started from inetd/xinetd."
        inetd_check
        else
            echo "ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration."
        fi
    fi
    ;;

    force-stop)
    if [ "x$INETD" = "xyes" ] ; then
        echo "Warning: ProFTPd is started from inetd/xinetd (trying to kill anyway)."
        inetd_check
    fi
    signal stop 0
    ;;

    reload)
    signal reload 0
    ;;

    force-reload|restart)
    if [ "x$RUN" = "xyes" ] ; then
        signal stop 1
        sleep 2
        start
    else
        if [ "x$INETD" = "xyes" ] ; then
        echo "ProFTPd is started from inetd/xinetd."
        inetd_check
        else
            echo "ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration."
        fi
    fi
    ;;

    status)
    if [ "x$INETD" = "xyes" ] ; then
        echo "ProFTPd is started from inetd/xinetd."
        inetd_check
        exit 0
    else
        if [ -f "$PIDFILE" ]; then
            pid=$(cat $PIDFILE)
        else
            pid="x"
        fi
        if [ `pidof proftpd|grep "$pid"|wc -l` -ne 0 ] ; then
            echo "ProFTPd is started in standalone mode, currently running."
            exit 0
        else
            echo "ProFTPd is started in standalone mode, currently not running."
            exit 3
        fi
    fi
    ;;

    check-config)
        $DAEMON -t >/dev/null && echo "ProFTPd configuration OK" && exit 0
        exit 1
        ;;

    *)
    echo "Usage: /etc/init.d/$NAME {start|status|force-start|stop|force-stop|reload|restart|force-reload|check-config}"
    exit 1
    ;;
esac

exit 0

Это здесь надо дописывать или нет?

А то нашел та такое но нифига не понял.
прописываем proftpd в сервисы:
1)в папке с сырцами proftpd /contrib/dist/rpm есть скрипт proftpd.init.d
2)копируем в /etc/init.d
3)переименовываем в proftpd
4)chmod a+x /etc/init.d/proftpd
   chkconfig --add proftpd
   chkconfig proftpd on

2

Вкратце, так:
1. Устанавливаем chkconfig

 Консоль:
sudo apt-get install chkconfig

2. Проверяем, есть ли proftpd в списках сервисов
 Консоль:
sudo chkconfig -A|grep proftpd
proftpd               off
Если его там нет, добавляем его
 Консоль:
chkconfig -a proftpd

3. Включаем автозапуск proftpd при старте системы
 Консоль:
chkconfig proftpd on

"Если вы уже пытались поработать с Linux, но нашли ее слишком запутанной и непонятной — расслабьтесь. Если вы умеете вскипятить чайник или завести будильник, то вы уже можете стать пользователем Linux (кроме шуток!)." ©

3

Ставим
apt-get install proftpd
Демон сам прекрасно прописываеться куда надо зачем делать велосипед
Настраиваем конфиг и всё.

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

4

Kettler, apt-get install proftpd - я так и установил. Только включать надо командой sudo /etc/init.d/proftpd start

5

Remedy,  Большое человеческое спасибо!!! Все заработало!!! smile

6

Курим
http://www.opennet.ru/cgi-bin/opennet/m … category=8
http://translated.by/you/man-update-rc- … s/into-ru/

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

7

Kettler пишет:

Демон сам прекрасно прописываеться куда надо зачем делать велосипед
Настраиваем конфиг и всё.

ну там ещё надо

 Консоль:
/etc/init.d/proftpd restart

сказать...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

8

Ну это уже мелочь DR

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

9

Еще такой вопрос)

Можно ли как то сделать так что бы при создании папки другие могли в нее что нибудь записывать.

Я например делаю доступ к кореневой папки для 10 пользователей

Но когда кто то создает папку другие могут ее только просматривать но не добавлять.

Можно ли как то сделать чтобы каждый мог добавлять файлы-папки, переименовывать и все остальное не зависимо под каким логином.

Почему я не могу дать логин и пароль один для всех, потому что к некоторым логинам подключены папки к которым имеют доступ только они и я.

10

А может конфиг покажите

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

11

Вот конфиг

+ открыть спойлер

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 "192.168.1.125"
ServerIdent on "FTP ArtSirius"
ServerAdmin artsirius.lviv@gmail.com
IdentLookups off
UseReverseDNS off
Port 21
PassivePorts 49152 65534
MasqueradeAddress 109.251.75.175
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 40960
TransferRate STOR 40960
TransferRate STOU 40960
TransferRate APPE 40960
SystemLog /var/log/secure
RequireValidShell off
<Limit LOGIN>
  AllowUser levchuk
  AllowUser white
  DenyALL
</Limit>

<Anonymous /media/FTP/FTP/levchuk>
User levchuk
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  RNFR RNTO  DELE  MKD XMKD SITE_MKDIR  RMD XRMD SITE_RMDIR  SIZE  STAT  CWD XCWD  CDUP XCUP >
AllowAll
</Limit>
<Limit SITE  SITE_CHMOD  SITE_CHGRP  MTDM  PWD XPWD >
DenyAll
</Limit>
</Anonymous>

<Anonymous /media/FTP/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 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>
</Anonymous>

12

Смотри в сторону umask
http://amsand.narod.ru/proftpd-ug/c466.html

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

13

Я так понимаю, если я пропишу umask 0000, то тогда все кто имеет доступ к ФТП будут имет одинаковые права на одну и туже папку.

А стакой у маск будет работать фтп на файловой системе NTFS?

14

RASAMAXA пишет:

1)Я так понимаю, если я пропишу umask 0000, то тогда все кто имеет доступ к ФТП будут имет одинаковые права на одну и туже папку.

2)А стакой у маск будет работать фтп на файловой системе NTFS?

1) ВСЕ вообще. с хттп тоже. вообще все подряд, в том числе всё там стирать и запускать всякую гадость.
2) man mount, man ntfs-3g если не верите/непонятно.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

15

установил proftpd + gadmin
вот только при запуску gadmin выбивает
- Fatal: TLSRSACertificateFile: '/etc/gadmin-proftpd/certs/cert.pem' does not exist on line 64 of '/etc/proftpd/proftpd.conf'

16

RASAMAXA пишет:

установил proftpd + gadmin
вот только при запуску gadmin выбивает
- Fatal: TLSRSACertificateFile: '/etc/gadmin-proftpd/certs/cert.pem' does not exist on line 64 of '/etc/proftpd/proftpd.conf'

Самое простое (и не самое правильное) решение - в файле /etc/proftpd/proftpd.conf закомментировать (или удалить) строки:

TLSRSACertificateKeyFile /etc/gadmin-proftpd/certs/key.pem
TLSRSACertificateFile /etc/gadmin-proftpd/certs/cert.pem
TLSCACertificateFile /etc/gadmin-proftpd/certs/cacert.pem
"Если вы уже пытались поработать с Linux, но нашли ее слишком запутанной и непонятной — расслабьтесь. Если вы умеете вскипятить чайник или завести будильник, то вы уже можете стать пользователем Linux (кроме шуток!)." ©

17

немного подкоректировал конфиг и все пошло, это из за оболочки такие проблемы. Теперь осталось разобраться почему не проходит нормально фтп с инета. По локалке все работает, а с инета останавливается на чтении каталога MLST. Такое впечетление что фаервол блочит но вроде все выключил((

18

Поседел и нашел такую штуку что кроме стандартных портов другие не работаю((( Это что получается, чтоб открыть порт нужно звонить провайдерам?

19

Проблема осталась(( Провайдер говорит что у них эти порты не блокируются(( Так почему на 21 все работает супер, а на 2021 не хочет