#1.創建一個組,用於存放ftp用戶
groupadd sftp
#2.創建ftpuser用戶,並加入sftp組,/data/sftp/是自己建的目錄
useradd -d /data/sftp/ftpuser -g sftp ftpuser-s /sbin/nologin
#3設置密碼
echo ftpuser:'password' | chpasswd
#4設置密碼期限
chage -M 9999 ftpuser
登錄一下看,可以登錄了,但是發現也能訪問上層目錄,甚至根目錄,這不是我們希望的,修改一下配置文件讓其只能訪問自身目錄
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
不存在就創建這個文件,一行一個用戶名。
SFTP 配置方法
/etc/ssh/sshd_config
#註釋Subsystem sftp /usr/libexec/sftp-server
##Subsystem sftp /usr/libexec/sftp-server
#添加如下內容
Subsystem sftp internal-sftp
Match User ftptest#匹配用戶
ChrootDirectory /data/ftptest# 限制用戶目錄
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
注意:sftpd的上級目錄的所有者必須是root,用戶組可以不是root。權限必須小於755.
補充其他用戶配置的方法
#有登陸權限
useradd -d /data/test -s /bin/bash -g bighead test
#創建用戶不設置家目錄
useradd -g bighead -s /sbin/nologin -M test
#設置用戶家目錄
usermod -d /data/test test