1.编辑ssh中的sftp的配置,命令可能是:vi /etc/ssh/sshd_config

在这个文件里最后增加



#限制sftp组的用户使用sftp时在自己的home文件夹下

Match Group sftp

#这里写重写根文件夹成登录用户的根文件夹下

        ChrootDirectory %h

#这行指定使用sftp服务使用系统自带的internal-sftp

        ForceCommand    internal-sftp

2 重新启动ssh服务,命令可能是:service ssh restart,

这里要注意,当前重新启动这个服务的窗体千百万不能关闭,假设配置错误,ssh重新启动失败,你可能就进不去了,就得到机房中弄了,,,

所以,重新启动后,能够使用service ssh status来检查状态,或是再打开一个ssh登录窗体检查一下,重新启动后服务是否能正常执行.

如果我的文件夹是/var/www/a



用户创建



1. 使用adduser --home /var/www/a/ --gid 1001 --shell /bin/false 登录员工名,来添加用户

2. 在/var/www/a/文件夹下创建一个属于此用户的文件夹,如U1000

3. 使用chown -R username.sftp ./U1000 来改变这个文件夹拥有者,也就是U1000拥有者是本用户,组是sftp

4. 使用chmod -R o+wr ./U1000 来改变本用户拥有写入本文件夹的权限

5.使用chown root.root /var/www/a,来改变这个用户的home本身及以上的文件夹,如/var,/var/www,/var/www/a,同一时候让/var/www/a的全部文件夹的组写入权限没有了, chmod -R g-w ./,  

6. sftp登录情况记录在/var/log/auth.log中

7 使用 sftp工具来检測登录情况,假设能登录就说明配置成功,不能登录,请到/var/log/auth.log查看错误情况,通常是提示文件夹的mod或是owner不正确,这时就把这个提示文件夹改成 root.root反正不是当前用户即可了.

8. 创建多个用户来检測/var/ww/a/u1与/var/ww/a/u2之间的用户能否互相写入,能够话,就把u1使用chmod -R g-w ./u1这个方案来去掉组的写入权限,再使用 chmod -R o+w ./u1,这个命令来让拥有者有写入权限,别人仅仅能查看,

这里全部的sftp的组的用户都是设置home 是/var/www/a,由于chroot须要把当前的文件夹设置成非当前用户,也就是须要a文件夹登录用户不写入,而为了能使用就得,在a以下再建立一个文件夹,这样就无形中添加一个没太多作用的文件夹,如user1的home = /var/www/u1,为了使用,u1是root.root全部,然后须要再建立一个文件夹如www在u1下才干使用.

而user2的home=/var/www/u2,建立www在u2以下使用.这种方式尽管能够让user1看不到user2的文件夹,由于chroot时user1根文件夹就是/var/www/u1了.

而为了解决问题,另一个方式就是建立/var/www/a/u1,u2,u3,uxxxyy这种文件夹,再使用ln来设置链接,如 ln -f /var/www/u1 /home/user1/u1,设置/home/user1为root.root的owner,再在u1就chown user1.sftp,这样,就能够达到能够写入,也不会让url路径加一级没用的文件夹,可是这样在管理上感觉不太好,

linux配置sftp用户的chroot步骤(用户的sftp根文件夹)的更多相关文章

  1. Linux 配置 history 命令显示操作时间、用户和登录 IP

    一.在配置文件中(/etc/bashrc 或者 /etc/profile 或者~/.bash_profile 或者 ~/.bashrc)添加如下配置 #vim /etc/bashrc    // 进到 ...

  2. Linux 配置SFTP,配置用户访问权限

    之前我服务器是使用的Windows Server 2003,这段时间由于访问量变大我还是机智的换成Linux了,在搭建FTP的时候看到网上都是推荐vsftpd,不过我不推荐这个家伙,看官且看下文. 我 ...

  3. Linux用户和用户组管理 用户配置和管理的相关文件

    用户信息文件 /etc/passwd 这个文件中保存的就是系统中所有的用户及其对应的用户主要信息. 文件格式 :  第1字段 第2字段 第3字段 第4字段 第5字段 第6字段 第7字段 用户名称 密码 ...

  4. linux云计算集群架构学习笔记:用户管理和root用户密码重置

    RHEL7用户管理 本节所讲内容: 用户和组的相关配置文件 管理用户和组 RHEL7破解root密码 与windows 相比 LINUX中的用户和账号的作用是一样的. 都是基于用户对访问的资源做控制, ...

  5. Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)

    紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令     简介      ...

  6. linux增加用户并赋予权限/用户和用户组操作命令

    ===============ubuntu================================================== 在Ubuntu13.10下创建一个新的用户:Step1: ...

  7. jenkins配置记录(1)--添加用户权限

    前一阵子在线上部署了一套jenkins环境,作为线上代码发布平台使用.部署记录:http://www.cnblogs.com/kevingrace/p/5651427.html 下面重点记录下jenk ...

  8. VisualSVN Server仓库迁移到Linux(包含所有版本, 权限,用户信息)

    公司开发服务器从Windows换成CentOS,所以要把原服务都转移到Linux下,MySQL.SMB的迁移都很顺利,但是SVN的转移却遇到了些问题,花费了三天时间,走了不少弯路,现在总算解决了SVN ...

  9. linux系统学习笔记:无死角理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID

    一.基本概念 实际用户ID(RUID):用于标识一个系统中用户是谁,一般是在登录之后,就被唯一的确定,就是登录的用户的uid. 有效用户ID(EUID):用于系统决定用户对系统资源的权限,也就是说当用 ...

随机推荐

  1. PKCS7 的 attached 和 detached 方式的数字签名

    搜遍了整个网络,都没有详细的说明.只在一个页面上有介绍,还模棱两可的,地址是:http://docs.oracle.com/cd/E19398-01/820-1228/gfnmj/index.html ...

  2. Bootstrap-学习系列

    前言 首先在此多谢博友们在前几篇博文当中给与的支持和鼓励,以及在回复中提出的问题.意见和看法. 在此先声明一下,之前在下小菜所有的随笔文章中,只有前两篇关于Bootstrap的文章发表在了博客园的首页 ...

  3. CSS经验库

    1.兼容360浏览器 字体大小设置 开发中需要使用em单位 font-size: 0.83em; font-family: "Arial"; -webkit-text-size-a ...

  4. python-嵌套循环(Nested loop)-久久乘法表

    嵌套-久久乘法 for i in range(1,10): for j in range(1,10): print('{} × {} = {}'.format(i,j,i*j))最外层的循环依次将数值 ...

  5. python 2,3版本自动识别导入

     import sys if str(sys.version[0]) == "3":    from urllib.parse import quote_plus    from  ...

  6. VS创建、安装、调试 windows服务(windows service)

    1.创建 windows服务 项目   文件 -> 新建项目 -> 已安装的模板 -> Visual C# -> windows ,在右侧窗口选择"windows 服 ...

  7. Mac 學習系列之Python Challenge 11-20

    11.给你一个正整数列表 L, 如 L=[2,8,3,50], 输出L内全部数字的乘积末尾0的个数, 如例子L的结果为2.(提示:不要直接相乘,数字非常多,可能溢出) Answer: n_2 = 0 ...

  8. OpenJudge百炼习题解答(C++)--题4074:积水量

    题: 总时间限制: 1000ms       内存限制:65536kB 描写叙述 凹凸不平的地面每当下雨的时候总会积水.如果地面是一维的.每一块宽度都为1,高度是非负整数.那么能够用一个数组来表达一块 ...

  9. 单元测试时使用Ninject的小问题

    主要是Kernel没有被释放,Ninject的Kernel必须调用IDispose释放.也有可能是静态类型在VS单元测试时无法被释放. 先记录下这个问题

  10. springboot整合docker部署(两种构建Docker镜像方式)--2019-3-5转

    原文:https://www.cnblogs.com/shamo89/p/9201513.html 项目结构 package hello; import org.springframework.boo ...