參考網站:https://blog.csdn.net/lianghongge/article/details/78209445
============================================================
https://www.cnblogs.com/Confession/p/6813227.html (比較全)
https://blog.csdn.net/m0_37355951/article/details/76854141 (阿里雲搭建FTP服務器)
新建總虛擬賬戶virtusers,
修改用戶家目錄 usermod -d /var/ftp/ virtusers
修改/opt/vsftp/passwd
需要 生成虛擬用戶數據文件
db_load -T -t hash -f /opt/vsftp/passwd /opt/vsftp/passwd.db
需要注意的是,以后對虛擬用戶的增刪操作完之后需要再次執行上述命令,使其生成新的數據文件
然后重新啟動vsftpd
=============================================================
限制用戶登錄權限: https://blog.csdn.net/zgy621101/article/details/78902020
userlist_enable=YES
然后把需要限制的用戶添加進文件/etc/vsftpd/user_list當中去。
=============================================================
新建用戶並限制訪問的目錄文件夾:
https://blog.csdn.net/dxmgood/article/details/51895574
https://zhidao.baidu.com/question/2205911713706365028.html (好像說反了,沒在文件 /etc/vsftpd/chroot_list里面設置的用戶名才會限制訪問目錄)
(1)用戶ftptest為useradd創建的用戶,相關設置,限制訪問默認目錄,及訪問的默認目錄
chroot_local_user=YES #(修改為NO以后,虛擬賬戶就不限制切換上下級目錄了)
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
local_root=/var/ftp/pub
anon_root=/var/ftp/pub
[root@smcweb01 ~]# cat /etc/vsftpd/chroot_list
user2
[root@smcweb01 ~]#
(2)虛擬用戶test,相關配置,及訪問的默認目錄
在這個文件內設置:/etc/vsftpd/vconf/test
新建的虛擬用戶存放的文件地址 : /opt/vsftp/passwd
設置PAM驗證文件,並制定虛擬用戶數據庫文件進行讀取: /etc/pam.d/vsftpd 添加以下兩行
#####64位系統配置 auth sufficient /lib64/security/pam_userdb.so db=/opt/vsftp/passwd account sufficient /lib64/security/pam_userdb.so db=/opt/vsftp/passwd
=============================================================
我的vsftpd.conf設置內容如下:::::::
# grep -v '^#' /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=3600
nopriv_user=vsftpd
async_abor_enable=YES
ftpd_banner=Welcome to blah FTP service.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
local_root=/var/ftp/pub
anon_root=/var/ftp/pub
ls_recurse_enable=NO
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=virtusers
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vconf
reverse_lookup_enable=NO
=============================================================
CentOS7搭建FTP服務器
以下操作均要以ROOT身份進行。
一、設置用戶賬號。
#創建用於登陸的FTP的賬號
useradd myftp -s /sbin/nologin -U
#修改myftp密碼
passwd myftp
二、修改vsftpd的主要配置文件。
#修改/etc/vsftpd/vsftpd.conf 文件,確認以下內容是否一致:
#允許用賬號密碼的方式登陸
local_enable=YES
#允許文件的寫入操作
write_enable=YES
#連接的超時時間設定
idle_session_timeout=600
data_connection_timeout=120
#所有登陸的用戶都作為nobody身份,更安全。
nopriv_user=nobody
#以下內容默認是沒有,添加進vsftpd.conf 文件的最后
#使用被動模式連接
pasv_enable=YES
#被動模式超時時間
accept_timeout=60
#被動模式所使用的端口范圍
pasv_min_port=65400
pasv_max_port=65410
#啟動並指定開放的用戶列表
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#監聽的端口
listen_port=21
listen=YES
#開放用戶賬號登陸
guest_enable=YES
guest_username=ftp
#限制用戶的上傳下載速度,0為不限制,單位: bytes/秒
local_max_rate=0
#限制登陸用戶的到默認的位置,默認為/var/ftp文件夾
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#進入文件夾后提示的歡迎內容,如果沒有/etc/vsftpd/welcome.txt這個文件就自己新建一個,隨便寫點東西進去。
dirmessage_enable=YES
banner_file=/etc/vsftpd/welcome.txt
#使用pam托管的賬號
pam_service_name=vsftpd
#允許上傳等寫入操作
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
三、創建必須的文件
檢查下/etc/vsftpd/目錄里是否有以下3個文件,如果沒有就建個空的。
chroot_list 這個一般是沒有的,建個空的吧
user_list 這個一般默認就存在,里面存放允許登陸的賬號,一行一個賬號名,如果不想讓某個賬號登陸ftp,那么這里就別填那個賬號進來。
ftpusers 這個一般默認就存在,里面存放禁止登陸的賬號,一行一個賬號名。
PS:user_list和ftpusers功能差不多的,可以只用user_list 這個來管理,把 ftpusers 里面內容都刪掉。
四、允許第一步創建的賬號名myftp登陸。
在/etc/vsftpd/user_list 添加一行內容是myftp
查驗一下/etc/vsftpd/ftpusers是否有myftp,如果有,就要刪掉,不然就被禁止登陸了。
五、創建用於ftp的文件夾
mkdir -p /var/ftp
六、創建允許ftp用戶操作的文件夾
mkdir -p /var/ftp/share
chmod 777 /var/ftp/share
七、防火牆開放相關的端口,並重啟防火牆,輸入以下指令,一行一行運行:
firewall-cmd --permanent --zone=public --add-port=20/tcp
firewall-cmd --permanent --zone=public --add-port=21/tcp
firewall-cmd --permanent --zone=public --add-port=65400-65410/tcp
firewall-cmd --permanent --zone=trusted --add-port=20/tcp
firewall-cmd --permanent --zone=trusted --add-port=21/tcp
firewall-cmd --permanent --zone=trusted --add-port=65400-65410/tcp
systemctl restart firewalld.service
#可以通過以下指定查看端口是否已添加進去
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=trusted --list-ports
八、selinux開放相關權限,並重啟selinux:
setsebool -P ftpd_full_access 1
setenforce 0
setenforce 1
#可以通過以下指令查看ftpd_full_access 是否為ON狀態
getsebool -a|grep ftpd_full_access
九、啟動ftp服務
systemctl restart vsftpd.service
#如果想開機啟動ftp還要運行以下指令:
systemctl enable vsftpd.service
十、現在可以嘗試用ftp賬號登陸了,可以參考下圖,登陸時間可能需要幾秒,如果登陸不了就重啟服務器再試下吧。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
更改ftp訪問的共享文件夾
參考網站:https://www.cnblogs.com/huangye-dream/p/3454595.html
修改ftp的根目錄只要修改/etc/vsftpd/vsftpd.conf文件即可:
加入如下幾行:
local_root=/var/www/html
chroot_local_user=YES
anon_root=/var/www/html
注:local_root 針對系統用戶;anon_root 針對匿名用戶。
重新啟動服務:
service vsftpd restart
任何一個用戶ftp登錄到這個服務器上都會chroot到/var/www/html目錄下。
=======================================================
問題:用戶不能上傳文件?注意修改文件目錄權限 chmod 777 就可以了
=======================================================