权限被拒绝使用sudo

我的.bashrc文件中有一个别名,它运行一个可执行的python文件,如下所示:

alias my-command="sudo -u apache /path/to/file.py" 

当我运行my-command它会提示input我的sudo密码,然后运行.py文件。

然而,python脚本写入一个日志文件,只有Apache有权写入。 当我运行my-command它说,当它试图写入到该文件的Permission denied

当我直接运行sudo -u apache /path/to/file.py脚本运行正常。

我在这里做错了什么? 将我的别名更改为:

 my-command="/path/to/file.py" 

然后运行:

 sudo -u apache my-command 

这个问题与相对path有关。 我从我的主目录运行别名my-command 。 我的python脚本正在写入一个相对于工作目录的文件。 当我直接运行命令(没有别名)时,我从python脚本的位置运行它,所以这是工作目录,所以脚本有权写入文件。

所以,当我从适当的目录运行别名命令一切正常工作。

如果你想让这个别名工作,请确保用户和组具有正确的权限来运行该文件 – 你也要确保同一个用户试图运行别名,例如你不想成为foo用户和您的.bashrc是酒吧用户。 一旦我设置了正确的权限,我就遇到了这个问题