Chinaunix首页 | 论坛 | 博客
  • 博客访问: 80315
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-17 11:15
个人简介

The important thing in life is not how long you will live, but whom you are living with.

文章分类

全部博文(21)

文章存档

2022年(1)

2021年(6)

2016年(1)

2015年(2)

2014年(11)

我的朋友

分类: LINUX

2014-06-27 19:03:33

1.创建sftp用户的主根目录

[root@Oracle-2 ~]# mkdir -p /home/sftp

[root@Oracle-2 ~]# chmod -R 755 /home/sftp

 

2.创建sftp用户组和一个sftp用户blog

[root@Oracle-2 ~]# groupadd sftp

[root@Oracle-2 ~]# useradd -g sftp -d /home/sftp/blog blog

[root@Oracle-2 ~]# passwd blog

 

(3)权限设置

设置 /etc/ssh/sshd_config配置文件,通过Chroot限制用户的根目录。

 

[root@Oracle-2 ~]# vi /etc/ssh/sshd_config

# override default of no subsystems

#注释掉原来的Subsystem设置

#Subsystem      sftp    /usr/libexec/sftp-server

#启用internal-sftp

Subsystem sftp internal-sftp

 

# Example of overriding settings on a per-user basis

#Match User anoncvs

#       X11Forwarding no

#       AllowTcpForwarding no

#       ForceCommand cvs server

#限制blog用户的根目录

Match User blog

         ChrootDirectory /home/sftp/blog/

         X11Forwarding no

         AllowTcpForwarding no

         ForceCommand internal-sftp

 

保存退出,重启sshd服务:

[root@Oracle-2 ~]# service sshd restart

 

4.测试sftp权限控制

使用blog用户尝试登录sftp ,发现无法登陆,给出的提示也很难看懂,什么原因呢?

 

原来要使用Chroot功能实现用户根目录的控制,目录权限的设置非常重要,否则将会无法登陆。

 

目录权限设置上要遵循2点:

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。

如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。

 

设置目录的属主和权限:

[root@Oracle-2 ~]# chown root:root /home/sftp  /home/sftp/blog

[root@Oracle-2 ~]# chmod 755 /home/sftp /home/sftp/blog

 

由于上面设置了目录的权限是755,因此所有非root用户都无法在目录中写入文件。我们需要在ChrootDirectory指定的目录下建立子目录,重新设置属主和权限。以blog目录为例:

 

[root@Oracle-2 ~]#  mkdir /home/sftp/blog/web

[root@Oracle-2 ~]# chown blog:sftp /home/sftp/blog/web

[root@Oracle-2 ~]#  chown 775 /home/sftp/blog/web

 

设置完成后,我们再用blog用户登录sftp,发现这次可以正常登录了,并且可以访问的根目录控制在了/home/sftp/blog/下,达到了我们的要求。

 

补充:

上面是设置某一个sftp用户的访问权限,我们可以通过下面的配置,来设置某一个sftp组的用户访问权限:

Match group sftp

        ChrootDirectory /home/sftp/

        X11Forwarding no

         AllowTcpForwarding no

        ForceCommand internal-sftp

阅读(12630) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~