天天看點

sudo權限管理

為什麼使用sudo?

通常生産伺服器會有多個使用者或者部門需要登入和操作,如運維部門和開發部門。是以一般不會使用root的賬号密碼來操作,因為如果大家都知道root的密碼非常不安全,萬一哪天誰更改了root密碼,就比較麻煩,但是呢,我們又必須給使用者執行權限。那麼我們必須用sodu來解決這一問題。

sudo:  switch user do,

 某個使用者能夠以另外一個使用者的身份通過某主機執行某指令,但是執行指令前必須輸入自己賬戶的密碼

    -k:kill,讓此前輸入的認證資訊失效,并重新認證。預設情況下,當使用者執行sudo 指令後,5分鐘内不用再次輸入自己的密碼

     -l:列出目前使用者可以使用的所有sodu指令

例如:

1

2

3

<code>[deploy@ZabbixServer ~]$ </code><code>sudo</code> <code>-l</code>

<code>User deploy may run the following commands on this host:</code>

<code>    </code><code>(ALL) NOPASSWD: ALL, (ALL) !</code><code>/usr/bin/passwd</code> <code>root</code>

上面表示使用者deploy除了 更改root密碼外,其他指令都能操作。

sudo 指令使用方法:

sudo COMMAND:不用切換到某個使用者,就可以用該使用者來執行某個指令

<code>sudo</code> <code>useradd</code> <code>aaa</code>

sudo的配置檔案/etc/sudoers

該檔案權限為400

<code># ls -l /etc/sudoers</code>

<code>-r--r----- 1 root root 4059 Aug 24 07:53 </code><code>/etc/sudoers</code>

visudo :不用加任何參數,專門用來編輯/etc/sudoers這個檔案,隻有root使用者有權限

一個sudo條目的格式:

who                  which_host=(run as )                              command

誰                    從哪台主機遠端連上來   以誰的身份           執行什麼指令

上面的who也可以是組名,但是組名前需要加‘%’,例如%wheel

練習:

例如:允許deploy使用者以root身份執行所有指令,怎麼寫?

<code>deploy   ALL=(ALL)       ALL</code>

如果希望deploy使用者執行指令時不需要輸入密碼怎麼寫?

<code>deploy   ALL=(ALL)       NOPASSWD: ALL</code>

如果希望deploy使用者能執行所有指令,但是不能更改root密碼,不能切換到root使用者,怎麼寫?

<code>deploy  ALL=(ALL)       NOPASSWD: ALL,!</code><code>/usr/bin/passwd</code> <code>root,!</code><code>/bin/su</code>

sudo在生産環境中的用法:

生産環境中每個使用者都有自己的登入賬号,例如:user1、user2等。我們允許wheel組的使用者能執行所有指令,而deploy使用者屬于這個組。然後我們隻需要賦予user1、user2 切換到deploy使用者的權限即可。

過程如下:  建立deploy使用者,并加入wheel組

<code>#useradd  deploy</code>

<code>#usermod -a -G wheel deploy</code>

編輯/etc/sudoers檔案,賦予wheel組使用者執行所有指令的權限

<code>%wheel  ALL=(ALL)       NOPASSWD: ALL</code>

最好是禁止wheel組使用者切換到root使用者、更改root密碼、執行visudo指令的權限,是以可以這樣設定

<code>%wheel  ALL=(ALL)       NOPASSWD: ALL,!</code><code>/usr/bin/passwd</code> <code>root,!</code><code>/bin/su</code><code>,!</code><code>/usr/sbin/visudo</code>

然後賦予使用者user1切換到deploy使用者的權限

在/etc/sudoers.d目錄下,建立一個檔案,檔案名可以是使用者名,在該檔案中寫入以下内容

<code># cat /etc/sudoers.d/user1 </code>

<code>user1  ALL=NOPASSWD:</code><code>/bin/su</code> <code>- deploy</code>

設定該檔案權限為440

本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1842926,如需轉載請自行聯系原作者

上一篇: LVS-DR配置