限制Shell,正如Rsh和Scponly让系统管理员限制Linux用户可以做哪些操作,你可以创建用户,将被允许通过Scp复制文件,但不会被允许登录到系统的命令行。这是非常重要的安全功能,应考虑每个系统管理员用户,以防止未经授权的活动,例如通过SSH。

如果你有一些在线存储,用于上传超过Scp/ SSH或rsync从远程主机的备份数据,那么,强烈建议使用限制弹这些传入的连接,并确保即使攻击者得到了用户名/密码(或密钥),那么他(或她)将无法打入您的系统。

Scponly是极其简单的受限Shell,用户帐户具有Scponly的二进制的壳将无法做任何事情将数据从远程主机通过Scp协议或通过rsync/ Scp的除外。 RSSH提供多一点的功能:您可以限制用户使用选定的协议,如Scp,SFTP,rsync的,CVS或Rdist的Chroot环境或不。

安装:

我更喜欢使用yum或aptitude来安装这类软件像RSSH或Scponly的,最快的方法就是尝试以下其中一项命令,根据您的需要:

  1. apt-get install rssh
  2. apt-get install Scponly
  3. yum install rssh
  4. yum install Scponly

如果有问题,在你的Linux发行版的信息库中找到所需的受限Shell,然后你应该下载源代码,并做一些。/ configure时,和make install。这里是链接:latest rssh .tar.gz, latest Scponly .tgz.

配置:

Scponly的,不需要任何配置,开箱,所以你就应该将其设置为一个Shell的用户帐户。下面是一些例子。

用Scponly创建一个新的账号:

  1. useradd -s /usr/sbin/Scponly user1

用该用户账号用rssh作为Shell:

  1. usermod -s /usr/sbin/rssh user2

/usr/sbin/Scponly是Scponly的二进制可执行文件。

RSSH文本配置文件通常存储在/etc/rssh.conf中的。您可以设置每个用户的设置或配置全局限制使用RSSH所有账目。默认rssh.conf文件有很好的注释,所以不应该有任何问题,你需要配置RSSH。在同一时间,在这里有一些例子。

如果你想限制所有用户Scp和rsync的才应该取消注释在rssh.conf行,象下面这样:

  1. allowScp
  2. #allowsftp
  3. #allowcvs
  4. #allowrdist
  5. allowrsync

现在来每个用户的例子。允许用户彼得是仅使用Scp协议,对以下符合在rssh.conf将做到这一点:

  1. user=sbk:022:00001:

允许用户ann只可以Scp和rsync:

  1. user=sbk:022:10001:

正如你可以看到每个用户设置启用的协议指定为11000(Scp,SFTP),11111(Scp,SFTP,CVS,rdist的,rsync等)或00000(无协议启用)。在上面的例子中指定的umask022。

测试:

让我们假设你已经创建user1和只有Scp和rsync的使用RSSH启用。尝试访问user1的帐号下的SSH服务器通过将结束与下面的输出:

  1. artiomix$ ssh user1@1.2.3.4
  2. user1@1.2.3.4's password:
  3. This account is restricted by rssh.
  4. Allowed commands: Scp rsync
  5. If you believe this is in error, please contact your system administrator.
  6. Connection to 1.2.3.4 closed.

与此同时Scp过户工作没有问题:

  1. artiomix$ Scp -P 23451 /etc/test.file user1@1.2.3.4:/tmp
  2. user1@1.2.3.4's password:
  3. test.file       100%  983     1.0KB/s   00:00

进一步阅读:

Rssh支持Chroot环境对于Rsync、Rsync和其他的传输协议。这意味着你不仅可以限制用户通过命令他们也可以使用他们到达的文件系统。例如,User1可以可以chroot/chroot_user1,所以它不能被用来复制的东西从/etc目录的服务器或/var/ www下面。这里有一个Chroot在RSSH中是不错的手册。

原文出处:http://www.linuxscrew.com/2012/07/05/linux-restricted-Shells-rssh-and-Scponly/

http://os.51cto.com/art/201311/417631.htm

Linux下限制Shell:Rssh和Scponly的更多相关文章

  1. linux下的shell运算(加、减、乘、除)

    linux下的shell运算(加.减.乘.除) 标签: linuxshell运算加减乘除 2014-03-12 16:25 15127人阅读 评论(0) 收藏 举报 分类: linux(17) ((i ...

  2. [转] 关于linux下通过shell命令(自动)修改用户密码

    关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自 ...

  3. linux下的shell和脚本

    1.各种Unix shell linux下的shell基本是从unix环境中的shell发展而来,贴一下wiki:其中我们常用的,可归类为Bourne Shell(/usr/bin/sh或/bin/s ...

  4. Linux下添加shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...

  5. Linux下使Shell 命令脱离终端在后台运行

    --Linux下使Shell 命令脱离终端在后台运行------------------------------------2014/02/14你是否遇到过这样的情况:从终端软件登录远程的Linux主 ...

  6. linux下实现shell脚本自动连接mongodb数据库并创建索引

    在linux下创建shell脚本

  7. Linux下的shell与make

    Linux下的shell与make 一.shell 1.1 什么是shell ● 用户与Linux的接口 ● 命令解释器 ● 支持多用户 ● 支持复杂的编程语言 ● Shell有很多种,如:csh,t ...

  8. linux下的shell操作mysql

    (1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...

  9. linux下的shell运算(加、减、乘、除

    linux下的shell运算(加.减.乘.除 摘自:https://blog.csdn.net/hxpjava1/article/details/80719112 2018年06月17日 16:03: ...

  10. 2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出

    有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccc ...

随机推荐

  1. Android新增API之AudioEffect中文API与应用实例

    在Android2.3中增加了对音频混响的支持,这些API包含在android.media.audiofx包中. 一.概述 AudioEffect是android audio framework(an ...

  2. C#根据域名查询IP(CMD命令参数输入或者启动程序后再输入查询)

    有时因为需要,希望知道域名的IP,那用C#怎么实现呢?以下是实现代码 using System; using System.Collections.Generic; using System.Linq ...

  3. 简易视频播放器2 (基于Qt、opencv)

    因项目需要,需要实现一个对以保存的监测视频快速查看功能. 查询网上一些资料,初步简易的实现了一下. 实际效果图: 该程序基于Qt5.4,opencv248,开发环境为win8.1 结构为: video ...

  4. C# 课堂总结2-数据类型及转换方式

    一.输入输出语句 Console.ReadLine(); 会等待直到用户按下回车,一次读入一行Console.ReadKey(); 则是等待用户按下任意键,一次读入一个字符. 二.数据类型 主要掌握: ...

  5. 深度优先搜索(DFS)递归形式改为非递归形式

    DFS将递归改为非递归这个方法的需求来自于一道三维积木组合的题目,还在苦苦调试中,暂且不提. 普通的认识对于递归向非递归的转化无非是使用栈,但是结合到深度搜索如何将栈很好利用,如何很好保存现场,都不是 ...

  6. 闲扯 Javascript 03 时钟和QQ延时框

    时钟 : 所用到得图片  : 开启定时器 setInterval  间隔型 setTimeout  延时型 停止定时器 clearInterval clearTimeout 效果思路 获取系统时间 D ...

  7. 区间dp-zoj3541-The Last Puzzle

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3541 题目大意: 在数轴上,有n个按钮,位置递增为d1,d2, ...

  8. 怎样实现多文件上传 在iOS开发中

    NSURL* url = [NSURL URLWithString:@"xxx"]; ASIFormDataRequest* request = [ASIFormDataReque ...

  9. Controller@实现Controller的两种形式

    实现Controller的两种形式 形式1:仅仅实现IController接口,自定义Controller对Request的实现.形式2:在实现IController接口以后,继承Controller ...

  10. Java进阶01 String类

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 作者:Vamei 出处:http://www.cnblogs.com ...