sudo note

在Linux中,使用者取得root權限執行可以透過sudo 或是 su root (直接切換成root),差別是sudo 是不需要知道root密碼的,並且可以透過定義sudoer限制可使用的命令。修改/etc/sudoers,透過visudo command

在CentOS中, 定義了 wheel group有sudo權限,可將使用者直接加入wheel群組

usermod –aG wheel username

上面除了定義wheel群組,也定義了root使用者,當然root本身就具有最高權限了,會在sudoers定義最主要是因為讓root不會因為用sudo命令被擋下來

例如將 root那行註解後,(以root身分) 輸入 sudo ls會失敗

在Ubuntu中,則是定義了admin 和 sudo group,不過admin group是早期Ubuntu 11及之前在使用的,在Ubuntu 12後不使用

如過要讓使用者sudo 時不需再輸入密碼,可以在檔案的最後面加上

user ALL=(ALL) NOPASSWD:ALL

如果不在最後面加上,則會以最後一筆match的設定apply,以ubuntu預設建立的使用者來說,會自動加進sudo group,所以會導致上面的設定被override

When multiple entries match for a user, they are applied in order. Where there are multiple matches, the last match is used (which is not necessarily the most specific match).

https://askubuntu.com/questions/100051/why-is-sudoers-nopasswd-option-not-working

另外是上面列的 %sudo ALL=(ALL:ALL) ALL 依照順序指的是

%sudo 群組 在 ALL 不限制host上,可以以 ALL 不限制run as user,ALL不限制run as group,ALL不限制執行command

ALL不限制host通常是有類是ldap的架構下才會有意義,不然一般檔案都是在單機local上設定,sudoers也只會作用在該台機器上

以上可參考 https://linux.die.net/man/5/sudoers Runas_Spec與Tag_Spec的說明

sudoers可以設定限制使用者執行的身分、群組,使用者在sudo時,可以指定-u or -g ,不指定-u 預設是root,指定-u不指定-g時預設是指定user的primary group,不指定-u 但指定-g時會用原有user的身份但group切換執行

參考:

This entry was posted in System Administration. Bookmark the permalink.

Leave a Reply