centos7 創建 sftp 用戶 並指定訪問特定目錄

centos7 創建 sftp 用戶 並指定訪問特定目錄

  1. 所需實現功能:

userA用戶: 對/home/sftp/userA/files
目錄有讀寫權限,限制其只能通過sftp登錄服務器,且只能在userA目錄下操作

userB用戶: 對/home/sftp/userB/files
目錄有讀寫權限,限制其只能通過sftp登錄服務器,且只能在userB目錄下操作

userB-r用戶: 對/home/sftp/userB/files
目錄只有只讀(下載)權限,限制其只能通過sftp登錄服務器,且只能在userB目錄下操做

  1. 創建sftpuser組,新增sftp登錄用戶userA、userB、userB-r,限制用戶無法ssh登錄服務器
# groupadd sftpuser 
# useradd -g sftpuser -s /bin/false userA
# echo "userA@your-password"|passwd your-password --stdin
# useradd -g sftpuser -s /bin/false userB
# echo "userB@your-password"|passwd your-password --stdin
# useradd -g sftpuser -s /bin/false userB-r
# echo "userB-r@your-password"|passwd your-password-r --stdin
  1. 創建兩個用戶的登錄目錄,設定目錄權
mkdir -p /home/sftp/{userA,userB}/files
# chown root:root /home/sftp/
# chown root:sftpuser /home/sftp/{userA,userB}/
# 給用戶可操作目錄目錄授權
# chown userA:sftpuser /home/sftp/userA/files
# chown userB:sftpuser /home/sftp/userB/files
# 給用戶目錄目錄授權
# chmod 755 /home/sftp/{userA,userB}
  1. 修改sshd_config文件,指定不同用戶登錄不同目錄
# vim /etc/ssh/sshd_config
  1. 修改sshd_config文件,指定不同用戶登錄不同目錄
# vi /etc/ssh/sshd_config
註釋掉下面一行
#Subsystem sftp /usr/libexec/openssh/sftp-server
添加以下內容
Subsystem    sftp    internal-sftp
Match User userB-r
    ChrootDirectory /home/sftp/userB
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
Match Group sftpuser
    ChrootDirectory /home/sftp/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
#-----------------------------------------------------------
Subsystem  sftp    internal-sftp
Match User cpic
    ChrootDirectory /home/sftp/cpic
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
Match User eleme
    ChrootDirectory /home/sftp/eleme
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
  1. 目錄權限設置要點: ChrootDirectory參數指定的目錄,其權限及其所有的上級文件夾權限,屬主必須是root,且只有屬主能擁有寫權限,即權限最大設置只能是755。上面之所以要創建files目錄,是因爲無論userA還是userB對自己的登錄目錄userA和userB都只有只讀權限,而通過上面第3步的權限設置,我們可以讓這兩個用戶對自己目錄下的files擁有讀寫權限,而使得userB-r對files目錄只有只讀權限,從而達到不同用戶擁有不同的權限設定需求。 上面配置中,userB-r的配置必須在sftpuser組配置之前,以後添加新的用戶也是如此,否則會因爲參數“/home/sftp/%u”優先匹配/home/sftp/userB-r目錄,而實際中userB-r目錄是不存在,造成登錄失敗。

  2. 重啓sshd服務:

 # service sshd restart
 #systemctl restart sshd
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章