如何使用受限shell来限制linux用户可以做什么

受限的shell限制了用户帐户在Linux上可以做什么。受限用户不能更改其目录,您可以控制他们可以访问哪些命令。下面介绍如何在Linux上设置受限shell。...

受限的shell限制了用户帐户在Linux上可以做什么。受限用户不能更改其目录,您可以控制他们可以访问哪些命令。下面介绍如何在Linux上设置受限shell。

受限炮弹

受限shell不是另一个shell。这是标准外壳的另一种模式。Bash、Korn、Fish和其他shell都可以在受限shell模式下启动。在本文中,我们将使用Bash,但相同的原则也适用于其他shell。

因为受限shell只是使用标准shell的另一种方式,所以它们很容易设置。没有什么可安装的,而且它们在Linux所在的任何地方都可用。

受限shell也可以应用于脚本。这就确保了如果它们被错误地写入,可能造成的任何损坏都被限制在它们的受限世界中,并且它们无法访问您的整个计算机。

不过,请注意,受限炮弹并不是完全可以逃脱的。有足够知识的人可以逃脱限制。它们非常适合为临时用户设置安全边界,但不要依赖受限shell来实现生产系统的任何真实安全。

相关:Bash、Zsh和其他Linux shell之间有什么区别?

限制重击

当您将Bash作为受限shell运行时,用户将从中删除一些功能。具体来说,用户不能:

  • 使用cd更改工作目录。
  • 更改$PATH、$SHELL、$BASHèENV或$ENV环境变量的值(但它们可以读取当前值)。
  • 读取或更改$SHELLOPTS shell环境选项。
  • 重定向命令的输出。
  • 调用需要路径来定位它们的命令。也就是说,不能发出包含一个或多个正斜杠“/”的命令。
  • 调用exec来替换shell的另一个进程。
  • 使用脚本中的任何限制功能。

您可以使用-r(restricted)选项来调用受限制的Bash shell。禁止尝试执行更改工作目录之类的简单任务。一条简短的消息告诉您cd受到限制。

bash -r cd Documents

如何使用受限shell来限制linux用户可以做什么

Bash shell还可以检测何时使用“rbash”而不是“Bash”调用它,这使得它也以受限shell的形式启动。这提供了一种为特定用户设置默认shell的方便方法,我们将很快使用它。

如果我们在Ubuntu上使用whereis命令来查找rbash文件,我们将看到可执行文件位于“usr/bin”目录中。手册页位于“/usr/share/man/man1”目录中。

将ls命令与-l(long)选项一起使用,可以发现rbash实际上是bash的符号链接。

whereis rbash ls -l /usr/bin/rbash

如何使用受限shell来限制linux用户可以做什么

在Manjaro和Fedora上,必须创建rbash符号链接。这适用于两种发行版:

whereis rbash sudo ln -s /bin/bash /bin/rbash whereis rbash

如何使用受限shell来限制linux用户可以做什么

第二次使用whereis命令时,它会在“/usr/bin”目录中找到rbash。

限制用户

让我们创建一个名为“Minnie”的新用户帐户。我们将使用useradd命令的-s(shell)选项将shell设置为受限shell。我们还将使用asswd命令设置帐户密码,然后为它们创建主文件夹。

mkdir命令中的-p(parents)标志告诉mkdir创建目标目录以及它需要创建的任何父目录。因此,通过创建“/home/minnie/bin”目录,我们可以同时创建“/home/minnie”目录。

sudo useradd minnie -s /bin/rbash sudo passwd minnie sudo mkdir -p /home/minnie/bin

如何使用受限shell来限制linux用户可以做什么

当敏妮登录时,她将在一个受限的外壳中运行。

cd

如何使用受限shell来限制linux用户可以做什么

她不能调用需要包含正斜杠“/”的命令:

/usr/bin/ping

如何使用受限shell来限制linux用户可以做什么

但是,她仍然可以执行在路径中找到的命令。

ping

如何使用受限shell来限制linux用户可以做什么

这不是你所期望的行为,当然也不是我们想要的。为了进一步加强限制,我们需要更改minnie的shell用于查找命令的路径。

收紧限制

当我们创建minnie的home目录“/home/minnie”时,我们还创建了一个“/home/minnie/bin”目录。这就是目录发挥作用的地方。

我们将编辑minnie的“.bash\u profile”文件,并将她的路径设置为仅指向该目录。我们还将限制minnie的“.bash\u profile”文件,以便只有root用户可以编辑它。这意味着没有其他用户可以编辑该文件并更改其路径。

sudo gedit /home/minnie/.bash_profile

如何使用受限shell来限制linux用户可以做什么

编辑现有“PATH=”或添加以下行:

PATH=$HOME/bin

如何使用受限shell来限制linux用户可以做什么

保存文件。我们将使用chown命令将文件的所有者更改为root,并使用chmod命令更改文件权限。只有根用户才能编辑文件。

sudo chown root:root /home/minnie/.bash_profile sudo chmod 755 /home/minnie/.bash_profile ls -l /home/minnie/.bash_profile

如何使用受限shell来限制linux用户可以做什么

下一次用户minnie登录时,她的路径指向一个文件夹。

如何使用受限shell来限制linux用户可以做什么

我们的受限用户minnie只能使用Bash内置的命令,比如echo、alias和logout。她甚至不能用ls!

ls

如何使用受限shell来限制linux用户可以做什么

如果我们希望他们能做任何有用的事情,我们就需要放松一下我们的勒索。我们将创建一些符号链接,从minnie的“bin”目录到我们希望minnie能够使用的命令。

sudo ln -s /bin/ls /home/minnie/bin sudo ln -s /bin/top /home/minnie/bin sudo ln -s /bin/uptime /home/minnie/bin sudo ln -s /bin/pinky /home/minnie/bin

如何使用受限shell来限制linux用户可以做什么

当minnie下次登录时,她会发现她可以使用Bash内置命令,以及那些链接到的命令。

ls pinky dave uptime

如何使用受限shell来限制linux用户可以做什么

限制现有用户

我们创建了一个新用户minnie。要更改现有用户的shell,可以使用usermod命令的-s(shell)选项。

sudo usermod -s /bin/rbash mary

如何使用受限shell来限制linux用户可以做什么

您可以在“/etc/passwd”文件中使用less命令快速查看将哪个shell设置为用户的默认shell。

less /etc/passwd

如何使用受限shell来限制linux用户可以做什么

我们可以看到,用户mary下次登录时将使用受限shell。

如何使用受限shell来限制linux用户可以做什么

记住将其他更改应用于$PATH环境变量,并设置希望用户mary能够执行的命令。

限制脚本

常规的、不受限制的用户可以启动在受限shell中执行的脚本。复制以下行并将其粘贴到编辑器中。将文件另存为“受限.sh“然后关闭编辑器。

#!/bin/bash # script starts in normal Bash shell echo "## In UNrestricted mode! ##" echo echo "Current directory: `pwd`" echo "Changing directory" cd /usr/share echo "Now in directory: `pwd`" echo "Changing to home directory" cd ~ echo "Now in directory: `pwd`" # Setting restricted mode set -r echo echo "## In restricted mode! ##" echo echo "Current directory: `pwd`" echo "Changing directory to /home/" cd /home echo "Still in directory: `pwd`" echo echo "Trying to start another shell" /bin/bash echo echo "Trying to redirect command output" ls -l $HOME > my_files.txt cat my_files.txt echo exit 0

我们需要使用chmod命令和+x(execute)标志来使脚本可执行。

chmod +x restricted.sh

如何使用受限shell来限制linux用户可以做什么

脚本的第一部分在普通shell中运行。

./restricted.sh

如何使用受限shell来限制linux用户可以做什么

脚本的第二部分是在受限shell中运行的“set-r”行之后的位。

如何使用受限shell来限制linux用户可以做什么

在脚本的受限制部分中,没有任何尝试的操作成功。

通过在第一行添加-r,可以使整个脚本在受限shell中运行:

!#/bin/bash -r

还记得胡迪尼吗

受限炮弹是有用的,但并非完全无误。一个足够熟练的用户可以逃脱他们。但如果使用得当,它们是为特定帐户建立一组限制的有用方法。

  • 发表于 2021-03-31 10:57
  • 阅读 ( 384 )
  • 分类:互联网

你可能感兴趣的文章

如何在windows10上获得linux bash shell

... 如何在windows10上安装linux bash shell ...

  • 发布于 2021-03-21 11:48
  • 阅读 ( 281 )

在linux中,“bash”是什么意思?

...在这篇短文中,我们将探讨Bash是什么,它做什么,以及如何开始使用它。 ...

  • 发布于 2021-03-28 13:14
  • 阅读 ( 449 )

哪个linux shell最好?比较了5种常见的贝壳

...你的计算机需要一个翻译层。这介于你告诉它做什么和它如何理解之间。 ...

  • 发布于 2021-03-30 18:45
  • 阅读 ( 366 )

systemd将改变linux主目录的工作方式

...一个分支,它的创建完全是为了避免使用systemd。 相关:如何在Linux系统上管理Systemd服务 $home目录 在Linux目录结构中,您所做的一切都驻留在“/home”目录中。您的数据文件、图像、音乐和整个个人目录树都存储在这个以您的用...

  • 发布于 2021-04-02 04:05
  • 阅读 ( 200 )

如何使用chsh在linux上更改默认shell

Bash不是唯一的Linux shell。很容易尝试其他的shell,比如非常流行的Zsh。找到一个您喜欢的shell后,使用chsh命令将其设置为默认shell。我们会教你怎么做。 为什么贝壳很重要 shell位于您和操作系统之间。它在终端窗口内提供环境...

  • 发布于 2021-04-02 06:04
  • 阅读 ( 334 )

如何在linux上的bash中设置环境变量

Linux上有多种类型的环境变量。了解如何查看它们,为本地和远程登录创建它们,并使它们在重新启动后仍然有效。 环境变量的工作原理 启动终端窗口及其内部的shell时,会引用一组变量,以确保shell配置正确。这些变量还确...

  • 发布于 2021-04-02 06:44
  • 阅读 ( 218 )

如何在linux中向$path添加目录

...但这并没有什么不好的地方。我们将解释它的作用,以及如何调整它。 什么是$path,它是如何工作的($path on linux, and how does it work)? 当您在终端窗口中键入一个命令并按Enter键时,您甚至在执行命令之前就开始了大量的活动。 B...

  • 发布于 2021-04-02 14:04
  • 阅读 ( 184 )

如何在linux上使用at和batch来调度命令

...只想在系统有空闲资源时运行进程,可以使用批处理。 如何安排linux作业 cron守护进程维护它在特定时间运行的作业列表。这些任务和程序按预定时间在后台运行。这为您安排需要重复的任务提供了极大的灵活性。无论您需要...

  • 发布于 2021-04-02 18:33
  • 阅读 ( 184 )

linux下如何控制sudo访问

...念在Linux中意义深远。很容易看出,Linux中的文件权限是如何成为用户特权和权限的支柱之一的。如果您拥有一个文件或目录(一种特殊类型的文件),您可以对其执行您喜欢的操作,包括编辑、重命名、移动和删除它。您还可...

  • 发布于 2021-04-02 22:30
  • 阅读 ( 157 )

如何在linux上使用chroot命令

...法是安装足够的操作系统,以完成所需的任务。通过查看如何使用chroot环境来回答“what is required”问题。 一些常见用途是: 软件开发和产品验证。开发人员编写软件,产品验证团队(PV)对其进行测试。有时PV发现的问题无法...

  • 发布于 2021-04-03 03:19
  • 阅读 ( 193 )
uz59146
uz59146

0 篇文章

相关推荐