sudo指令的用法

2021-06-22 11:56:30 字數 3480 閱讀 8263

相對於 su 需要了解新切換的使用者口令 (常常是需要 root 的口令), sudo 的執行則僅需要自己的口令即可!甚至可以配置不需要口令即可執行 sudo 呢!由於 sudo 可以讓你以其他使用者的身份執行命令(通常是使用 root 的身份來執行命令),因此並非所有人都能夠執行 sudo ,而是僅有規範到 /etc/sudoers 內的使用者才能夠執行 sudo 這個命令

[root@www ~]# sudo [-b] [-u 新使用者賬號]

選項與引數:

-b :將後續的命令放到背景中讓系統自行執行,而不與目前的 shell 產生影響

-u :後面可以接欲切換的使用者,若無此項則代表切換身份為 root 。

範例一:你想要以 sshd 的身份在 /tmp 底下建立乙個名為 mysshd 的檔案

[root@www ~]# sudo -u sshd touch /tmp/mysshd

[root@www ~]# ll /tmp/mysshd

-rw-r--r-- 1 sshd sshd 0 feb 28 17:42 /tmp/mysshd

# 特別留意,這個檔案的許可權是由 sshd 所建立的情況喔!

但是 sudo 預設僅有 root 能使用啊!為什麼呢?因為 sudo 的執行是這樣的流程:

當使用者執行 sudo 時,系統於 /etc/sudoers 檔案中搜尋該使用者是否有執行 sudo 的許可權;

若使用者具有可執行 sudo 的許可權後,便讓使用者『輸入使用者自己的口令』來確認;

若口令輸入成功,便開始進行 sudo 後續接的命令(但 root 執行 sudo 時,不需要輸入口令);

若欲切換的身份與執行者身份相同,那也不需要輸入口令。

所以說,sudo 執行的重點是:『

能否使用 sudo 必須要看 /etc/sudoers 的配置值,而可使用 sudo 者是透過輸入使用者自己的口令來執行後續的命令串』

從上面的說明我們可以知道,除了 root 之外的其他賬號,若想要使用 sudo執行屬於 root 的許可權命令,則 root 需要先使用visudo去修改 /etc/sudoers ,讓該賬號能夠使用全部或部分的root 命令功能。為什麼要使用 visudo 呢?這是因為 /etc/sudoers 是有配置語法的,如果配置錯誤那會造成無法使用 sudo 命令的不良後果。因此才會使用 visudo 去修改,並在結束離開修改畫面時,系統會去檢驗 /etc/sudoers 的語法就是了。

1.單一使用者可進行 root 所有命令,與 sudoers 檔案語法

假如我們要讓 vbird1 這個賬號可以使用 root 的任何命令,那麼可以簡單的這樣進行修改即可:

[root@www ~]# visudo

....(前面省略)....

root all=(all) all <==找到這一行,大約在 76 行左右

vbird1 all=(all) all

<==這一行是你要新增的!

....(前面省略)....

有趣吧!其實 visudo 只是利用 vi 將 /etc/sudoers 檔案呼叫出來進行修改而已,所以這個檔案就是 /etc/sudoers 啦!這個檔案的配置其實很簡單,如上面所示,如果你找到 76 行 (有 root 配置的那行) 左右,看到的資料就是:

使用者賬號  登陸者的**主機名=(可切換的身份)  可下達的命令

root all=(all) all <==這是預設值

上面這一行的四個元件意義是:

系統的哪個賬號可以使用 sudo 這個命令的意思,預設為 root 這個賬號;

當這個賬號由哪部主機聯機到本 linux 主機,意思是這個賬號可能是由哪一部網路主機聯機過來的,這個配置值可以指定客戶端計算機(信任使用者的意思)。預設值 root 可來自任何一部網路主機

這個賬號可以切換成什麼身份來下達後續的命令,預設 root 可以切換成任何人;

可用該身份下達什麼命令?這個命令請務必使用絕對路徑撰寫

。預設 root 可以切換任何身份且進行任何命令之意。

2.利用群組以及免口令的功能處理 visudo

我們在本章前面曾經建立過 pro1, pro2, pro3 ,這三個使用者能否透過群組的功能讓這三個人可以管理系統?可以的,而且很簡單!同樣我們使用實際案例來說明:

[root@www ~]# visudo

<==同樣的,請使用 root 先配置

....(前面省略)....

%wheel all=(all) all

<==大約在 84 行左右,請將這行的 # 拿掉!

# 在最左邊加上 % ,代表後面接的是乙個『群組』之意!改完請儲存後離開

[root@www ~]# usermod -a -g wheel pro1

<==將 pro1 加入 wheel 的支援

上面的配置值會造成『任何加入 wheel 這個群組的使用者,就能夠使用 sudo 切換任何身份來操作任何命令』的意思。

如果你想要讓 pro3 也支援這個 sudo 的話,不需要重新使用 visudo ,只要利用 usermod 去修改 pro3 的群組支援,讓 wheel 也支援 pro3 的話,那他就能夠進行 sudo 囉!簡單吧!不過,既然我們都信任這些 sudo 的使用者了,能否提供『不需要口令即可使用 sudo 』呢?就透過如下的方式:

[root@www ~]# visudo

<==同樣的,請使用 root 先配置

....(前面省略)....

%wheel all=(all) nopasswd: all

<==大約在 87 行左右,請將 # 拿掉!

# 在最左邊加上 % ,代表後面接的是乙個『群組』之意!改完請儲存後離開

重點是那個

sudo 搭配 su 的使用方式:

很多時候我們需要大量執行很多 root 的工作,所以一直使用 sudo 覺得很煩ㄟ!那有沒有辦法使用 sudo 搭配 su ,一口氣將身份轉為 root ,而且還用使用者自己的口令來變成 root 呢?是有的!而且方法簡單的會讓你想笑!我們建立乙個 admins 帳戶別名,然後這樣做:

[root@www ~]# visudo

user_alias admins = pro1, pro2, pro3, myuser1

admins all=(root) /bin/su -

接下來,上述的 pro1, pro2, pro3, myuser1 這四個人,只要輸入『 sudo su - 』並且輸入『自己的口令』後,立刻變成 root 的身份!不但 root 口令不會外流,使用者的管理也變的非常方便!這也是實務上面多人共管一部主機時常常使用的技巧呢!這樣管理確實方便,不過還是要強調一下大前提,那就是『

這些你加入的使用者,全部都是你能夠信任的使用者』!

sudo指令用法

sudo語法 sudo b u新使用者賬號 選項與引數 b 將後續的指令放到背景中讓系統自行執行,而不與目前的shell產生影響 u 接切換的使用者,若無此項則代表切換身份為root 例如 sudo u wang touch tmp sudo.txt 注意 目前只能在tmp目錄下面建立,需要設定su...

sudo用法記錄

預設5分鐘後剛才輸入的sodo密碼過期,下次sudo需要重新輸入密碼,如果覺得在sudo的時候輸入密碼麻煩,使普通使用者使用sudo擁有root身份執行所有命令且無需密碼,新增一行 xiaobai all all nopasswd all 注意nopasswd 與all之間有乙個空格!注意 有的時候...

sudo的簡單用法

sudo 的簡單用法 sudo 是linux 下一種能讓普通使用者執行 root 使用者或者其他使用者的命令 在 linux 中為了能方便的作業系統,同事也為了減輕管理員的負擔,這裡就有了 sudo 這個工具,讓普通使用者能執行 root 使用者的一部分權利。在 linux unix 下專門為 su...