CentOS 5.3 x64에서 vsftpd 서버를 설정하려고합니다. 로컬 사용자 로그인이 작동하지 않습니다. 내 vsftpd.conf는 다음과 같습니다.
local_enable=YES
write_enable=YES
pam_service_name=vsftpd
connect_from_port_20=YES
listen=YES
pam_service_name=vsftpd
xferlog_std_format=NO
log_ftp_protocol=YES
chroot_local_user=YES
다음은 vsftp.log의 출력입니다.
Mon Sep 13 23:34:44 2010 [pid 19243] CONNECT: Client "10.0.1.138"
Mon Sep 13 23:34:44 2010 [pid 19243] FTP response: Client "10.0.1.138", "220 (vsFTPd 2.0.5)"
Mon Sep 13 23:34:44 2010 [pid 19243] FTP command: Client "10.0.1.138", "USER dwelch"
Mon Sep 13 23:34:44 2010 [pid 19243] [dwelch] FTP response: Client "10.0.1.138", "331 Please specify the password."
Mon Sep 13 23:34:44 2010 [pid 19243] [dwelch] FTP command: Client "10.0.1.138", "PASS <password>"
Mon Sep 13 23:34:44 2010 [pid 19242] [dwelch] FAIL LOGIN: Client "10.0.1.138"
Mon Sep 13 23:34:45 2010 [pid 19243] [dwelch] FTP response: Client "10.0.1.138", "530 Login incorrect."
그리고 보안 로그의 출력 :
Sep 13 17:40:50 intra vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=dwelch rhost=10.0.1.138 user=dwelch
pam이 사용자를 인증하지 않는 것 같습니다. 내 /etc/pam.d/vsftp 파일은 다음과 같습니다.
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include system-auth
account include system-auth
session include system-auth
session required pam_loginuid.so
아무도 내가 잃어버린 것을 볼 수 있습니까? 감사.
답변
vi /etc/pam.d/vsftp
댓글 #auth 필수 pam_shells.so
그리고
서비스 vsftpd 재시작
pam_shells.so는 쉘 액세스 권한이있는 사용자 만 허용해야하므로 주석 처리해야합니다.
답변
내 경우에는 다음과 같은 문제를 해결했습니다.
vi /etc/pam.d/vsftpd
주석 행 #auth include system-auth
그때
서비스 vsftpd 재시작
답변
이것은 정답이 아니라 내가 잘 맞는 전략이라고 생각합니다.
/etc/pam.d/vsftp
파일 에서 줄을 주석 처리하고 로그인 할 수 있는지 (그리고 언제) 확인하십시오. PAM은 의도적으로 성공 또는 실패만을보고하도록 설계되었습니다.
답변
시스템에 하나의 ftp 서버 만 있습니까? 나는 비슷한 문제를 겪고 나서 문제를 자세히 살펴보고 충돌하는 두 개의 ftp 서버가 설치되어 있음을 보라. 하나를 제거하고 문제가 해결되었습니다.
‘yum install vsftpd’를 수행 한 경우 pam 파일을 엉망으로 만들 필요가 없습니다 (PAM을 엉망으로 시작할 때 일반적으로 문제가 발생 함).
그렇지 않은 경우 chkconfig –list | grep ftp를보고 무엇이 나오는지 확인하십시오 (vsftpd가 나타나는지 확인하십시오-설치에 문제가없는 경우).
그리고 마지막 제안은 yum 업데이트를 실행하는 것입니다.
답변
사용자에게 유효한 쉘이 있습니까? / etc / shells 목록에 있어야한다고 생각합니다. 사용자는 확실히 없는 파일은 / etc / vsftpd를 / ftpusers에가?
CentOS에서 저를 /etc/vsftpd.conf 편집하고있는 /etc/vsftpd/vsftpd.conf를 확실히 편집하십시오.
vsftpd는 약간 까다로울 수 있으며 오류를보고하는 데 좋지 않습니다. 그것에 붙어 나는 매우 간단한 문제로 머리카락을 찢어 버리고 항상 간단한 해결책입니다.
답변
vi 사용자를위한 / etc / passwd / bin / bash