Sudo
使用 sudo 執行命令的別名
我總是以 root 身份執行特定的應用程序,因為它需要更多權限。我通常只是 sudo 它。我想創建一個類似於以下內容的別名:
alias myCmd='sudo nohup /path/to/binary > /dev/null 2>&1 &'
當 sudo 提示輸入密碼時會出現問題,然後實際上什麼都不會發生。如何做呢?
使用 shell 腳本而不是別名。
在 ~/.bashrc 中:
export PATH="$PATH":~/bin
你在 ~/bin/runthat 中的腳本:
#!/bin/bash sudo nohup /path/to/binary > /dev/null 2>&1 &
然後執行它,只需這樣做:
$ runthat
或者,如果您跳過了 PATH 步驟,則像這樣執行它:
$ ~/bin/runthat
如果這是一個系統範圍(所有使用者)的腳本,而不僅僅是你,那麼把它放在 /usr/local/bin 中。
或者你也可以使用一個函式。例如。在 ~/.bashrc 中:
runthat() { sudo nohup /path/to/binary > /dev/null 2>&1 & }
也只是僅供參考,而不是直接回答這個問題,另一種選擇是將它放在 sudoers 文件中:
sudo visudo (your editor pops up here) username ALL=NOPASSWD: /path/to/binary
現在它根本不會要求輸入密碼。(這意味著較低的安全性……也許一些安全漏洞現在也會讓惡意軟體執行這個應用程序……所以請確保您接受這個小風險)