ssh 遠端控制程式。sudo 提權命令。你要不會用請不要嘗試。配置sudo的配置檔案在/etc/sudoers裡面,一般透過visudo命令來安全開啟編輯。檢視/etc/sudoers的用法可以使用命令: man 5 sudoers。在/etc/sudoers檔案裡面主要包括這兩部分:
1. 別名設定別名主要包括這幾種:User_Alias,Host_Alias,Runas_Alias,Cmnd_Alias,分別是使用者別名,主機別名,執行使用者別名,命令別名。設定這幾個別名的命令主要是為了配置方便,這個很類似linux使用者群組或是資料庫中角色的作用,有了別名便可以批次的賦予許可權。設定方法 Alias_Type alias_name = name1, name2, name3, 例如User_Alias User1 = user1, user2, user3。其他型別的alias設定方法類似。
2. 真正的sudo entry這個就是真正配置哪些使用者可以使用哪些命令了(你甚至可以不使用別名設定那部分)。格式為:使用者名稱(使用者別名) 主機名(主機別名)=[(執行使用者或是Runas_Alias)可選] [tag可選] 可以執行的命令(或Cmmd_Alias) 這樣描述語法很生硬,不易理解,舉例子user1 host1 = /bin/kill # user1 可以在host1上使用命令/bin/killuser1 host1 = NOPASSWD: /bin/kill # user1 可以在host1上使用命令/bin/kill 同時可以不必輸入密碼(這裡就是使用了NOPASSWD# 這個tag,預設是PASSWD)user1 host1 = NOPASSWD: /bin/kill , PASSWORD: /bin/ls # user1 可以在host1上使用命令/bin/kill無需輸入密碼,但是使用/bin/ls則需要輸入密碼user1 host1 = (opterator) /bin/kill # user1 可以在host1上使用命令/bin/kill但是必須是以operator使用者執行這個命令,等價於# su -u opertor /bin/killuser1 host1 = (:group_name) /bin/kill # user1 可以在host1上使用命令/bin/kill,且必須以group_name這個使用者群組裡面的使用者來執行。%group_name host1 = /bin/kill # 所有group_name裡面的使用者都可以在host1上執行/bin/kill(linux中一般代表整個使用者群組用# %group_name)再舉個實際例子,我之前對sudo su這個命令不理解,為什麼我可以直接就su到root使用者了呢,連密碼都不需要?查看了一下sudoers檔案才知道原來裡面有這麼一行:xxx ALL=NOPASSWD: /bin/su
ssh 遠端控制程式。sudo 提權命令。你要不會用請不要嘗試。配置sudo的配置檔案在/etc/sudoers裡面,一般透過visudo命令來安全開啟編輯。檢視/etc/sudoers的用法可以使用命令: man 5 sudoers。在/etc/sudoers檔案裡面主要包括這兩部分:
1. 別名設定別名主要包括這幾種:User_Alias,Host_Alias,Runas_Alias,Cmnd_Alias,分別是使用者別名,主機別名,執行使用者別名,命令別名。設定這幾個別名的命令主要是為了配置方便,這個很類似linux使用者群組或是資料庫中角色的作用,有了別名便可以批次的賦予許可權。設定方法 Alias_Type alias_name = name1, name2, name3, 例如User_Alias User1 = user1, user2, user3。其他型別的alias設定方法類似。
2. 真正的sudo entry這個就是真正配置哪些使用者可以使用哪些命令了(你甚至可以不使用別名設定那部分)。格式為:使用者名稱(使用者別名) 主機名(主機別名)=[(執行使用者或是Runas_Alias)可選] [tag可選] 可以執行的命令(或Cmmd_Alias) 這樣描述語法很生硬,不易理解,舉例子user1 host1 = /bin/kill # user1 可以在host1上使用命令/bin/killuser1 host1 = NOPASSWD: /bin/kill # user1 可以在host1上使用命令/bin/kill 同時可以不必輸入密碼(這裡就是使用了NOPASSWD# 這個tag,預設是PASSWD)user1 host1 = NOPASSWD: /bin/kill , PASSWORD: /bin/ls # user1 可以在host1上使用命令/bin/kill無需輸入密碼,但是使用/bin/ls則需要輸入密碼user1 host1 = (opterator) /bin/kill # user1 可以在host1上使用命令/bin/kill但是必須是以operator使用者執行這個命令,等價於# su -u opertor /bin/killuser1 host1 = (:group_name) /bin/kill # user1 可以在host1上使用命令/bin/kill,且必須以group_name這個使用者群組裡面的使用者來執行。%group_name host1 = /bin/kill # 所有group_name裡面的使用者都可以在host1上執行/bin/kill(linux中一般代表整個使用者群組用# %group_name)再舉個實際例子,我之前對sudo su這個命令不理解,為什麼我可以直接就su到root使用者了呢,連密碼都不需要?查看了一下sudoers檔案才知道原來裡面有這麼一行:xxx ALL=NOPASSWD: /bin/su