linux系统创建SFTP用户及设置其chroot权限
来源:互联网 发布:文字特效软件下载 编辑:程序博客网 时间:2024/04/29 14:58
前言:
开发项目客户要求与三方通过sftp交互文件,我方系统部署sftp服务器。考虑安全,计划对提供给三方的用户实现chroot控制
提供sftp本次选用的是系统自带的internal-sftp。
限制用户只能在home目录下活动,需要使用chroot。openssl4.8p1以后都支持chroot,当前操作系统是rehl6.6 X64,自带openssl版本足够。
查看openssl版本命令:
# ssh -V
开始正题,因为接入三方很多,现计划创建sftpusers用户组,各三方的sftp用户都属于此组以便统一管理。用户HOME目录统一指定到/chroot目录下。
创建用户组
# groupadd sftpusers
配置chroot目录
# mkdir /chroot
# chown root:root /chroot
# 因root创建,此步可省# chown 755 /chroot
创建新用户
# useradd -d /chroot/DF999999 -s /bin/false -g sftpusers DF999999
注意:
-d意为指定home目录
-g意为用户DF999999主属组为sftpusers。若此处为-G,则会自动创建DF999999组为用户的主属组。为用户初始化密码
# passwd DF999999
配置用户home目录权限,用于chroot控制
# chown root:root /chroot/DF999999
# chmod 755 /chroot/DF99999
配置sshd_config
编辑 /etc/ssh/sshd_config,line132左右
# 找到如下行,并注释掉 Subsystem sftp /usr/libexec/openssh/sftp-server # 添加如下几行 Subsystem sftp internal-sftp Match Group sftpusers ChrootDirectory %h ForceCommand internal-sftp
如上记录说明:
Subsystem sftp internal-sftp
这行指定使用sftp服务使用系统自带的internal-sftp
Match Group sftpusers
这行用来匹配sftpusers组的用户,如果要匹配多个组,多个组之间用逗号分割;
当然,也可以匹配用户
Match User DF999999
这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便.
ChrootDirectory %h
用chroot将用户的根目录指定到%h,%h代表用户home目录,这样用户 就只能在用户目录下活动。也可用%u,%u代表用户名。
ForceCommand internal-sftp
指定sftp命令
6. 重启sshd服务
# service sshd restart
重启完毕后用户DF999999就可以正常通过sftp客户端登录了。
但是因为/chroot以及/chroot/DF999999都属于root用户组,所以无读写权限。进行如下处理:
于/chroot/DF999999目录下创建上传目录
# mkdir /chroot/DF999999/send
上传目录权限控制
# chown DF999999:sftpusers /chroot/DF999999/send
# chmod 777 /chroot/DF999999/send
至此,用户可以sftp登录,并上传文件到send目录下。
重要说明:
1.如果目录下不能上传文件,提示没有权限,检查SElinux是否关闭,可以使用如下指令关闭SElinux。修改/etc/selinux/config文件中的SELINUX=”” 为 disabled ,然后重启。
或: # setenforce 0
2.chroot设置需要遵循两个原则
- 由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
- 由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
遵循如上两个原则,我将/chroot以及/chroot/DF999999目录设置拥有者全部为root用户,且权限全部为755(群组无写入权限)
- linux系统创建SFTP用户及设置其chroot权限
- linux下sftp用户创建及设置其主目录
- Linux下SFTP设置用户目录权限
- linux创建sftp账号及访问权限
- Linux 创建sftp用户并限制目录权限
- linux创建用户、设置权限
- linux配置sftp用户的chroot步骤(用户的sftp根目录)
- linux配置sftp用户的chroot步骤(用户的sftp根目录)
- MySQL创建用户及数据库并赋予其权限
- SAP 的用户创建及权限设置
- oracle用户创建及权限设置
- SAP 的用户创建及权限设置
- oracle用户创建及权限设置
- oracle用户创建及权限设置
- oracle用户创建及权限设置
- oracle用户创建及权限设置
- oracle用户创建及权限设置
- oracle用户创建及权限设置
- 欢迎使用CSDN-markdown编辑器
- [设计模式] 装饰者模式Decorator
- Leet Code OJ 217. Contains Duplicate [Difficulty: Easy]
- 【html5手游开发】虚拟摇杆及虚拟按键的开发
- MySQL的外键插入
- linux系统创建SFTP用户及设置其chroot权限
- 第十三章编程练习(4)
- iOS 开发 -- Swift (十) 重载构造函数
- iOS 常用宏定义
- 如何解决掉字符
- onload
- MySQL架构体系
- APP测试框架
- MySQL外键详解