모든 사용자가 루트로 지정되었지만 여전히 중앙 FTP 디렉터리가 필요하기 때문에 각 사용자가 PublicFTP 디렉터리를 갖도록 VSFTPD를 구성하려고 합니다. 각 로컬 시스템 사용자에게 이 디렉터리를 생성하고 "개발자" 그룹 소유권을 사용하여 공유 디렉터리를 생성한 /var/www/public_ftp
후 775로 chmodd했습니다. 다음 단계는 /etc/fstab
서버와 vsftpd 서비스를 다시 시작하는 것이었습니다.
개발자 그룹의 사용자에게 로그인하여 PublicFTP 디렉터리에 파일을 생성하면 /var/www/public_ftp
다른 사용자의 PublicFTP 디렉터리에 있는 것처럼 파일이 생성되어 나타납니다. 이제 FTP를 통해 로그인하여 PublicFTP 폴더에 파일을 업로드하려고 하면 권한 거부 메시지가 표시됩니다.
drwxrwxr-x. 2 root Developers 4096 Mar 28 10:49 PublicFTP /home/<user>/PublicFTP
drwxrwxr-x. 2 root Developers 4096 Mar 28 10:49 public_ftp /var/www/public_ftp
groupmems -g 개발자 --list > 목록에 .
/etc/vsftpd/vsftpd.conf:anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ls_recurse_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_anble=YES
tcp_wrappers=YES
use_localtime=YES
chroot_local_user=YES
/etc/fstab:
/var/www/public_ftp /home/<user>/PublicFTP none bind 0 0
예시 시나리오
서버에 로그인하고 파일을 터치합니다.
$ cd /home/<user>/PublicFTP $ touch Hi.txt $ ls -la -rw-r--r--. 1 <user> users 0 Mar 28 11:05 Hi.txt
서버 측에서 확인하세요.
$ cd /var/www/public_ftp $ ls -la -rw-r--r--. 1 <user> users 0 Mar 28 11:05 Hi.txt
클라이언트 컴퓨터에서 일부 FTP 애플리케이션을 열고 FTP 서버에 연결한 후 로그인하세요.
비어 있는 PublicFTP 디렉토리로 이동합니다. 서버에서 명확하게 볼 수 있기 때문에 재미있습니다.
파일을 복사해 보세요. FTP 서버에 파일을 복사하는 동안 오류가 발생했습니다. 서버에 파일을 넣을 수 있는 권한이 있는지 확인하세요.
Details: 200 Switching to binary mode. 227 Entering Passive mode (10,232,118,108,90,133). 553 Could not create file.
로그 파일 내용:
Mon Mar 31 09:52:07 2014 [pid 17629] [<user>] OK LOGIN: Client "xxx.xxx.xxx.xxx" Mon Mar 31 09:52:07 2014 [pid 17634] [<user>] FAIL DELETE: Client "xxx.xxx.xxx.xxx", "/PublicFTP/proxy.txt"