Permissions
使用 sudo 拒絕權限
我的 .bashrc 文件中有一個別名,它執行一個可執行的 python 文件,如下所示:
alias my-command="sudo -u apache /path/to/file.py"
當我執行時
my-command
,它會提示我輸入 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
這個問題與相對路徑有關。
my-command
我正在從我的主目錄執行別名。我的 python 腳本正在寫入相對於工作目錄的文件。當我直接執行命令(沒有別名)時,我是從 python 腳本的位置執行它,所以那是工作目錄,所以腳本有權寫入文件。因此,當我從正確的目錄執行 alias 命令時,一切都按預期工作。
如果您希望該別名起作用,請確保使用者和組具有執行該文件的正確權限 - 您還需要確保同一使用者正在嘗試執行別名,例如您不想成為 foo使用者和您的 .bashrc 用於 bar 使用者。一旦我設置了對我有用的正確權限,我就遇到了這個問題