1. 程式人生 > >【轉發】centos 7開啟FTP以及新增使用者配置許可權,只允許訪問自身目錄,不能跳轉根目錄 linux下ftp配置檔案詳解

【轉發】centos 7開啟FTP以及新增使用者配置許可權,只允許訪問自身目錄,不能跳轉根目錄 linux下ftp配置檔案詳解

1.切換到root使用者

2.檢視是否安裝vsftp,我這個是已經安裝的。

[[email protected] vsftpd]# rpm -qa |grep vsftpd
vsftpd-3.0.2-11.el7_2.x86_64

3.如果沒有發現,則安裝。

yum install vsftpd* -y

4.啟動vsftpd服務,以及重啟命令(centos7.0以上版本)

[[email protected] vsftpd]# /bin/systemctl start vsftpd.service
[[email protected] vsftpd]# /bin/systemctl restart vsftpd.service

低版本試一下這些命令:

/etc/init.d/vsftpd restart
啟動ftp命令  #service vsftpd start

停止ftp命令  #service vsftpd stop

重啟ftp命令  #service vsftpd restart

設定自啟:chkconfig vsftpd on

5.測試一下能否登入FTP了,先安裝一個ftp客戶端元件。

yum -y install ftp 

嘗試登入一下

ftp localhost 

輸入使用者名稱ftp,密碼隨便(因為預設是允許匿名的)

登入成功,就代表ftp服務可用了。

但是,外網是訪問不了的,所以還要繼續配置。

6.取消匿名登入

vi /etc/vsftpd/vsftpd.conf

把第一行的 anonymous_enable=YES ,改為NO

重啟

[[email protected] vsftpd]# /bin/systemctl restart vsftpd.service

7.建立一個組,用於存放ftp使用者

groupadd ftpgroups

8.建立ftp使用者,並加入ftpgroups組,/home/ftp是自己建的目錄,不存在就自己建立一個

useradd -d /home/ftp/ftptest -g ftpgroups ftptest

設定密碼

passwd ftptest

設定不允許用於使用者登入

usermod -s /sbin/nologin ftptest

 

可以看到已經建好了

[[email protected] vsftpd]# ls /home/ftp
ftpn  ftptest

這時候重啟一下vsftpd服務

/bin/systemctl restart vsftpd.service

登入一下看,可以登入了,但是發現也能訪問上層目錄,甚至根目錄,這不是我們希望的,修改一下配置檔案讓其只能訪問自身目錄

vi /etc/vsftpd/vsftpd.conf

如下設定

chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

另外,從2.3.5之後,vsftpd增強了安全檢查,如果使用者被限定在了其主目錄下,則該使用者的主目錄不能再具有寫許可權了!如果檢查發現還有寫許可權,就會報該錯誤。

 要修復這個錯誤,可以用命令chmod a-w /home/user去除使用者主目錄的寫許可權,注意把目錄替換成你自己的。或者你可以在vsftpd的配置檔案中增加下列項:

 allow_writeable_chroot=YES

 

好了,這樣就只能訪問自身所屬目錄。

如果希望某個使用者可以訪問根目錄,把使用者名稱加入

/etc/vsftpd/chroot_list

不存在就建立這個檔案,一行一個使用者名稱。

 

如果還是登陸不了ftp,那很有可能是selinux的問題,這個東西把他關掉就行

vi /etc/selinux/config

SELINUX=enforcing 設定成SELINUX=disabled

 

重啟一下伺服器

reboot

重啟完了別忘了把vsftpd服務開啟,預設是自啟的。

 

如果連線不上,很可能是防火牆阻止了,嘗試關閉防火牆

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
firewall-cmd --state #檢視預設防火牆狀態(關閉後顯示notrunning,開啟後顯示running)

 

如果出現遠端資料夾無法顯示的情況,請使用主動模式連線,在你的ftp工具上設定。

 轉自:http://www.cnblogs.com/mrcln/p/6179673.html

vsftpd.conf檔案引數中文解釋請移步:

linux下ftp配置檔案詳解