linux配置sftp用户的chroot步骤(用户的sftp根文件夹)
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根文件夹)的更多相关文章
- Linux 配置 history 命令显示操作时间、用户和登录 IP
一.在配置文件中(/etc/bashrc 或者 /etc/profile 或者~/.bash_profile 或者 ~/.bashrc)添加如下配置 #vim /etc/bashrc // 进到 ...
- Linux 配置SFTP,配置用户访问权限
之前我服务器是使用的Windows Server 2003,这段时间由于访问量变大我还是机智的换成Linux了,在搭建FTP的时候看到网上都是推荐vsftpd,不过我不推荐这个家伙,看官且看下文. 我 ...
- Linux用户和用户组管理 用户配置和管理的相关文件
用户信息文件 /etc/passwd 这个文件中保存的就是系统中所有的用户及其对应的用户主要信息. 文件格式 : 第1字段 第2字段 第3字段 第4字段 第5字段 第6字段 第7字段 用户名称 密码 ...
- linux云计算集群架构学习笔记:用户管理和root用户密码重置
RHEL7用户管理 本节所讲内容: 用户和组的相关配置文件 管理用户和组 RHEL7破解root密码 与windows 相比 LINUX中的用户和账号的作用是一样的. 都是基于用户对访问的资源做控制, ...
- Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)
紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令 简介 ...
- linux增加用户并赋予权限/用户和用户组操作命令
===============ubuntu================================================== 在Ubuntu13.10下创建一个新的用户:Step1: ...
- jenkins配置记录(1)--添加用户权限
前一阵子在线上部署了一套jenkins环境,作为线上代码发布平台使用.部署记录:http://www.cnblogs.com/kevingrace/p/5651427.html 下面重点记录下jenk ...
- VisualSVN Server仓库迁移到Linux(包含所有版本, 权限,用户信息)
公司开发服务器从Windows换成CentOS,所以要把原服务都转移到Linux下,MySQL.SMB的迁移都很顺利,但是SVN的转移却遇到了些问题,花费了三天时间,走了不少弯路,现在总算解决了SVN ...
- linux系统学习笔记:无死角理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID
一.基本概念 实际用户ID(RUID):用于标识一个系统中用户是谁,一般是在登录之后,就被唯一的确定,就是登录的用户的uid. 有效用户ID(EUID):用于系统决定用户对系统资源的权限,也就是说当用 ...
随机推荐
- 读-《c++设计新思维-泛型编程与设计模式之应用》经典记录(英文书名:《modern c++ design》)
1.以设计为目标的程序库都必须帮助使用者完毕静止的设计.以实现使用者自己的constraints,而不是实现预先定义好的constraints. 2.Anything that can be done ...
- Shell 传递参数(转)
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以下实例我们向脚本传递三 ...
- 使用ipmitool 命令添加IPMI 界面的SMTP邮件服务器地址
目前要通过ipmitool工具在IPMI的界面上添加邮件服务器地址,该脚本如下 SMTP.sh #!/bin/bash ipmitool raw 0x32 0x78 0x01 0x01 0x00 0x ...
- MiniHttpServer
Mini HTTP Server which can be embed in EXE, Writen in C#(.net framework 2.0). HTTP request dispatch/ ...
- Linux的定时器
在服务端程序设计中,与时间有关的常见任务有: 获取当前时间,计算时间间隔: 定时操作,比如在预定的时间执行一项任务,或者在一段延时之后执行一项任务. Linux 时间函数 Linux 的计时函数,用于 ...
- 基于easyui fom分组插件
本插件适用于表单按属性分组,可以动态设置显示的列数,每一个表单宽度,表单类型,以及对齐.不同panel之间的表单也是对齐的. 效果: 依赖:jquery ,easyui, 实现过程:整个控件一个pan ...
- Linux-Vim常用操作
vim wangyunpeng.txt 创建一个wangyunpeng.txt文件 输入"i"进入插入模式 显示行号,需要在命令模式下输入":se nu" cp ...
- osgi应用使用桥接的方式打成war包部署在websphere上时遇到的与cxf相关的问题
原来我们的程序都是基于Equinox架构的,可是后面由于要实现打成war包在中间件中部署的需求,使用了eclipse官方提供的桥接方式实现. 桥接的部分后面有时间了我专门写一个文章来说,不明确的临时请 ...
- Ubuntu13.04使用Jlink和ST-Link V2烧写STM32F1x和STM32F4x
近期做研究openpilot和crazyflie2.0,都须要在Linux进行代码的编写和烧录,所以研究了下Linux下如何使用Jlink,还有开源的支持多个仿真器的openocd,可是困难重重.总是 ...
- HTTPSConnectionPool(host='xxxxx', port=443): Max retries exceeded with url:xxxxxxxx (Caused by NewConnectionError('<urllib3.connect,Max retries exceeded with ,(Caused by NewConnectionError
HTTPSConnectionPool(host='f6ws-sha8re-o88k.s3.ama66zaws.com', port=443): Max retries exceeded with u ...