以 root 使用者身份執行 bash 腳本,腳本中包含 sudo 命令
Linux 新手 - 我使用的是 Debian 9。
我想執行一個腳本來安裝,按照這裡
pwndbg
的教程。我正在使用我的 root 帳戶來執行此操作,並希望將其安裝到我的 root 帳戶的主目錄中。輸出如下:root@My-Debian-PC:~/pwndbg# ./setup.sh + PYTHON= + INSTALLFLAGS= + osx + uname + grep -i Darwin + '[' '' == --user ']' + PYTHON='sudo ' + linux + uname + grep -i Linux + sudo apt-get update ./setup.sh: line 24: sudo: command not found + true + sudo apt-get -y install gdb python-dev python3-dev python-pip python3-pip libglib2.0-dev libc6-dbg ./setup.sh: line 25: sudo: command not found root@My-Debian-PC:~/pwndbg#
顯然,該腳本被假定為作為具有 sudo 權限的帳戶執行,因此由於 root 帳戶無法使用該
sudo
命令而給出錯誤。那麼有沒有辦法消除錯誤?我應該簡單地編輯腳本並
sudo
從第 24 行和第 25 行刪除單詞,還是這樣做是不好的做法?或者是否可以將我的 root 帳戶添加到 sudo 使用者組,以防我將來遇到另一個腳本的錯誤?還是我應該按原樣執行腳本,然後再apt-get update
執行apt-get -y install gdb python-dev python3-dev python-pip python3-pip libglib2.0-dev libc6-dbg
?謝謝!
如果您可以編輯腳本並刪除
sudo
命令,則以 root 使用者身份執行腳本應該可以按預期工作。安裝
sudo
命令也是使命令成功執行的一種方式。apt install sudo
我會嘗試以非 root 使用者身份執行它。這些安全結構的存在是有原因的。
如果你已經是root,
sudo
那就是多餘的了。腳本經常使用“sudo”來有效地詢問普通使用者“你真的確定要這樣做嗎?”,或者區分為特定使用者所做的更改和系統範圍內所做的更改。因此,如果您只是在測試盒上亂搞,那就去做吧,但一定要確保您特別了解“sudo”行在做什麼。我還告誡不要在管理之外廣泛使用您的 root 帳戶。如果您想實際使用您正在安裝的庫來開發軟體,那麼讓一個非管理員使用者用作您的日常登錄名是有意義的。請參閱此處了解為什麼定期登錄以以 root 身份執行應用程序是一個壞主意。如果您對安全性感興趣,了解這一點尤其重要。