对于用户脚本,通常的建议是将其目录附加到$PATH
in one's .profile
:
PATH="$PATH:$HOME/.myscripts" # or .bin or whatever
显然这比前置它更安全:PATH="$HOME/.myscripts:$PATH"
但以安全的方式进行意味着您的脚本将被同名的系统包击败。例如,如果您将脚本命名为mount
或,则当您尝试使用它时会发生意外的情况。import
我知道很多人会将此视为一个功能,而不是一个错误。但就我个人而言,我希望能够将我的脚本命名为任何我喜欢的名称,包括import
,并让它们毫无意外地运行。
据我了解,前置的风险是:
- 恶意脚本可以
ls
在没有 root 访问权限的情况下重写等(但这在仅从标准发行版存储库安装软件时真的是一个问题吗?) - 系统包可能会调用您的用户脚本而不是其他系统包(但
mount
实际上,用户包是否曾经调用或没有完整路径的其他内容?似乎是一个坏主意)
.profile
在单用户系统上添加 via 的安全隐患究竟有多严重?
答案1
我认为你在这里击中了要害:
当你尝试使用它时会发生意想不到的事情
如果您使用标准命令创建一个名为 squats 的可执行文件,那么您就是在自找麻烦。但这是您的计算机(我认为),因此最终您可以用它做您喜欢的事情,最佳实践或其他方式。
实现您正在寻找的内容的一种更安全的方法是以附加方式设置 PATH,为您的脚本指定一个“安全”名称(例如jortstek_mount
),然后沿着这些行向您的 shell 配置文件添加别名或简单函数
mount() {
command jortstek_mount "$@"
}