CentOS下给sftp创建新用户并限制默认目录

一、添加用户和用户组

sudo adduser -g groupname -d userhome -s /sbin/nologin username  # 添加用户,指定主目录,禁止ssh登录
sudo usermod -a -G groupname username  # 把用户添加到sftp的用户组
sudo passwd username  # 配置sftp用户密码

二、修改主目录所有者及权限

配置sftp的坑:

1、由 ChrootDirectory 指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是 root
2、由 ChrootDirectory 指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限(最大权限 755)

所以执行下面的操作

sudo chown root:groupname userhome  # 修改主目录所有者
sudo chmod 750 userhome  # 修改主目录读写权限

三、修改配置文件

sudo vim /etc/ssh/sshd_config  # 修改配置文件

配置内容:

# 注意这段的5个配置位置要在前面
UseDNS no
AddressFamily inet
PermitRootLogin yes
SyslogFacility AUTHPRIV
PasswordAuthentication yes

Subsystem sftp internal-sftp
UsePAM yes

# 单一用户配置方式,可以为不同用户配置不同主目录
Match User username
X11Forwarding yes
AllowTcpForwarding yes
ForceCommand internal-sftp
ChrootDirectory userhome

# 用户组配置方式,用户组的所有用户都能登录访问
Match Group groupname
X11Forwarding yes
AllowTcpForwarding yes
ForceCommand internal-sftp
ChrootDirectory userhome

修改完成后重启sshd服务

sudo systemctl restart sshd.service  # 重启sshd服务

四、新建可操作目录

上面的操作完成后登录sftp时根目录是没有读写权限的,需要在根目录新建目录并授权给sftp用户

sudo mkdir userhome/files  # 新建目录
sudo chown -R username:groupname userhome/files  # 修改目录所有者
sudo chmod -R 750 userhome/files  # 修改目录权限

五、测试

执行以下操作确认配置结果

sftp username@localhost  # 测试配置结果
> cd files
> mkdir test
> rmdir test

六、删除用户(谨慎操作)

sudo chown -R username:groupname userhome  # 修改用户主目录权限以备删除
sudo userdel -r username  # 删除用户相关信息,包括用户组和主目录

参考:https://www.cnblogs.com/xjnotxj/p/6912471.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值