(圖片來自bing壁紙)
vsftpd服務安裝及使用
1.安裝
yum -y install vsftpd
2.啟動
systemctl start vsftpd
3.登陸
1) 匿名用戶登陸
主配置文件路徑: /etc/vsftpd/vsftpd.conf
a.首先要在配置文件將 anonymous_enable=YES 打開
首先另外開啟一臺Linxu服務器作為客戶端哩至,或者在Windows安裝ftp軟件,這里我們用前者,下載安裝ftp客戶端軟件: yum -y install ftp
b.在客戶端輸入: ftp ftp 服務器的 ip
賬號:ftp或者anonymous 密碼:空(直接回車)
默認家目錄是: /var/ftp 桑包,下面有一個pub文件夾奄侠,不建議在此目錄下操作,最好新建一個厘贼。默認是可以下載文件的撩满,但不能上傳。
修改主配置文件税弃,將anon_upload_enable=YES注釋去掉纪岁。將我們新建的目錄為其他人添加w權限。重啟服務即可生效则果。
但此時上傳過的文件是無法下載的幔翰,因為其文件的權限為:當我們下載時候顯示:
提示我們沒有權限去打開文件,因此我們對于其他用戶而言沒有r權限西壮,因此修改主配置文件:
我們還可以修改配置文件是的匿名用戶可以創(chuàng)建目錄遗增,刪除,覆蓋等操作茸时。
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
2) 本地用戶登陸
a.首先要添加一個用戶用作登陸贡定,為了安全,建議添加一個系統(tǒng)用戶可都。
useradd -s /sbin/nologin ftpuser
passwd ftpuser
b.修改主配置文件缓待,,如果不取消注釋渠牲,用戶登陸到服務器后旋炒,可隨意切換目錄,后果不可控签杈。
此時用新創(chuàng)建的ftpuser用戶登陸瘫镇,輸如正確密碼后不能登陸,將 /etc/pam.d/vsftpd 中 auth required pam_shells.so 注釋掉(原因目前還不知....),但是注釋掉之后登陸還是會有錯誤答姥,顯示:500 OOPS: vsftpd: refusing to run with writable root inside chroot() 铣除,是因為 從2.3.5之后,vsftpd增強了安全檢查鹦付,如果用戶被限定在了其主目錄下尚粘,則該用戶的主目錄不能再具有寫權限了!如果檢查發(fā)現(xiàn)還有寫權限敲长,就會報該錯誤郎嫁。 解決方法:
1.將 /home/ftpuser 用戶家目錄的寫權限去除 chmod -w /home/ftpuser,但這樣就不能上傳文件了祈噪,因此推薦第二種方法泽铛。
2.在主配置文件中添加 allow_writeable_chroot=YES .
3.登陸ftp服務器。
若是想要禁止某些本地用戶登陸到ftp服務器:
userlist_enable=YES
userlist_deny=YES
只允許名單中的用戶登陸辑鲤,將上述配置第二條改為NO即可盔腔。
在 /etc/vsftpd/ftpusers 中的用戶,也是無法登陸到服務器的,該文件優(yōu)先級比配置文件中的要高铲觉,無需重啟澈蝙,立即生效。
對于有些用戶撵幽,我們允許其在登陸到ftp服務器后允許其能夠隨意切換目錄:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
由于是本地用戶灯荧,因此在登陸到服務器后,可以上傳下載盐杂,以及創(chuàng)建目錄....都不需要在配置文件中配置了逗载。
3)虛擬用戶登陸
上述登陸方式,不能實現(xiàn)個性化配置链烈,比如有幾個用戶厉斟,想要讓每個用戶的權限都不同,因此需要用到虛擬用戶强衡。
在虛擬用戶登陸之前擦秽,要先將之前的匿名用戶的配置要注釋掉,因為虛擬用戶默認使用的是匿名用戶的配置漩勤,如果不注釋感挥,那么使用的是全局配置,每個用戶自己的配置便不生效.
a.建立虛擬用戶文件(vuser.txt)越败,奇數(shù)行為用戶触幼,偶數(shù)行為密碼
zhangsan
123456
...........
b.將上述 vuser.txt 轉換成數(shù)據(jù)庫文件: db_load -T -t hash -f vuser.txt vuser.db,并將文件權限改為600(必須)
c.由于是虛擬用戶,我們要建立一個真正的Linux的用戶來提供登陸的目錄給虛擬用戶究飞,該用戶僅僅提供登陸目錄置谦,因此不需要設置密碼:useradd -d /var/ftproot -s /sbin/nologin virtual , 同樣設置為系統(tǒng)用戶亿傅。
d.在配置文件中添加支持虛擬用戶的條目:
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/dir
e.由于 ftp 服務器支持只支持本地和匿名用戶的pam認證方式媒峡,不支持虛擬用戶,因此需要手動添加 pam 認證:vim /etc/pam.d/vsftpd
auth sufficient pam_userdb.so db=/etc/vsftpd/vuser
account sufficient pam_userdb.so db=/etc/vsftpd/vuser (之前編寫的數(shù)據(jù)庫文件葵擎,不需要加db后綴谅阿,自動識別)注意: sufficient 本來是required,但如果這樣寫本地和虛擬用戶不能共存了坪蚁,具體原因目前不清楚.....
f.最后配置每個用戶的單獨的配置文件,在 /etc/vsftpd/dir 下分別建立以虛擬用戶為名字的文件镜沽,里面寫入各自的權限(跟匿名用戶一樣)敏晤。
g. 重啟服務,分別用不同的用戶登陸驗證缅茉。
記得將匿名用戶的家目錄其他人給與相應權限