帮助中心

立即注册 咨询客服

当前位置:首页 > 帮助中心> 如何使用Restricted Shell来限制用户对Linux系统的访问

如何使用Restricted Shell来限制用户对Linux系统的访问

发布时间:2020年02月21日 10:04:19    来源: A5互联

您有用户登录到Linux系统的服务器。这些用户可能没有sudo权限,但是他们很可能可以自由的查看系统目录中的大部分内容。虽然这些用户可能无法编辑绝大多数配置文件,但您依然不希望那些用户查看它们。对于您的客户端数据也是如此,您更希望锁定它。

如何防止用户访问您的目录层次结构,而不必调整系统上每个文件和文件夹的权限,因为这可能会导致一些意外的问题。

这里有一种方法是使用一种名为Restricted Bash (rbash)的工具。使用rbash可以防止用户:

1、使用cd命令

2、修改$ PATH,$ SHELL,$ BASH_ENV或$ ENV的值

3、执行包含/的程序

4、使用>,> |,<>,>&,&>和>>重定向输出

5、退出脚本内受限制的模式

6、关闭限制模式

一、演示准备工作:

正在运行的Linux实例

具有sudo特权的用户

二、如何创建测试用户

我们将在系统上创建一个测试用户vega。我们希望创建的用户的shell是rbash。这是通过命令完成的:

sudo useradd -m vega -s /bin/rbash

然后,您需要使用以下命令为新用户提供密码:

sudo passwd vega

出现提示时,键入并验证新用户的密码。

三、如何建立目录

现在,我们将为新用户创建一个目录,该目录将容纳允许该用户运行的唯一命令。例如,假设我们要允许用户发出命令mkdir,ls和ssh。首先,使用命令创建目录:

sudo mkdir /home/vega/bin

接下来,我们将为用户可以运行的命令(同样是mkdir,ls和ssh)创建指向新创建目录的链接。为此,发出命令:

sudo ln -s /bin/mkdir /home/vega/bin

sudo ln -s /bin/ls /home/vega/bin

sudo ln -s /bin/ssh /home/vega/bin

四、如何防止个人资料修改

现在,我们需要确保新用户无法修改.profile文件。在我们实际更改.profile的权限和所有权之前,您需要以该用户身份登录,以便创建文件。登录后,以具有sudo特权的用户身份注销并重新登录。

使用以下命令更改文件的所有权和权限:

sudo chown root. /home/vega/.profile

sudo chmod 755 /home/vega/.profile

五、测试一下

使用vega帐户登录到服务器并发出命令:

cd /

您应被告知您被限制使用cd命令(图A)。

您可以尝试使用任何您喜欢的命令,但只有mkdir,ls和ssh适用于vega用户。

这就是使用rbash在Linux系统上严格限制用户的方法。这是一种非常方便的方法,可以控制用户可以执行什么命令,以及如何在目录结构中移动。