ฉันใช้ vsftpd เป็น ftp server บน linux ของฉัน (rasbian) ฉันเข้าสู่ระบบในฐานะผู้ใช้รูท
ฉันอยากจะยังคงล็อคการใช้ / var / www เท่านั้นฉันจะกำหนดค่า vsftpd conf เพื่อให้สำเร็จได้อย่างไร
ฉันใช้ vsftpd เป็น ftp server บน linux ของฉัน (rasbian) ฉันเข้าสู่ระบบในฐานะผู้ใช้รูท
ฉันอยากจะยังคงล็อคการใช้ / var / www เท่านั้นฉันจะกำหนดค่า vsftpd conf เพื่อให้สำเร็จได้อย่างไร
คำตอบ:
ตรวจสอบให้แน่ใจว่ามีบรรทัดต่อไปนี้อยู่
chroot_local_user=YES
ตั้งค่า HOME Directory ของผู้ใช้เป็น/var/www/
หากคุณต้องการเปลี่ยนสำหรับผู้ใช้ที่มีอยู่แล้วคุณสามารถใช้:
usermod --home /var/www/ username
จากนั้นตั้งค่าสิทธิ์ที่จำเป็นใน /var/www/
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 () 'ed) ใน ไดเรกทอรี / ftphome / test ตัวเลือกนี้จะมีผลถ้า 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.
$USER
สำหรับlocal_root
เช่น/home/$USER/ftp
(ซึ่งจะ chroot ผู้ใช้ไปยังftp
ไดเรกทอรีย่อยของ dir บ้านของพวกเขา)
local_root
ลงในไดเรกทอรีบ้านที่แท้จริงของผู้ใช้
คุณสามารถทำได้:
usermod --home /var/www/ username
ฉันใช้คำแนะนำของ Rahul Patil ด้านบน:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
แต่ฉันไม่เข้าใจว่าทำไมฉันสามารถเข้าสู่ระบบด้วยผู้ใช้คนเดียวเท่านั้น จากนั้นฉันก็พบว่าเราไม่สามารถ chroot ไปยังไดเรกทอรีราก (สำหรับกรณีนี้/home/$USER/www-data
) ที่มีการเข้าถึงการเขียน ดังนั้นฉันจะลบการเข้าถึงการเขียนด้วย:
# chmod a-w /home/$USER/www-data
หมายเหตุ:เปลี่ยนแปลง$USER
กับผู้ใช้ของคุณ
ตรวจสอบchroot
ตัวเลือกในvsftpd.conf
และสร้างผู้ใช้แยกต่างหากสำหรับมันมี homedir /var/www
มีการตั้งค่า
chroot
ตัวเลือกในvsftpd.conf
และสร้างผู้ใช้แยกต่างหากสำหรับมันมี homedir/var/www
มีการตั้งค่า