centos下配置sftp且限制用户访问目录
时间:2017-02-16 23:09 来源:linux.it.net.cn 作者:IT
第一步:创建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.
(责任编辑:IT)
第一步:创建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服务
用户test是一个sftp组的用户,那么他通过sftp连接服务器上之后,只能看到/srv/sftp/test目录下的内容 第三步:添加有效的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. (责任编辑:IT) |