Root
如何以非 root 使用者身份執行 Root 別名?
我在跑步
Linux 4.4.0-116-generic Ubuntu + KDE ( x86_64 GNU/Linux )
我想執行一個名為
ksession
終止特定會話的別名。同時我希望只有我可以執行這個別名,沒有其他人可以執行。所以,我在目錄.bashrc
下找到了文件,/root
並在其中添加了一個別名ksession
,然後嘗試執行source
命令但沒有成功並出現以下錯誤:amit@C0deDaedalus:~$ source /root/.bashrc bash: /root/.bashrc: Permission denied amit@C0deDaedalus:~$ sudo source /root/.bashrc sudo: source: command not found
- 有沒有辦法讓
source
該文件成為非 root 使用者?- 我想以非 root 使用者身份執行別名。我可以像這樣用 sudo 執行它嗎?
$ sudo ksession
我試過了,但失敗並出現錯誤:
amit@c0deDaedalus:~$ sudo ksession sudo: ksession: command not found
- 如果沒有,是否有任何解決方法可以從非 root 使用者執行 root 別名?
Root 不需要別名。如果你想要一些私人的東西,那麼不要開始改變其他使用者帳戶中的東西(在這種情況下是根使用者)。
只需編寫
ksession
為 shell 腳本並sudo
在需要時在腳本中使用。將腳本放在私有目錄中,例如$HOME/bin
,並確保該目錄是您的一部分$PATH
並且該腳本是可執行的。或者,將其編寫為 shell 函式並將其放入
~/.bashrc
文件中。該功能可sudo
在需要時使用。或者,將其寫為別名並將其放入您的
~/.bashrc
文件中。需要時可以使用別名sudo
。您的
sudo source ...
命令不起作用,因為source
它是bash
內置命令並且sudo
需要外部命令。即使它起作用了,別名也不會在呼叫 shell 中被啟動,因為呼叫的命令
sudo
正在它自己的子 shell 中執行。