bash/zsh 中是否有黑名单功能,可以防止指定的命令等被别名覆盖?
具体来说 - 是否可以在 conf 文件中设置系统级内容,从而可以防止所有帐户对指定的命令进行别名化。
答案1
我不知道有什么方法可以阻止用户使用命令别名。我想你的意思是bash 的别名函数或其他外壳。
你可能会尝试修补 bash,将某些命令列入黑名单,以防止它们被别名化。但这样一来,用户就可以编写一个shell 函数或者使用 shell 脚本,或者 ac 程序,或者完全使用另一个 shell。
我认为可以肯定地说,尝试将某些命令列入黑名单以防止被别名实际上是不可能的。
答案2
如果您的目的是确保诸如此类的命令的安全性sudo
,那么您应该重新考虑这是否有用。
如果攻击者能够破坏你的 shell 配置(添加有趣的别名),那么我想说你已经完蛋了。
[...]
一些替代方案包括:
- 原始的贝壳
/bin/zsh -f
- 或使用
command sudo
但是如果攻击者拥有你的 shell 配置,就意味着它可以在你的帐户中执行任意代码……