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. 关于华为x1 7.0无法从eclipse发布的更新as发布的apk

    目前只在华为x1 7.0手机上发现这个问题,坑大了. MediaPad 10 FHD 华为这款可以安装. HUAWEI G525-U00 华为这款也可以安装. 目前公司就这几款华为手机了. 原因是 在 ...

  2. 【jquery的setTimeOut定时器使用】

    目的:用户提交表单,一直触发校验事件. 1.效果: 2.代码: <!-- 去掉必填提示 --> <script type="text/javascript"> ...

  3. jsp版本的环境变量集合

    System.out.println("Protocol: " + request.getProtocol());System.out.println("Scheme: ...

  4. MongoDB - 内嵌角色

    数据库用户角色(每个数据库都有的角色)   角色名 说明 read 对non-system集合的读取权限,以及以下system集合的读取权限:system.indexes,system.js,syst ...

  5. STL容器分析--map

    映射和多重映射基于某一类型Key的键集的存在,提供对T类型的数据进行快速和高效的检索.

  6. 自己动手写CPU之第五阶段(2)——OpenMIPS对数据相关问题的解决措施

    将陆续上传本人写的新书<自己动手写CPU>(尚未出版).今天是第16篇.我尽量每周四篇 5.2 OpenMIPS对数据相关问题的解决措施 OpenMIPS处理器採用数据前推的方法来解决流水 ...

  7. 参数数组(params)的用法

    使用参数数组的注意事项: 1. 只能在一维数组上使用params关键字. 2. 不能重载一个只基于params关键字的方法.params关键字不构成方法的签名的一部分. 如: //编译时错误:重复访问 ...

  8. 从12306网站新验证码看Web验证码设计与破解

    2015年3月16日,铁路官方购票网站12306又出新招,在登录界面推出了全新的验证方式,用户在填写好登录名和密码之后,还要准确的选取图片验证码才能登陆成功.据悉,12306验证码改版后,目前所有抢票 ...

  9. PHP的CURLOPT_POSTFIELDS参数使用数组和字符串的区别

    手册上解释: CURLOPT_POSTFIELDS  全部数据使用HTTP协议中的"POST"操作来发送.要发送文件,在文件名前面加上@前缀并使用完整路径.这个参数可以通过urle ...

  10. Tensorflow - Tutorial (7) : 利用 RNN/LSTM 进行手写数字识别

    1. 经常使用类 class tf.contrib.rnn.BasicLSTMCell BasicLSTMCell 是最简单的一个LSTM类.没有实现clipping,projection layer ...