限制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. 如何自学 Python(干货合集)

    http://wenku.baidu.com/view/5108f974192e45361066f583.html

  2. 联想K82------智能电视行业的野蛮入侵者

    智能电视行业近年来“渐入佳境”,一方面得力于智能手机.平板电脑的普及让数码产品的智能化趋势深入人心,智能电视自然成了IT行业的下一个增长点:另一方面则得力于部分企业敢于第一个吃螃蟹,通过他们的创新和开 ...

  3. Android 传感器开发

    如今的智能手机都配备了各种各样的传感器,本文将介绍Android SDK提供的传感器开发接口,并通过简单实例展示怎样使用这些接口. Andriod SDK传感器相关类 android SDK提供的与传 ...

  4. Java For循环效率试验

    非常奇怪的结果! ..! 测试方法如以下 public class Main { public static void main(String[] args){ long ti = System.cu ...

  5. Android 锁屏状态/锁屏密码等相关

    Android 锁屏状态/锁屏密码等相关 开始是在设备管理器方面找方法,但一直不行,可能在公司系统组同事的帮助下,知道KeyguardManager这个类 /** * 当前系统锁屏是否有密码 * @p ...

  6. Robot Framework与Web界面自动化测试学习笔记:如何判断单选框的选中状态

    单选按钮是个常见的html元素,在网页中往往提供一组单选按钮来做选项. 这样在自动化测试用例中需要判断当前选中的按钮是否与预期的一直. 可以这样来操作: ${value}    Get Element ...

  7. 基于visual Studio2013解决C语言竞赛题之1009补数

         题目 解决代码及点评 /************************************************************************/ ...

  8. 基于visual Studio2013解决C语言竞赛题之0806平均分

     题目

  9. 求 n! (大数问题)----------HDOJ1042

    以下只YY算法,c++实现,java大神绕道..... (1)位数的估计     显然对于大数(比如1000的阶乘)的阶乘我们找不到一个数据类型存放这个数,是在太大啦....     那么现在来估计一 ...

  10. 将表中null值替换成想要的值、查询某一列值为null

    用到ISNULL()函数 例如:SELECT 其他列名,ISNULL(列名,替换值)as 重命名  from 表名 (简单参考:http://www.cnblogs.com/netsa/archive ...