gclegal
나는 chroot Jail을 사용하여 사용자를 특정 디렉토리로 제한하려고 합니다. /etc/vsftpd.conf
파일에서 해당 줄의 주석 처리를 해제했습니다.
chroot_local_user=YES
다음 이름의 새 사용자를 만들었습니다 kg
.
$ sudo groupadd xenomai
$ sudo useradd -d /var/www/html/gclegal -g xenomai kg
$ sudo passwd kg
이 구성을 사용하면 사용자를 사용하여 vsftpd를 통해 로그인할 수 있지만 kg
상위 디렉터리로 다시 찾아보고 /var/www/html
.
/var/www/html/gclegal
user() 집 외부의 모든 작업을 비활성화하는 방법은 무엇입니까 ?
답변1
버전 2.2.2 부터 사용자를 감옥에 가두는 vsftpd
두 가지 옵션이 있습니다 .chroot
chroot_list_enable
넣고 싶은 chroot
목록 에 사용자를 추가하기만 하면 됩니다 ./etc/vsftpd/chroot_list
chroot jail
chroot_local_user
chroot
이렇게 하면 모든 로컬 사용자가 감옥에 갇히게 됩니다 .하지만, 이 옵션이 설정되면 chroot_list
사용자 목록이 됩니다.원하지 않는다.chroot jail
kg
따라서 구성한 경우 목록에 사용자가 포함되어 있지 않은지 확인하십시오 chroot_local_user=YES
.
분명히 vsftpd
구성을 변경한 후 데몬을 다시 시작하십시오.
man vsftpd.conf에서 발췌
chroot_list_enable
If activated, you may provide a list of local users who are placed in a chroot() jail in their home directory upon login. The meaning is slightly different if
chroot_local_user is set to YES. In this case, the list becomes a list of users which are NOT to be placed in a chroot() jail. By default, the file containing this list
is /etc/vsftpd/chroot_list, but you may override this with the chroot_list_file setting.
Default: NO
chroot_local_user
If set to YES, local users will be (by default) placed in a chroot() jail in their home directory after login. Warning: This option has security implications, especially
if the users have upload permission, or shell access. Only enable if you know what you are doing. Note that these security implications are not vsftpd specific. They
apply to all FTP daemons which offer to put local users in chroot() jails.
Default: NO
사용자에 대해 vsftpd를 구성했습니다 chroot
. 다음은 /etc/vsftpd.conf
제가 사용하는 설정입니다( Ubuntu 14.04
).
listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_writeable_chroot=YES
노트:
확인 /etc/vsftpd.chroot_list
하거나 /etc/vsftpd/chroot_list
비우십시오.
작동이 완료되면 로그인을 추적하려는 경우 ftp
이를 설정 session_support=YES
하면 다음을 last
사용하여 표시됩니다.
username vsftpd:12025 IP address Tue Oct 14 14:05 - 14:10 (00:05)
username vsftpd:12011 IP address Tue Oct 14 14:04 - 14:05 (00:00)
참고 - utmp 및 wtmp 지원은 PAM 지원 버전에서만 사용할 수 있습니다.
답변2
selinux를 설정하고 permissive
다시 시작했더니 vsftpd.service
문제가 해결되었습니다.