vsftp安裝 創建用戶 並限定用戶在自己的目錄
1、查看是否已經安裝了vsftpd
vsftpd -version
2、安裝vsftpd(CentOS7)
yum install -y vsftpd
3、新建FTP目錄
創建的FTP目錄如下:
mkdir -p /data/KodServer/data/User/tomas/home
4、創建新用戶
ftpname為你為該ftp創建的用戶名,/data/KodServer/data/User/tomas/home 為登錄進去后的位置
useradd -d /data/KodServer/data/User/tomas/home -s /bin/bash ftpname
5、為新建的用戶設置密碼
passwd ftpname
【備注:用cat etc/passwd可以查看當前系統用戶】
6、設置主目錄(更改登錄時看到的目錄,看個人需要更改,如果第4步已設置好,此步可忽略)
usermod -d /data/KodServer/data/User/tomas/home ftpname
7、添加用戶組(這步可忽略)
groupadd ftpgroup
這里如果三root用戶創建的文件夾,要把文件夾的全線給新建的用戶, 否則能訪問但是不能上傳
chmod ftpname:ftpgroup /data/KodServer/data/User/tomas/home
8、防火牆添加FTP服務
firewall-cmd --permanent --zone=public --add-service=ftp firewall-cmd --reload
解決辦法:
重啟vsftpd進程報錯 failed to start vsftpd ftp daemon,手動殺死 進程。
ps auxf | grep vsftpd
systemctl restart firewalld.service
9、配置只能訪問自身目錄(/data/KodServer/data/User/tomas/home),不能訪問其他路徑
修改/etc/vsftpd.conf
cd /etc/vsftpd/ vi vsftpd.conf #去掉前面的注釋 chroot_local_user=YES ascii_upload_enable=YES ascii_download_enable=YES #文件末尾添加 allow_writeable_chroot=YES
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
/etc/vsftpd/chroot_list 這個文件不存在,就要自己手動創建!!!
保存,重啟vsftpd
設置開機啟動:
systemctl enable vsftpd.service
啟動vsftpd服務
systemctl start vsftpd.service
禁止ftp用戶通過22端口登錄ftp服務器:
由於需要限制ftp用戶在自己的目錄,在21端口下沒有問題,但當ftp用戶用sftp登錄時,還是可以訪問上級目錄,於是禁止ftp用戶ssh登錄,切斷22端口的通信。
首先,執行如下命令,找到nologin的shell:
vi /etc/shells
可以看到禁止登錄的shell文件為/usr/sbin/nologin,然后執行如下命令:
usermod -s /usr/sbin/nologin tomas
如果要恢復tomas的ssh登錄,執行如下命令:
usermod -s /bin/bash tomas
如果看不到文件列表,關閉 SELinux
解決方法:關閉SELinux 查看SELinux狀態:/usr/sbin/sestatus -v #如果SELinux status參數為enabled即為開啟狀態 方法一:臨時關閉(不用重啟機器) setenforce 0 #設置SELinux 成為permissive模式 #setenforce 1 設置SELinux 成為enforcing模式 方法二:修改配置文件需要重啟機器 修改/etc/selinux/config 文件 將SELINUX=enforcing改為SELINUX=disabled 重啟機器即可
