搭建sftp並設置不同權限的多個用戶


 

 

一, 設置相關用戶,用戶組,ssh配置文件

mkdir -pv /opt/ftpsite/{admin,user1,user2}
groupadd sftpadmins
groupadd sftpusers

useradd -g sftpadmins -s /sbin/nologin -d /opt/ftpsite/ admin
passwd admin
123456

useradd -g sftpusers -s /sbin/nologin -d /opt/ftpsite/ user1
passwd user1
111111

useradd -g sftpusers -s /sbin/nologin -d /opt/ftpsite/ user2
passwd user2
222222

[注意:不要使用 echo "PASSWORD" | passwd --stdin USERNAME 這種方式設定密碼,經測試有bug]


vim /etc/ssh/sshd_config
Port 35021
Subsystem sftp internal-sftp
Match Group sftpadmins,sftpusers
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no


說明1: ChrootDirectory %h ,表示用戶通過sftp登錄后就把根目錄切換到它自己的家目錄
說明2: 以上為經過修改的配置

sftp -oPort=35021 admin@192.168.56.23
輸入密碼進行登錄

  

 

二. 設置權限


三個用戶先測試登錄成功,但因為目錄都是root用戶的,所以沒有寫入權限

接下來修改用戶權限如下
[root]# ll -d /opt/ftpsite
drwxr-xr-x 5 root root 4096 5月  11 10:59 /opt/ftpsite
說明:用戶的家目錄屬主必須是root,且權限最高755

[root]# cd ftpsite/
[root]# ll
drwxrwx--- 2 admin  sftpadmins 4096 5月  12 15:10 admin
dr-xrwx--- 2 user1 sftpadmins 4096 5月  12 12:15 user1
dr-xrwx--- 2 user2 sftpadmins 4096 5月  12 15:11 user2

  

sftp目錄結構 /opt/ftpsite/{admin,user1,user2},

注意目錄admin, user1, user2的所屬和權限設置,非常重要!!!

 

 

三. 測試

用戶名: admin   密碼: 123456
sftp -oPort=35021 admin@192.168.56.23
可以在{admin,user1,user2}目錄讀寫

用戶名: user1    密碼: 111111
sftp -oPort=35021 user1@192.168.56.23
可以列出所有目錄,但只能進入bmcoop1目錄讀取,其他目錄拒絕查看/進入

用戶名: user2    密碼: 222222
sftp -oPort=35021 user2@192.168.56.23
可以列出所有目錄,但只能進入bmcoop2目錄讀取,其他目錄拒絕查看/進入

使用FileZilla連接時,格式如下
主機: sftp://192.168.56.23
用戶名: user2
密碼:  222222
端口: 35021


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM