Sudo

使用 sudo 執行命令的別名

  • August 12, 2021

我總是以 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

現在它根本不會要求輸入密碼。(這意味著較低的安全性……也許一些安全漏洞現在也會讓惡意軟體執行這個應用程序……所以請確保您接受這個小風險)

引用自:https://unix.stackexchange.com/questions/286855