Câu trả lời:
Hãy chắc chắn rằng dòng sau tồn tại
chroot_local_user=YES
Đặt thư mục HOME cho người dùng /var/www/
, nếu bạn muốn thay đổi cho người dùng hiện tại thì bạn có thể sử dụng:
usermod --home /var/www/ username
sau đó đặt quyền yêu cầu /var/www/
user_sub_token
Nếu bạn không muốn thay đổi thư mục Home của người dùng thì bạn có thể sử dụng:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:Tự động tạo thư mục chính cho mỗi người dùng ảo, dựa trên mẫu. Ví dụ: nếu thư mục chính của người dùng thực được chỉ định qua guest_username là / ftphome / $ USER và user_sub_token được đặt thành $ USER, thì khi đăng nhập thử nghiệm người dùng ảo, anh ta sẽ kết thúc (thường là chroot () 'ed) trong thư mục / ftphome / test. Tùy chọn này cũng có ảnh hưởng nếu local_root chứa user_sub_token.
Tạo thư mục và thiết lập quyền:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
Sau khi khởi động lại vsftpd
và kiểm tra thiết lập của bạn.
Mẫu đầu ra thành công:
[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.
$USER
for local_root
, chẳng hạn như /home/$USER/ftp
(sẽ chroot người dùng đến ftp
thư mục con của thư mục nhà của họ).
local_root
vào thư mục nhà thực tế của người dùng.
Bạn có thể làm được việc này:
usermod --home /var/www/ username
Tôi đã sử dụng gợi ý của Rahul Patil ở trên:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
Nhưng tôi không thể hiểu tại sao tôi chỉ có thể đăng nhập với một người dùng. Sau đó, tôi thấy rằng chúng ta không thể chroot vào một thư mục gốc (đối với trường hợp này /home/$USER/www-data
), có quyền truy cập ghi. Vì vậy, tôi loại bỏ quyền truy cập ghi bằng:
# chmod a-w /home/$USER/www-data
LƯU Ý: thay đổi $USER
với người dùng của bạn.
Kiểm tra các chroot
tùy chọn trong vsftpd.conf
và tạo một người dùng riêng cho người dùng có homedir được đặt thành /var/www
.
chroot
tùy chọn trongvsftpd.conf
và tạo một người dùng riêng cho người dùng có homedir được đặt thành/var/www
.