您有用户登录到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系统上严格限制用户的方法。这是一种非常方便的方法,可以控制用户可以执行什么命令,以及如何在目录结构中移动。
注意:现在服务器报价出炉,价格很低
1、腾讯云:限时 2860 元无门槛优惠券:点击一键领取。
2、腾讯云最新优惠活动,3年/5年服务器限时抢购:点击前往。
3、阿里云:限时 2000 元无门槛优惠券:点击一键领取。