如何将别名传递给 sudo?

如何将别名传递给 sudo?

我曾尝试将我的别名放入~/.bash_profile、、和~/.bashrc中。/etc/profile/etc/bashrc

我仍然无法执行以下操作:

alias zf2="php public/index.php"

然后执行:

sudo zf2 orm:info

问题似乎是我无法使用 visudo-- 将别名指定为命令,这会导致语法错误。

所以我无法拨打电话:

sudo zf2 orm:info

但是,我能够在 /usr/share/scripts/zf2 创建一个脚本,其中包含:

#!/bin/bash

alias zf2="php public/index.php"
zf2 $1

并将此脚本作为命令添加到 visudo 中。当此脚本位于最终用户的 PATH 中时,我能够执行

zf2 orm:info

我有不同的别名zf2需要向最终用户公开。我更愿意维护别名,而不是一组脚本。

答案1

sudo讽刺的是,解决方案是通过别名拨打电话。

alias sd="sudo "

注意:虽然不推荐,但您可以命名别名sudoalias sudo="sudo "

Bash 参考手册(别名)

如果别名值的最后一个字符是空格,那么还会检查别名后面的下一个命令字是否进行别名扩展。

相关内容