centos 建立sftp使用者訪問特定目錄

2021-09-21 14:28:19 字數 2336 閱讀 1809

#建立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 建立使...