如何限制 root 用户使用运行某些命令

如何限制 root 用户使用运行某些命令

我在mv /*从目录运行时破坏了我的 Linux 系统。

我想限制使用/* *大多数作为某些命令的参数,例如rmmv

我想使用我的~/.bashrc.我知道 bash shell 受到限制rbash,但我对此不太满意,因为我已经更改了当前 root 的默认 shell。

如果我要捕获参数$0$1请从命令中编写一个if条件语句,该语句将执行一些步骤并警告用户。如果我将脚本放入我的文件中,实施会起作用吗~/.bashrc?或者我缺少其他更好的方法吗?

我需要有人指出我的写作方向。

我在这里先向您的帮助表示感谢。

答案1

在Unix中,root是无所不能的。正如 Unix 为用户提供了足够的绳子来射断他们的脚一样,也可以用root软管冲洗整个系统。

仅有的解决办法是要格外小心。习惯于阅读并检查每个命令两次,特别是如果可能具有破坏性的话。每当你弄乱某些系统部分时,请仔细考虑,也许可以在 Docker 等环境下设置一个测试环境来尝试一些东西。手边准备好安装介质,并知道如何使用它们进行救援。保留备份。将重要的内容存储在版本控制系统中,以便可以回退到旧版本,或者在紧急情况下获取远程副本。

答案2

我真的感谢你的建议@Nasir Riley 以及所有其他对这个问题做出贡献的人。我学到了很多。

我偶然发现了一篇限制使用 * 或 /* 的帖子 set -f noglobber

我还在我的系统上配置了 Saferm,并且大多数情况下我只使用 sudo

但我有一个这set -f noglober在 zsh 上不起作用

答案3

使用须藤代替,然后您可以在其中设置您想要的权限苏多尔斯文件。

如果您不想每次使用 sudo 命令时都输入密码,(我知道你不这样做,因为在你的评论中你说,“我只在需要广泛访问时以 root 身份登录,sudo 总是在短时间内要求输入密码”)然后将 NOPASSWD 添加到 sudo 行:即,

## Same thing without a password
%wheel  ALL=(ALL)       NOPASSWD: ALL

相关内容