#安裝 yum install -y vsftpd #設置開機啓動 systemctl enable vsftpd.service #啓動 systemctl start vsftpd.service #中止 systemctl stop vsftpd.service #查看狀態 systemctl status vsftpd.service
useradd -s /sbin/nologin -d /var/www/html ftpuser passwd ftpuser
參數說明 :
useradd
-d:指定用戶登入時的主目錄,替換系統默認值/home/<用戶名>
-s:指定用戶登入後所使用的shell。默認值爲/bin/bash。
參考地址:# Linux命令---useraddhtml
passwd 是修改用戶密碼linux
相關命令:
usermod -s /sbin/nologin ftpuser 修改用戶登入後所使用的shell
usermod -d /var/www/html ftpuser 修改用戶登入時的主目錄
userdel -r ftpuser 刪除指定用戶 -r 參數是指刪除用戶所有文件shell
#打開配置文件 vi /etc/vsftpd/vsftpd.conf
這裏要關注的幾個配置項
1.不容許匿名訪問安全
anonymous_enable=NO
2.是否容許使用本地賬戶進行FTP用戶登陸驗證bash
local_enable=YES/NO
本地帳號和虛擬帳號區別主要在於可否登陸系統,帳號有權限能夠登陸操做系統的爲本地帳號,而不能登陸操做系統只能使用某些服務登陸的爲虛擬系統。服務器
userlist_enable=YES userlist_deny=NO
當userlist_enable=YES時,userlist_deny=YES時:user_list是一個黑名單,即:全部出如今名單中的用戶都會被拒絕登入;
當userlist_enable=YES時,userlist_deny=NO時:user_list是一個白名單,即:只有出如今名單中的用戶纔會被准許登入(user_list以外的用戶都被拒絕登入);ide
參考:vsftpd中關於ftpusers和user_list兩個文件的說明以及vsftpd.conf中的userlist_enable和userlist_deny兩個配置項的解釋測試
按上面得設置,則須要在名單文件 /etc/vsftpd/user_list中添加ftpuser(一行一個用戶名),ftpuser才能夠登錄。阿里雲
4.用戶不能離開主目錄spa
chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user
是否將全部用戶限制在主目錄,YES爲啓用 NO禁用.(該項默認值是NO,即在安裝vsftpd後不作配置的話,ftp用戶是能夠向上切換到要目錄以外的)
chroot_list_enable
是否啓動限制用戶的名單 YES爲啓用 NO禁用(包括註釋掉也爲禁用)
chroot_list_file=/etc/vsftpd/chroot_list
是否限制在主目錄下的用戶名單,至因而限制名單仍是排除名單,這取決於chroot_local_user的值。
參考:vsftpd 配置:chroot_local_user與chroot_list_enable詳解
按上面得設置,則須要在名單文件 /etc/vsftpd/chroot_list中添加ftpuser(一行一個用戶名),ftpuser纔會被如今在主目錄中,不容許離開。
5.用戶的主目錄寫權限
從2.3.5以後,vsftpd加強了安全檢查,若是用戶被限定在了其主目錄下,則該用戶的主目錄不能再具備寫權限了!若是檢查發現還有寫權限,就會報該錯誤。
要修復這個錯誤,你能夠在vsftpd的配置文件中增長下列項:
allow_writeable_chroot=YES
還有一種方法:能夠用命令 chmod a-w /var/www/html 去除用戶主目錄的寫權限
6.基本配置以上選項便可了,也能夠查看詳細配置介紹
1.500 OOPS: vsftpd: refusing to run with writable root inside chroot() 錯誤,解決請參考配置第5項;
2.530 Login incorrect錯誤 :