centos7.4之sudo命令


一、應用場景

   1、一般情況下如果一台服務器涉及到多人管理的時候,需要每人都會有一個自己的賬戶,但是默認普通用戶需要部分超級管理員的權限,有人說直接su - root切換到超級管理員上就可以了,那日志怎么審核,這樣過大家都知道root的用戶密碼,最初的目的就沒有達到,所以引出了一個sudo的命令。

   2、sudo命令的優點:

    1、給普通賬戶部分管理員的權限不需要root密碼,只需要自己的密碼就行。

    2、可以根據工作內容的相同,實現權限分組管理(很方便)

    3、方便日志審核

二、使用方法

  科普小知識,su命令切換的時候su和su -的區別是,su - 會把需Shell環境變量一起都切過去,而su只會把身份切換過去。一般情況下我們習慣使用su - 。

  1、在root命令下執行visudo或者直接vi  /etc/sudoers即可,打開的是同一個配置文件。

  2、第一種使用方法:

    1、首先在root下面建立一個普通賬戶,設置密碼(記得要允許登錄,否則毫無意義),具體新建用戶的方法就不在這里贅述了。

    2、這里我們給這個普通用戶可以查看/etc/shadow這個密碼文件和重啟服務器權限,首先找到root    ALL=(ALL)       ALL,在這行下加上如下內容:

leihaidong ALL=/sbin/init 6,/bin/cat /etc/shadow

    3、這樣我們使用su - leihaidong命令切換到這個普通用戶下后執行sudo init 6 和cat /etc/shadow命令了,注意,如果提示你輸入輸入用戶名密碼,切記這里輸入的是你當前登錄的自己的用戶名密碼。這樣就簡單實現了,如果你想給更多的權限,就在后面追加,以逗號隔開。

    4、如果有些命令不需要輸入密碼,有些又需要輸入密碼,可以這么寫,但是這么寫又特別繁瑣。

leihaidong ALL=NOPASSWD:/sbin/init 6,PASSWD:/bin/cat /etc/shadow

  3、這一長串命令代表什么呢?

    1、第一列:用戶名,也就是需要授權的用戶名。

    2、被管理主機的地址,這里可以寫IP地址,一般情況下ALL即可。

    3、(ALL)指的是可使用的身份,這里如果寫ALL的話,代表擁有root權限。

    4、授權命令,也就是要執行命令的絕對路徑,可以使用which命令查看。

    提示:正常情況下大多都是想前面我提到的那兩種寫法。

   4、第二種使用方法:

    1、首先我們先想一個場景,同10個用戶都會做同樣的一些工作,按照上面我那種寫法,就得寫10行,改動起來比較繁瑣,試想一下,如果我們單獨寫一個模板,然后建設一個組,把這些用戶都加到組里面,最后讓這個組使用我們單獨寫的這個授權模板,這樣只需要加組即可實現授權。

    2、還是上面的案例,我們先創建一個組,然后把leihaidong這個賬戶加到新建組里面。

groupadd testgroup   #新建組
usermod -G testgroup  leihaidong   #將leihaidong加入testgroup組中

    3、在root下執行visudo修改授權(寫刪除第一種授權方法),

在文件51行附近加上下面兩句,第一句是注釋下面這個模板是做什么用的,第二行是新建模板INIT,這個模板授權可以重啟和查看/etc/shadow文件的權限。如果不想或者強制每次執行某個命令需要輸入當前用戶密碼,這里就不能使用這種方法了,只能一個一個寫了。
##test sudo init 6
Cmnd_Alias INIT =/sbin/init 6,/bin/cat /etc/shadow

    4、執行有了模板,還需要讓新建的testgroup這個組應用INIT這個授權模板。在文件中%wheel ALL=(ALL) ALL這行下面加入%testgroup   ALL=(ALL) INIT這行命令保存退出即可(寫法有誤會提示你保存不了)

    5、解釋這句話的意思,%代表他后面的這個字符是一個linux組,第二列的個ALL和第三列的(ALL)就不解釋了,看上面。后面這個INIT指的是INIT這個授權模板名。注意,當然也可以寫成%testgroup   ALL= INIT

    6、如果應用多個授權模板,模板之間用逗號隔開。

 

 

 

    

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM