Bash

以 root 使用者身份執行 bash 腳本,腳本中包含 sudo 命令

  • April 5, 2018

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 身份執行應用程序是一個壞主意。如果您對安全性感興趣,了解這一點尤其重要。

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