vsftpd를 시작하지 못했습니다: "systemd[1]: vsftpd.service: 기본 프로세스가 코드=종료됨, 상태=2/INVALIDARGUMENT로 종료되었습니다."

vsftpd를 시작하지 못했습니다: "systemd[1]: vsftpd.service: 기본 프로세스가 코드=종료됨, 상태=2/INVALIDARGUMENT로 종료되었습니다."

Arch Linux가 설치된 Rapsberry Pi B+가 있습니다. uname보고서 버전:

[computer@computer001 ~]$ uname -a
Linux computer001 3.18.3-3-ARCH #1 PREEMPT Mon Jan 26 20:10:28 MST 2015 armv6l GNU/Linux

FTP 서버를 설치했는데 pacman -S vsftpd오류 없이 설치가 완료되었습니다. 그런 다음 구성을 시도했는데 결과는 다음과 같습니다 vsftpd.conf.

anonymous_enable=NO
local_enable=YES
write_enable=YES
#local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=computer
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
ftpd_banner=Welcome to personal ftp service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES

이제 재부팅하려고 하면 다음과 같은 결과 vsftpd가 나타납니다.

[computer@computer001 etc]$ sudo systemctl restart vsftpd.service && systemctl status -l vsftpd.service
* vsftpd.service - vsftpd daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Thu 1970-01-01 06:32:24 UTC; 112ms ago
  Process: 350 ExecStart=/usr/bin/vsftpd (code=exited, status=2)
 Main PID: 350 (code=exited, status=2)

이것은 또한 다음의 출력입니다 sudo journalctl | grep -i vsftp.

Jan 01 06:32:24 computer001001 sudo[347]: computer001 : TTY=pts/0 ; PWD=/etc ; USER=root ; COMMAND=/usr/bin/systemctl restart vsftpd.service
Jan 01 06:32:24 computer001001 systemd[1]: Starting vsftpd daemon...
Jan 01 06:32:24 computer001001 systemd[1]: Started vsftpd daemon.
Jan 01 06:32:24 computer001001 systemd[1]: vsftpd.service: main process exited, code=exited, status=2/INVALIDARGUMENT
Jan 01 06:32:24 computer001001 systemd[1]: Unit vsftpd.service entered failed state.
Jan 01 06:32:24 computer001001 systemd[1]: vsftpd.service failed.

단위 스크립트는 다음과 같습니다 /usr/lib/systemd/system/vsftpd.service.

[Unit]
Description=vsftpd daemon
After=network.target

[Service]
ExecStart=/usr/bin/vsftpd
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process

[Install]
WantedBy=multi-user.target

실행하면 sudo /usr/bin/vsftpd다음 오류가 발생합니다.

500 OOPS: config file not owned by correct user, or not a file

/etc/vsftpd.confvia에 대한 파일 권한을 수정했으며 sudo chown root:root /etc/vsftpd.conf이제 서버를 수동으로 시작할 수 있습니다. 날짜/시간이 잘못된 것도 알고 있는데 아직 설정하지 않았습니다. 내가 무엇을 놓치고 있나요?

답변1

vsftpd에서 이 문제를 우연히 발견한 사람이 있으면 다음 명령을 통해 어떤 오류가 발생하는지 확인하세요.

/usr/sbin/vsftpd /etc/vsftpd.conf

다음의 경우:

500 OOPS: SSL: cannot load RSA private key

그런 다음 SSL 인증서를 다시 생성합니다(또는 공급자로부터 재발급).

sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

나는 일한다 /etc/vsftpd.conf:

anonymous_enable=NO
connect_from_port_20=YES
dirmessage_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
listen_ipv6=YES
listen=NO
local_enable=YES
local_umask=022
pam_service_name=vsftpd
pasv_enable=Yes
pasv_max_port=10200
pasv_min_port=10100
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
secure_chroot_dir=/var/run/vsftpd/empty
ssl_ciphers=HIGH
ssl_enable=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
use_localtime=YES
write_enable=YES
xferlog_enable=YES

점으로 시작하는 파일 이름을 보려면 다음을 추가하세요.

force_dot_files=YES

답변2

/etc/vsftpd.confroot:rootvia 권한을 재설정했으며 sudo chown root:root /etc/vsftpd.conf이제 vsftpd서버가 via를 통해 시작되어 sudo systemctl restart vsftpd.service수동으로 실행됩니다 sudo /usr/bin/vsftpd.

답변3

1단계: vsftpd.conf 확인

listen=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

2단계: 실행 중인 FTP 서비스 확인

$ lsof -i | grep ftp 

3단계: xinetd 중지

$ sudo service xinetd stop

4단계: xinetd를 중지한 후 다음을 입력하여 vsftpd 서비스를 다시 시작합니다.

$ /etc/init.d/vsftpd restart

답변4

동일한 상태 오류가 발생합니다.2/INVALIDARGUMENT

나에게 문제는 내 구성의 수동 주소 확인과 관련이 있었습니다.

pasv_addr_resolve=YES
pasv_address=xxx.yyy.org

주소를 확인하려면 부팅 시 인터넷 연결이 실행되어야 합니다. 이 일을 하려면 내가 해야 할 일이 있어요

sudo systemctl edit vsftpd

그리고 다음 줄을 추가하세요:

[Unit]
Wants=network-online.target
After=network-online.target

관련 정보