linux 赋予指定用户权限_「原创」如何在共享使用的Linux系统中限制其他用户的使用权限...

我们在使用linux系统的时候,有可能会有这样的需求,只允许某些用户执行指定的任务和指定的命令。这位用户在未经你同意时候,不能更改环境变量或者路径、不能访问除主目录以外的其他目录,同时也不能切换到其他用户。这位用户只能执行系统管理员分配指定的一些命令。这在多人共享使用的linux系统中非常有用。

如果你有这样的需求能实现么?当然!一个小兵经过实验,Restricted Shell可以很好的实现这个目的。使用Restricted Shell,我们可以很容易地限制其他用户对Linux系统的访问。一旦将某位用户设置为Restricted Shell的模式,则只允许他们执行有限的命令。在这篇简短的小文章中,一个小兵将讨论如何在Linux中实现这一点。

我上在CentOS7服务器上测试了这个功能,它在大多数linux版本上都可以正常使用。

什么是Restricted Shell ?

首先,我想需要知道什么是Restricted Shell。它不像Bash、Korn shell等一样是个单独的shell。需要使用“rbash”、“–restricted”、“-r”选项启动使之成为restricted shell。例如,Bourne shell可以用命令bsh-r作为restricted shell启动,Korn shell可以用命令ksh-r启动。

启用restricted shell模式后,除了限制该用户执行大多数命令和更改当前工作目录之外,还将对用户施加以下限制:

  • 它不允许该用户执行cd命令。用户只能停留在当前工作目录中。
  • 它不允许该用户修改$PATH、$SHELL、$BASH_E、$ENV等环境变量的值。
  • 它不允许该用户执行包含/(斜杠)字符的程序。例如,不能运行/usr/bin/uname或./uname命令。但是,您可以执行uname命令。换句话说,只允许在当前路径中运行命令。
  • 不能使用“>”、“>|”、“<>”、“>&”、“&>”和“>>”重定向运算符进行重定向输出。
  • 它不允许该用户在脚本中脱离restricted shell模式。
  • 它不允许该用户使用“set+r”或“set+o restricted”来关闭restricted shell模式。

使用Restricted ShellShell的具体步骤

首先,通过以下命令(有root权限才能使用)从Bash创建一个名为rbash的符号链接,如下所示。

# ln -s /bin/bash /bin/rbash

接下来,创建一个名为“yigexiaobing”的用户,将rbash作为其默认登录shell。

# useradd yigexiaobing -s /bin/rbash

为该新用户yigexiaobing设置好密码

# passwd yigexiaobing

在主文件夹(home)中为该新用户创建一个bin目录。

# mkdir /home/ yigexiaobing /bin

现在,我来设置该新用户(yigexiaobing)可以运行哪些命令。我将让该用户只能运行“ls”、“mkdir”和“ping”这些基本命令(是不是有点太苛刻了!)。当然,你可以指定任何你选择的命令。

按照如下的命令去设置:

# ln -s /bin/ls /home/ yigexiaobing /bin/ls

# ln -s /bin/mkdir /home/ yigexiaobing /bin/mkdir

# ln -s /bin/ping /home/ yigexiaobing /bin/ping

到这里,大家应该明白了为什么我在前面的步骤中创建了“bin”目录。除上述三个我指定的命令外,用户不能运行任何命令。

接下来,我还要通过以下设置防止用户修改.bash_配置文件。

# chown root. /home/ yigexiaobing /.bash_profile

# chmod 755 /home/ yigexiaobing /.bash_profile

通过vi工具编辑 /home/ yigexiaobing /.bash_profile 文件,按照如下图方式修改PATH 变量:

# vi /home/ yigexiaobing /.bash_profile

2cac55e5209cc7173eae5c3e764de899.png

一定要按照我上边的图例进行修改

按下esc按键,然后打入:wq保存以上的修改。

现在,当该用户登录时,restricted shell(rbash)将作为默认登录shell运行,并读取.bash_profile文件,该配置文件将PATH设置为$HOME/bin,这样该登陆用户将只能运行ls、mkdir和ping命令。而且不允许该用户更改路径,同时不允许该用户更改配置环境以绕过限制。

这时候,当用户使用未经我们允许的命令进行操作时,系统会给出如下的警告:

-rbash: file.txt: restricted: cannot redirect output

好了,以上就是在Linux系统中限制其他用户的使用权限的具体步骤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值