随记-创建sftp用户并分配操作目录权限

背景:客户需要到我服务器上存取文件,单独给他创建sftp账号。

步骤:

1、创建一个sftp用户,名称暂定为sjzx_sftp_user,并修改密码

useradd -s /sbin/nologin -M sjzx_sftp_user
passwd sjzx_sftp_user

2、创建根目录,这里就先以 用户名为 根目录名

mkdir /sjzx_sftp_user
#需要设置该目录的权限,确保该目录及该目录以上的系统根目录的拥有者都只能是root用户
chown root:root /sjzx_sftp_user
#其次要确保该跟目录往上的根目录都不可以具有群组写入权限
chmod 755 /sjzx_sftp_user

3、创建用户sjzx_sftp_user目录,这里设置目录名为upload

mkdir /sjzx_sftp_user/upload
#同时给该用户赋予sjzx_sftp_user该sftp用户的目录权限:
chown root:sjzx_sftp_user /sjzx_sftp_user/upload
#这里的目录sftp的权限也只能是755,否则无法限制目录,切记切记
chmod 755 /sjzx_sftp_user/upload
#最后在upload目录创建一个temp工作目录给sjzx_sftp_user用户用来各种操作
mkdir /sjzx_sftp_user/upload/temp
#因为要让用户读写操作,所以权限给777
chmod 777 /sjzx_sftp_user/upload/temp

4、修改配置文件,记得先备份

vim /etc/ssh/sshd_config

配置内容详细说下:

注释掉这行:#Subsystem sftp /usr/libexec/openssh/sftp-server
在这里插入图片描述

然后添加下面的内容:

Subsystem sftp internal-sftp
	Match User sftpuser                      #匹配用户,如果要匹配多个组,多个组之间用逗号分隔
	ChrootDirectory /sjzx_sftp_user/upload   #用chroot将指定用户的根目录
	ForceCommand internal-sftp               #指定sftp命令
	X11Forwarding no                         #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
	AllowTcpForwarding no

在这里插入图片描述

5、重启sshd服务

systemctl restart sshd.service 或者用 service sshd restart

6、测试连接

sftp -oPort=22 sjzx_sftp_user@ip地址

ps:最终效果:
用户连接sftp后进入/sjzx_sftp_user/upload/,不能访问upload以上目录,
进入咱们给定的/sjzx_sftp_user/upload/temp的工作目录,
在temp目录内该用户可随意操作(传输文件,增删改查等操作)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值