#建立sftp組
groupadd sftp
#新增sftp方式登入使用者sftpuser,限制使用者無法ssh登入伺服器
useradd -g sftp -s /bin/false sftpuser && echo "1234!@#$"|passwd sftpuser --stdin
#建立sftpuser目錄data目錄,sftpuser登入直接顯示的是data目錄 並且無法刪除data,但data目錄下增刪改許可權#都有
mkdir -p /sftpuser/data
# chown root:root /sftpuser/
# chown root:sftp /sftpuser/
# chown sftpuser:sftp /sftpuser/data
# chmod 755 /sftpuser/
vim /etc/ssh/sshd_config
subsystem sftp internal-sftp
match user sftpuser
chrootdirectory /sftpuser/
forcecommand internal-sftp
allowtcpforwarding no
x11forwarding no
systemctl restart sshd
2 建立sftpuser組,新增sftp登入使用者usera、userb、userb-r,限制使用者無法ssh登入伺服器
# groupadd sftpuser
# useradd -g sftpuser -s /bin/false usera && echo "usera@123"|passwd usera --stdin
# useradd -g sftpuser -s /bin/false userb && echo "userb@123"|passwd userb --stdin
# useradd -g sftpuser -s /bin/false userb-r && echo "userb-r@123"|passwd userb-r --stdin
3建立兩個使用者的登入目錄,設定目錄權
mkdir -p /opt/sftp//uploadfiles
# chown root:root /opt/sftp/
# chown root:sftpuser /opt/sftp//
# chown usera:sftpuser /opt/sftp/usera/uploadfiles
# chown userb:sftpuser /opt/sftp/userb/uploadfiles
# chmod 755 /opt/sftp/
4修改sshd_config檔案,指定不同使用者登入不同目錄
# vim /etc/ssh/sshd_config
注釋掉下面一行
#subsystem sftp /usr/libexec/openssh/sftp-server
#新增subsystem sftp internal-sftp
match user userb-r
chrootdirectory /opt/sftp/userb
forcecommand internal-sftp
allowtcpforwarding no
x11forwarding no
match group sftpuser
chrootdirectory /opt/sftp/%u
forcecommand internal-sftp
allowtcpforwarding no
x11forwarding no
5 目錄許可權設定要點: chrootdirectory引數指定的目錄,其許可權及其所有的上級資料夾許可權,屬主必須是root,且只有屬主能擁有寫許可權,即許可權最大設定只能是755。
上面之所以要建立uploadfiles目錄,是因為無論usera還是userb對自己的登入目錄usera和userb都只有唯讀許可權,而通過上面第3步的許可權設定,我們可以讓這兩個使用者對自己目錄下的uploadfiles擁有讀寫許可權,而使得userb-r對uploadfiles目錄只有唯讀許可權,從而達到不同使用者擁有不同的許可權設定需求。
上面配置中,userb-r的配置必須在sftpuser組配置之前,以後新增新的使用者也是如此,否則會因為引數「/opt/sftp/%u」優先匹配/opt/sftp/userb-r目錄,而實際中userb-r目錄是不存在,造成登入失敗。
重啟sshd服務:
# service sshd restart
#systemctl restart sshd
Centos 新增sftp使用者
建立sftp組 groupadd sftp 建立乙個使用者dsideal useradd g sftp s bin false dsideal 設定dsideal使用者的密碼 passwd dsideal 建立乙個sftp的上傳目錄 mkdir usr local sftp 修改使用者dsideal...
CentOS 自定義SFTP使用者及目錄
ftp功能說明 通過ssh啟動centos的sftp功能 groupaddsftp useradd gsftp s sbin nologin d home sftpsftp passwdsftp 輸入密碼 123456 確認密碼 vim etc ssh sshd config 修改最大登入數 aut...
Linux 建立sftp使用者並限制目錄許可權
最近搞乙個sftp專案,用於給第三方公司上傳檔案,期間查詢了很多種方式,依然無法限制目錄,很苦惱,本次經過無數次試驗,終於成功了。提供sftp服務的有vsftpd和internal sftp,這裡用的是系統自帶的internal sftp,操作步驟如下 下面是千篇一律的步驟,網上大抵相同。1 建立使...