Я пытался установить и настроить ProFTPd 1.3.8c на CentOS 7, но при попытке запустить службу произошел сбой.
Процесс установки и настройки:
Вот краткое описание моей установки и шаги настройки:
Установка зависимостей:
sudo yum install openssl-devel
cd /home/a/
wget ftp://ftp.proftpd.org/distrib/source/pr ... .8c.tar.gz
yum install gcc gcc-c++ autoconf automake
tar -xzf proftpd-1.3.8c.tar.gz
cd proftpd-1.3.8c
./configure --prefix=/usr/local/proftpd \
--sysconfdir=/etc/proftpd \
--enable-nls \
--enable-openssl \
--enable-shadow
make
make install
Настройка службы:
cp contrib/dist/rpm/proftpd.init.d /etc/init.d/proftpd
chmod +x /etc/init.d/proftpd
chkconfig --add proftpd
chkconfig proftpd on
Изменение сценария инициализации (/etc/init.d/proftpd)
Я внес следующие изменения:
# From:
[ ${NETWORKING} = "no" ] && exit 1
# To:
[[ ${NETWORKING} = "no" ]] && exit 1
А позже в сценарии я изменил:
# From:
[ -x /usr/sbin/proftpd ] || exit 5
# To:
[ -x /usr/local/proftpd/sbin/proftpd ] || exit 5
Конфигурация брандмауэра:
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
Создание пользователя и группы FTP:
groupadd ftpgroup
useradd -g ftpgroup -d /var/ftp -s /sbin/nologin ftpuser
Настройка ProFTPd:
В /etc/proftpd/proftpd.conf я внес следующие изменения:
User ftpuser
Group ftpgroup
PidFile /run/proftpd/proftpd.pid
TransferLog /var/log/proftpd/transfer.log
SystemLog /var/log/proftpd/syslog.log
Настройка пути:
nano ~/.bash_profile
# Add:
export PATH=$PATH:/usr/local/proftpd/sbin
source ~/.bash_profile
Создание необходимых каталогов:
sudo mkdir -p /var/log/proftpd/
sudo mkdir -p /run/proftpd/
sudo chown ftpuser:ftpgroup /run/proftpd/
sudo chmod 755 /run/proftpd/
Возникшие проблемы:
После выполнения этих действий я попытался запустить службу ProFTPd с помощью следующей команды:
service proftpd start
Но с этим сообщением не получилось:
vbnet
Copy code
Starting proftpd (via systemctl): Warning: proftpd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for proftpd.service failed because the control process exited with error code. See "systemctl status proftpd.service" and "journalctl -xe" for details.
[FAILED]
Для устранения неполадок я попробовал выполнить следующие команды:
systemctl status proftpd
Вывод показал:
● proftpd.service - LSB: ProFTPd FTP Server
Loaded: loaded (/etc/rc.d/init.d/proftpd; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2025-01-03 06:39:09 EST; 14s ago
I also checked the logs with journalctl -xe and found the error:
в журнале написано, что
error writing PidFile '/run/proftpd/proftpd.pid': No such file or directory
Попытки устранения неполадок:
Гарантированные разрешения для каталогов: я создал необходимые каталоги и изменил владельца и разрешения:
sudo mkdir -p /run/proftpd/
sudo chown ftpuser:ftpgroup /run/proftpd/
sudo chmod 755 /run/proftpd/
Измененный файл proftpd.service:
В /home/a/proftpd-1.3.8c/contrib/dist/rpm/proftpd.service я обновил строку ExecStart, чтобы обеспечить используется правильный двоичный файл:
ExecStart = /usr/local/proftpd/sbin/proftpd --nodaemon $PROFTPD_OPTIONS
ExecStartPre=/usr/local/proftpd/sbin/proftpd --configtest
Текущее состояние:
Служба по-прежнему не запускается даже после этих изменений. Сообщение об ошибке журнала указывает на то, что он по-прежнему не может создать файл PID в /run/proftpd/. И сам файл журнала перестает записывать действия.
Мои вопросы:
Может ли это проблема связана с разрешениями файловой системы или пользователем, под которым работает ProFTPd?
Какие шаги я могу предпринять, чтобы решить проблему создания PID-файла?
Есть ли какие-либо другие изменения конфигурации, которые мне могут не хватать? предотвращение ProFTPd от начинается?
Спасибо за помощь!Я использую терминал с именем пользователя «a», а не «ftpuser», и когда я снова открываю терминал, вновь добавленный путь в $PATH исчезает!
< strong>РЕДАКТИРОВАТЬ**####################################### ########**
у меня есть б/у
echo 'export PATH=$PATH:/usr/local/proftpd/sbin' >> ~/.bashrc
source ~/.bashrc
чтобы лучше сохранить $PATH, измените ftpgroup и ftpuser на пользователя sudo, и после повторного перезапуска в журналах будет указано, что это так.
2025-01-03 07:06:17,300 vbox proftpd[19715] vbox: ProFTPD 1.3.8c (maint) (built Fri Jan 3 2025 06:22:03 EST) standalone mode STARTUP
2025-01-03 07:27:11,746 vbox proftpd[21234] vbox: Failed binding to 0.0.0.0, port 21: Address already in use
2025-01-03 07:27:11,746 vbox proftpd[21234] vbox: Check the ServerType directive to ensure you are configured correctly
2025-01-03 07:27:11,746 vbox proftpd[21234] vbox: Check to see if inetd/xinetd, or another proftpd instance, is already using 0.0.0.0, port 21
2025-01-03 07:27:11,746 vbox proftpd[21234] vbox: Unable to start proftpd; check logs for more details
Подробнее здесь: https://stackoverflow.com/questions/793 ... rom-source
ProFTPD не запускается из-за ошибки файла PID после ручной установки из исходного кода. ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение