sudo是為所有想使用root權限的普通用戶設計的。可以讓普通用戶具有臨時使用root權限的權利,只需要普通用戶輸入自己賬戶的密碼即可。當然這個普通用戶必須在/etc/sudoers文件中具有配置項,才具有使用sudo的權利。
沒有配置權限之前,普通用戶是無法進行root權限操作的,下圖的user-1是用戶的名字,例如普通用戶查看/root目錄下的文件:

使用root用戶編輯/etc/sudoers文件,給普通用戶授權
命令行輸入visudo,打開/etc/sudoers文件,加入如下的內容,user-1是用戶的名字,保存:

這樣普通用戶就可以使用sudo執行需要root權限的命令了,如下:

sudo的工作過程如下:
1. 當用戶執行sudo時,系統會主動尋找/etc/sudoers文件,判斷該用戶是否有執行sudo的權限
2. 確認用戶具有執行sudo的權限后,讓用戶輸入自己的密碼進行確認
3. 若密碼輸入成功,則開始執行sudo后續的命令
如果想要更加精准的控制普通用戶使用sudo的場景,就需要理解配置中的含義。
user-1 ALL=(ALL) ALL
第一個ALL是指網絡中的主機,我們可以指定主機名,這樣user-1用戶只可以在此主機上執行后面的命令。第二個括號里的ALL是指目標用戶,也就是以誰的身份去執行命令,最后一個命令指命令名稱。
例如,我們想讓user-1用戶在node-1主機上以allen的身份執行kill命令,就可以這樣編寫配置文件:
user-1 node-1=(allen) /bin/kill
案例:只允許user-1用戶以root身份在node-1主機上執行ls、cat命令,並且執行的時候免輸入密碼。
需要修改/etc/sudoers配置文件:
user-1 node-1=NOPASSWD: /bin/ls,/bin/cat

此時若user-1用戶執行非ls、cat命令時會被禁止:

而ls命令就可以正常執行:

原文鏈接:https://blog.csdn.net/czr11616/article/details/99767464
