이 매뉴얼을 사용해보십시오. 아마도 당신을 위해 일할 것입니다.
그것을하는 방법
vsftpd 및 PAM 라이브러리 설치
편집 /etc/vsftpd.conf
및/etc/pam.d/vsftpd
사용자 정의 디렉토리를 사용하여 사용자 계정 작성 (예 : / var / www /)
올바른 디렉토리를 설정 chmod
하고chown
서버에 대한 전체 액세스 권한이있는 관리자를 만듭니다.
- 설치
vsftpd
(Very Secure FTP Deamon) 및 libpam-pwdfile
가상 사용자 생성
FTP 사용자를 만들고 싶었지만 로컬 유닉스 사용자 (쉘 액세스, 홈 디렉토리 등)를 추가하고 싶지 않았습니다. PAM (Pluggable Authentication Modules)은 가상 사용자를 만드는 데 도움이됩니다.
sudo apt-get install vsftpd libpam-pwdfile
- 편집하다
vsftpd.conf
먼저 원본 파일을 백업해야합니다
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
그런 다음 새로운 것을 만드십시오
sudo vim /etc/vsftpd.conf
다음 줄을 복사하여 붙여 넣습니다. 파일에는 다음 줄만 포함되어야합니다.
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- 가상 사용자 등록
사용하는 사용자를 등록하려면 서버에서 작업하고 htpasswd
있다고 가정 apache2
합니다. 크리에이트 vsftpd
다음 폴더를 거기에 구성 파일을 넣어.
sudo mkdir /etc/vsftpd
그때
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c는 파일이 아직 존재하지 않으면 파일을 생성한다는 것을 의미합니다 -d는 MD5를 강제합니다. 우분투 12.04에서 필요합니다. 항상 사용하십시오.
이 명령은 암호를 묻는 메시지를 표시합니다.
나중에 새 사용자를 추가하려면 다음을 수행하십시오.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- 에서 PAM 구성
/etc/pam.d/vsftpd
다시, orignal 파일을 백업해야합니다
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
새로운 것을 만들어
sudo vim /etc/pam.d/vsftpd
이 두 줄을 복사하여 붙여 넣습니다 (이것이 유일한 내용이어야 함). 나는이 두 줄만 주장하고 원본을 유지하는 데 많은 시간을 낭비하고 방금 추가했습니다.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- 쉘 액세스 권한이없는 로컬 사용자 작성
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
id 명령 id vsftpd를 사용하여 생성되었는지 확인할 수 있습니다. check_shell 매개 변수로 인해 사용자를 / bin / false 쉘로 정의합니다 (사용하지 않더라도). 최종 사용자가 FTP 서버에 연결하면 권한 및 소유권에 사용됩니다.
chmod
그리고 chown
.
- 재시작
vsftpd
일반적인 방법은 모든 데몬처럼 init.d를 사용하는 것입니다
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- 디렉토리 만들기
구성에 따라 모든 사용자가 / var / www / user1 폴더에 배치됩니다.
특정 권한으로 작성해야합니다. 루트 폴더는 쓸 수 없습니다!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
참고 : 사용자는 루트 디렉토리에 파일 또는 폴더를 작성할 수 없습니다.
에서 vsftpd.conf
우리는이 chroot_local_user=YES
사용자가 자신의 폴더의 아무것도 외부를 볼 수 있습니다. 그에게 서버는 다음과 같습니다.
따라서 다음 명령을 실행하십시오.
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
/var/www/user1
폴더가 존재하는 또는 연결이 실패합니다.
지금 당신은 당신의 FTP와 연결을 시도 할 수 있습니다
- 전체 서버에 액세스 할 관리자를 만듭니다.
관리자를 만들려면에 새 사용자를 등록해야합니다 htpasswd
.
그렇게하기 전에 /etc/ftpusers
ftp로 연결할 수없는 특정 사용자를 정의 하는 파일 을 확인 하는 것이 좋습니다. 가상 사용자가 아닌 로컬 사용자만이 파일에 포함 된 이름을 선택하지 않는 경우를 생각합니다.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
이제 새로운 줄을 추가해야합니다 /etc/vsftpd.conf
chroot_list_enable=YES
이는 사용자가 / etc /의 사용자를 제외한 자신의 폴더에 감옥에 배치됨을 의미합니다.
vsftpd.chroot_list
이 파일을 만들고 사용자를 추가하겠습니다. 파일은“theadmin”을 포함하는 간단한 줄입니다. 한 줄에 한 명의 사용자를 추가하십시오. 즉, /var/www/theadmin
폴더 를 만들 필요가 없습니다 . 사용자가 로그인하여 시작 /home/vsftpd
합니다.
서버를 다시 시작하면 완료됩니다!