Car*_*uss 2 bash shell alias function
我看过的所有文档似乎都表明在别名和 shell 函数中,名称不能包含空格。
我想做的是让其他管理员(作为 root)更难针对我们的 Pass 实现运行命令(此处的文档:https: //www.passwordstore.org/)。这仍然是可能的,但我希望将“pass rm $anyValue TheyInput”之类的命令并将其别名为“echo '你不能这样做'”。当然,他们是管理员,他们可以更改别名,但这有望防止意外删除密码。
这在 BASH 中可能吗?这些都将位于 RHEL 或 Centos 机器上。
给整个命令加上参数的别名是不可能的bash(如果在任何 UNIX shell 中都可能的话)。
您可以做的是创建一个pass函数来捕获所有不需要的参数包并将所有其他参数包转发到command pass:
pass()
{
if [ rm = "$1" ]; then
>&2 printf '%s\n' "You can't do that"
return 1
fi
#more checks... ?
#...
#forward the sanitized argument pack into the actual pass binary/script
command pass "$@"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1888 次 |
| 最近记录: |