搭建sftp并设置不同权限的多个用户

 

 

一, 设置相关用户,用户组,ssh配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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用户的,所以没有写入权限

1
2
3
4
5
6
7
8
9
10
接下来修改用户权限如下
[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

posted @   坚强的小蚂蚁  阅读(5003)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示