LinuxForum.Fans
Тема

Помогите сделать автозапуск программы ProFtpd

Автор: RASAMAXA 19 сообщений 8661 просмотров
#154321

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

Но мне очень нужно сделать автозапуск 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

#154449

Вкратце, так:
1. Устанавливаем chkconfig [console]sudo apt-get install chkconfig[/console]
2. Проверяем, есть ли proftpd в списках сервисов [console]sudo chkconfig -A|grep proftpd
proftpd off
[/console]Если его там нет, добавляем его [console]chkconfig -a proftpd[/console]
3. Включаем автозапуск proftpd при старте системы [console]chkconfig proftpd on[/console]

#154495

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

#154506

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

#154508

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

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

ну там ещё надо
[console]/etc/init.d/proftpd restart [/console]
сказать...

#154542

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

#155555

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

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

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

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

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

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

#155557

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

#156099

Вот конфиг

Показать
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>

#156291

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

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

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

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

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

#262470

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

#262511
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 закомментировать (или удалить) строки:

text
TLSRSACertificateKeyFile /etc/gadmin-proftpd/certs/key.pem
TLSRSACertificateFile /etc/gadmin-proftpd/certs/cert.pem
TLSCACertificateFile /etc/gadmin-proftpd/certs/cacert.pem
#262543

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

#262577

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

#262663

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

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