저는 Linux(rasbian)에서 FTP 서버로 vsftpd를 실행하고 있으며 루트로 시스템에 로그인했습니다.
여전히 /var/www만 잠그고 싶습니다. 이를 수행하려면 vsftpd conf를 어떻게 구성해야 합니까?
답변1
방법 1: 사용자 홈 디렉터리 변경
다음 줄이 있는지 확인하십시오.
chroot_local_user=YES
사용자 홈 디렉터리를 로 설정합니다 /var/www/
. 기존 사용자를 변경하려면 다음을 사용할 수 있습니다.
usermod --home /var/www/ username
그런 다음 필요한 권한을 설정하십시오./var/www/
방법 2: 사용user_sub_token
사용자의 홈 디렉토리를 변경하지 않으려면 다음을 사용할 수 있습니다.
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
에 대한 user_sub_token
:
템플릿을 기반으로 각 가상 사용자에 대한 홈 디렉터리를 자동으로 생성합니다. 예를 들어, guest_username으로 지정된 실제 사용자의 홈 디렉터리가 /ftphome/$USER이고 user_sub_token이 $USER로 설정된 경우 가상 사용자 테스트 로그인 시 그는 결국 / 디렉터리에서 chroot()됩니다. ftphome/테스트. 이 옵션은 local_root에 user_sub_token이 포함된 경우에도 적용됩니다.
디렉터리를 만들고 권한을 설정합니다.
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
다시 시작 vsftpd
하고 설정을 테스트하세요.
성공적인 출력의 예:
[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts?
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r-- 1 787 787 24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.
답변2
다음을 수행할 수 있습니다.
usermod --home /var/www/ username
답변3
나는 Rahul Patil의 제안을 사용했습니다.
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
그런데 왜 한 명의 사용자로만 로그인할 수 있는지 이해가 되지 않습니다. 그런 다음 쓰기 권한이 있는 루트 디렉터리로 루트를 이동할 수 없다는 사실을 발견했습니다 /home/$USER/www-data
(이 경우). 그래서 다음 명령을 사용하여 쓰기 액세스를 제거했습니다.
# chmod a-w /home/$USER/www-data
노트:$USER
사용자와 함께 변화하세요.
답변4
chroot
옵션을 확인 vsftpd.conf
하고 homedir이 로 설정된 별도의 사용자를 만듭니다 /var/www
.