centos下配置sftp且限制用户访问目录
第一步:创建sftp服务用户组,创建sftp服务根目录
groupadd sftp
#此目录及上级目录的所有者(owner)必须为root,权限不高于755,此目录的组最好设定为sftp
mkdir /srv/sftp
chown -R root:sftp /srv/sftp
chmod -R 0755 /srv/sftp
第二步:备份sshd配置文件然后编辑
mv /etc/ssh/sshd_config ~/backup/sshd_config_xxx
vim /etc/ssh/sshd_config
这一步,注释掉/etc/ssh/sshd_config文件中的此行代码:
Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下代码:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /srv/sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
功能可简述为:凡是在用户组sftp里的用户,都可以使用sftp服务
使用sftp服务连接上之后,可访问目录为/srv/sftp/username
举个例子:
用户test是一个sftp组的用户,那么他通过sftp连接服务器上之后,只能看到/srv/sftp/test目录下的内容
用户test2也是一个sftp组的用户,那么他通过sftp连接服务器之后,只能看到/srv/sftp/test2目录下的内容
第三步:添加有效的sftp用户,且给予用户写权限
#此例将创建一个名称为test的sftp帐号
#创建test的家目录:test目录的所有者必须是root,组最好设定为sftp,权限不高于755
mkdir /srv/sftp/test
chmod 0755 /srv/sftp/test
chown root:sftp /srv/sftp/test
#添加用户 使用参数 -s/sbin/nologin禁止用户通过命令行登录
useradd -gsftp -d/srv/sftp/test -s/sbin/nologin test
关于写权限,如下解决方案并不是很完美
#在test目录下创建一个可以写的目录
mkdir /srv/sftp/test/write
chown -R test:sftp /srv/sftp/test/write
这样test用户就可以在自己家目录里的write目录下拥有写入权限了
最后再强调一下,sftp服务的根目录的所有者必须是root,权限不能超过755(上级目录也必须遵循此规则),sftp的用户目录所有者也必须是root,且最高权限不能超过755.
luxixing
PHP,GOLANG , JAVA 没有最好的语言,只有最合适的语言 语言是工具,但是工欲善其事,必先利其器
推荐阅读
Golang 基础语法-高级数据类型(3)
定义语法如下:var arr [n]type其中 arr 是数组变量的名称(标识符), [n]type 表示这个数组是类型为 type 且长度为 n 的数组(type 可以是任何基本类型,也可以是任何自定义类型)
luxixing赞 1阅读 4.1k
Ubuntu 20.04 读写 Windows 10 共享目录(qbit)
本文实验环境中,Windows 操作系统版本为 Windows Server 2016,应该对 Windows 10 和 Windows Server 2019 同样适用
qbit赞 1阅读 6.3k
无外网情况下的centos软件安装
有些时候在一些内网环境部署机器的时候,要用一个跳板机,再通过跳板机ssh到目标机器,最后发现目标机器是不能访问外网的,目标机器居然还不能反向ping跳板机或者ssh到跳板机,通过iptables -nvL和ip route以及ar...
龚正阳赞 1阅读 756
CentOS安装Redis
如果要安装最新的redis,需要安装Remi的软件源,官网地址:[链接]yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm然后可以使用下面的命令安装最新版本的redis:yum --enablerepo=re...
YYGP阅读 1.4k
配置VMware中联网的两种方式:Net模式&桥接模式
实践环境:VMware12Pro、CentOS7Net模式和桥接模式联网的区别:桥接模式:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上。NAT模式:NAT模式就是虚拟机要联网得先通过宿主机才...
GoodLifeBro阅读 1.3k
yum安装MySQL
yum仓库 {代码...} 或者 {代码...} yum安装MySQL {代码...} 安装过程可能报错,附上解决方案:错误1 {代码...} 需执行yum module disable mysql然后重新install错误2 {代码...} 原因: MySQL GPG 密钥已过期导致...
YYGP阅读 1.1k
CentOS分区
分区格式化查看分区信息fdisk -l如果提示命令找不到:sudo: command not found, 可以尝试使用/sbin/fdisk -l {代码...} 查看已分区信息 {代码...} 格式化分区 {代码...} 如果格式化成ext4模式, 执行以下命令 {代...
YYGP赞 1阅读 973
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。