Bash

忽略每個命令的 sudo

  • July 28, 2022

我目前正在研究預設使用者為 root 並且不可能使用 sudo 命令的 Linux 變體,因為沒有安裝這樣的包,在這種情況下也沒有添加它的選項。預設情況下,所有命令都以 root 權限執行。使用 sudo 列印sh: sudo: not found錯誤。

不幸的是,我有一個測試儲存庫,其中包含很多帶有 的命令sudo,因為這些測試也在其他 Linux 發行版上執行。

我的問題是:我可以準備一些 bash 腳本或類似的東西,它會sudo在任何命令中跳過嗎?

我的意思是,當我執行 sudo 命令 like 時 sudo cat <some_path>,我希望它執行 as cat <some_path>,刪除sudo部分。它可以對每個命令都以這種方式工作,因此腳本可以例如在啟動時執行並適用於每個 sudo 命令。

您可以嘗試設置這樣的別名:alias sudo=""

一個簡單的無操作直通腳本將是:

#!/bin/sh
"$@"

它只接受給定的參數,並使用它們執行命令,使用第一個作為命令名稱。所以如果安裝在sudo某處$PATH,執行sudo ls -l "what ever"時,應該和剛才一樣ls -l "what ever"

當然,它不會查看任何選項,例如sudo -s會嘗試執行一個名為 的命令-s,可能會出錯。

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