我在mv /*
从目录运行时破坏了我的 Linux 系统。
我想限制使用/*
*
大多数作为某些命令的参数,例如rm
和mv
。
我想使用我的~/.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