close

參考http://welkinchen.pixnet.net/blog/post/32191872-ubuntu-sudo指令權限的開放

sudo 指令權限的開放

Linux使用者一定要知道 #su 和 #su - 與 #sudo 三者的差異性。

#su    切換至root權限,但並不載入相關設定值。
#su -  切換至root權限,並且載入相關設定值。
#sudo  切換至暫時性root權限。

CentOS及RedHat中,預設值除了root帳號外,無任何使用者有權限去修改設定檔。
1. 切換身份至 root:#sudo su
2. 修改檔案設定:#visudo
3. 找到 【root ALL=(ALL:ALL) ALL】 or 【root ALL=(ALL) ALL】
    新增 【XXXX ALL=(ALL:ALL) ALL】 or 【XXXX ALL=(ALL) ALL】

※可能需要的操作:

3.1 鍵入 o 可在該行下面插入新的一行

3.2 按Esc鍵退出插入模式

3.3 鍵入 :x 儲存並退出

4. 重新啟動作業系統


參考https://blog.gtwang.org/linux/sudo-su-command-tutorial-examples/

/etc/sudoers 設定檔
sudo 可以在不需要 root 密碼的情況下取得 root 權限,當然在正常的 Linux 系統中不可能讓所有的使用者都可以使用 sudo,它是依據 /etc/sudoers 設定檔來管控的,只有在這個檔案中有被特別設定的使用者或群組才能使用 sudo 指令。

在編輯 /etc/sudoers 的時候,請使用 visudo 這個指令來開啟 vi 編輯器進行編輯,系統會在編輯完成後自動檢查設定檔的語法是否正確,避免錯誤的語法導致 sudo 無法使用。

 

個別使用者設定
/etc/suders 對個別使用者設定的語法格式如下:

帳號名稱    來源主機=(可切換帳號) 可執行的指令
其中四的欄位的意義為:

帳號名稱:可以使用 sudo 的帳號名稱。
來源主機:限制使用者從特定網路主機連線時,才能使用 sudo 指令,可用來防止入侵者從不明的主機登入攻擊。若指定為 ALL 則代表不限制來源主機。
可切換帳號:可以取得哪些帳號的權限。若指定為 ALL 則代表可以取得任何帳號的權限。
可執行的指令:在取得特殊權限後,可以執行的指令。若指定為 ALL 則代表可以執行任何令。

若要讓 gtwang 這個帳號可以使用 sudo 執行所有的指令,則在 /etc/sudoers 中加入這一行設定:

gtwang    ALL=(ALL) ALL
基本上讓使用者允許使用 sudo 指令取得 root 權限,就等同於讓該使用者成為一位系統管理者了,所以別隨便開放 sudo 給一般的使用者,尤其是對於 Linux 不甚熟悉的人。

假設 accmgr 這個管理者是專門幫使用者重新這定密碼的,我們就可以透過這樣的設定限制 accmgr 這個管理者只能使用 root 權限執行 passwd 來更改使用者的密碼,而不能做其他的事情:

accmgr  ALL=(root) /usr/bin/passwd
上面這種寫法有一個漏洞,就是 accmgr 也可以更改 root 帳號的密碼,如果 root 的密碼可被任意更改,整個系統的管理權限也會被取得,所以我們必須防止 accmgr 更動 root 的密碼:

accmgr  ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
這裡我們將可執行的指令加上更多的限制,首先是不可以直接執行 /usr/bin/passwd,僅允許 /usr/bin/passwd 加上一般的使用者帳號,然後將 /usr/bin/passwd root 這個更改 root 密碼的指令也禁止。


群組設定
如果要對特定群組底下的所有帳號一次開放權限,可以使用這樣的群組設定語法:

%群組名稱    來源主機=(可切換帳號) 可執行的指令
群組設定的語法跟個別帳號的方式相似,只不過群組的名稱在指定時前面要加上一個百分比 % 的符號,而其餘欄位則都相同。例如若要讓 wheel 群組中的所有使用者都可以使用 sudo,則加入:

%wheel  ALL=(ALL) ALL

不用輸入密碼
如果想要讓特定的使用者可以在不需要輸入密碼的情況下,直接使用 sudo,可以加入 NOPASSWD 的設定,例如:

gtwang  ALL=(ALL) NOPASSWD:ALL
讓整個群組的使用者都不需要密碼:

%wheel  ALL=(ALL) NOPASSWD:ALL
在沒有加入 NOPASSWD 的設定之下,如果使用者在五分鐘之內連續使用 sudo 好幾次,那麼只有在第一次使執行時需要輸入密碼,隨後再次執行 sudo 時,系統就不會要求使用者重複輸入,這樣的設計是預設五分鐘之內連續執行的指令應該都是同一人所為,所以不用再次輸入密碼,但若是超過五分鐘之後,就要重新驗證密碼。

 

 

如:

delta     ALL=(ALL:ALL) NOPASSWD:ALL

arrow
arrow
    全站熱搜

    math631764 發表在 痞客邦 留言(0) 人氣()