參考網站:https://blog.csdn.net/lianghongge/article/details/78209445html
============================================================linux
https://www.cnblogs.com/Confession/p/6813227.html (比較全)web
https://blog.csdn.net/m0_37355951/article/details/76854141 (阿里雲搭建FTP服務器)數據庫
新建總虛擬帳戶virtusers,安全
修改用戶家目錄 usermod -d /var/ftp/ virtusers服務器
修改/opt/vsftp/passwdsession
須要 生成虛擬用戶數據文件app
db_load -T -t hash -f /opt/vsftp/passwd /opt/vsftp/passwd.dbasync
須要注意的是,之後對虛擬用戶的增刪操做完以後須要再次執行上述命令,使其生成新的數據文件tcp
而後從新啓動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身份進行。
1、設置用戶帳號。
#建立用於登錄的FTP的帳號
useradd myftp -s /sbin/nologin -U
#修改myftp密碼
passwd myftp
2、修改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
3、建立必須的文件
檢查下/etc/vsftpd/目錄裏是否有如下3個文件,若是沒有就建個空的。
chroot_list 這個通常是沒有的,建個空的吧
user_list 這個通常默認就存在,裏面存放容許登錄的帳號,一行一個帳號名,若是不想讓某個帳號登錄ftp,那麼這裏就別填那個帳號進來。
ftpusers 這個通常默認就存在,裏面存放禁止登錄的帳號,一行一個帳號名。
PS:user_list和ftpusers功能差很少的,能夠只用user_list 這個來管理,把 ftpusers 裏面內容都刪掉。
4、容許第一步建立的帳號名myftp登錄。
在/etc/vsftpd/user_list 添加一行內容是myftp
查驗一下/etc/vsftpd/ftpusers是否有myftp,若是有,就要刪掉,否則就被禁止登錄了。
5、建立用於ftp的文件夾
mkdir -p /var/ftp
6、建立容許ftp用戶操做的文件夾
mkdir -p /var/ftp/share
chmod 777 /var/ftp/share
7、防火牆開放相關的端口,並重啓防火牆,輸入如下指令,一行一行運行:
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
8、selinux開放相關權限,並重啓selinux:
setsebool -P ftpd_full_access 1
setenforce 0
setenforce 1
#能夠經過如下指令查看ftpd_full_access 是否爲ON狀態
getsebool -a|grep ftpd_full_access
9、啓動ftp服務
systemctl restart vsftpd.service
#若是想開機啓動ftp還要運行如下指令:
systemctl enable vsftpd.service
10、如今能夠嘗試用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 就能夠了
=======================================================