Linux visudo用法是權限管理應該掌握的技能,本文介紹如何查看系統配置文件,執行gpasswd、su、sudo等相關管理員操作,帶你一次學會6個切換使用者帳號必學命令。
目錄
Toggle一、Linux使用者資料
首先,用正規表示法查找「root」和「zanzan」兩個帳戶資料,前者是建立作業系統時一定會有、而且是唯一的管理員帳戶,後者則是管理員新增的一個普通使用者。為了進一步瞭解普通使用者,使用「id」命令進行查詢,可以看到有三個主要的屬性:「uid」、「gid」與「groups」,分別代表:使用者帳號、群組帳號和副群組帳號,三個數值皆為「1000」,另外也有英文名稱「1000(zanzan)」,不過可想見和很系統資料紀錄一樣,在Linux系統是以數值「1000」作為真正的記錄。
關於Linux正規表示法的基本用法,可以參考贊贊小屋相關文章。
二、Head -n檢視文件
Linux所有的群組資料都放在「etc/group」這個文件,用「cat」檢視命令查看,發現總共分成37個群組,由於資料筆數較多,僅節錄部份清單。如同截圖所示,最後一筆第37筆為「zanzan」,ID是「1000」。注意到這裡的「cat /etc/group -n」中的「-n」表示要將檢視內容加上行編號。
除了「cat」命令之外,輸入另外一個檢視命令:「head -n 3」,「head」命令預設是檢視前十筆資料,加上「-n 3」參數表示只取前三行資料,其中的第一筆資料便是「root」管理員,群組ID為「0」。
關於Linux如何使用「cat」和「head」查看文件,可以參考贊贊小屋相關文章。
結合第一和第二步驟先小小總結一下:Linux系统共有三種使用者,除了root系統管理員以及普通使用者之外,還有一些應用程序會自動建立的使用者,從意義上而說並非真正的使用者,此類使用者的 ID序號會從1開始,一直到999,因此可以看到管理員「root」 的ID序號是0,而新增的第一個使用者「zanzan」的ID序號是1000,而如果是群組的話,gid會從1往下依序編號,第一個是root,而zanzan群組的37則是最後一個。
三、sed命令基本用法
有了群組序號概念之後,接下來介紹Linux一個處理文字資料的強大命令:「sed」,這用到算是簡單的基本用法:「sed -n ‘1p;37p’」,作用是取得序號第1跟第37的群組資料,亦即root和zanzan。
四、gpasswd群組管理
接下來介紹如何將使用者加入到某個群組裡,例如打算把zanzan加入到 root群組,讓它擁有系統管理員的權限,可以執行命令「gpasswd -a zanzan root」,好了之後再使用「id」指令查看zanzan,會發現所屬群組「groups」多了一個「O(root) 」。
另外,新增是add,刪除是delete,所以「-a」是加入群組的參數,從群組中刪除的參數則是「-d」。
五、su命令切換使用者
Linux系統中root管理員擁有一切的權限,先前步驟都是以root管理員身份操作,在此簡單測試一下,執行「su」命令切換使用者,後面加個參數是要切換的使用者,因此「su zanzan」便是從root轉換到「zanzan」,也就是登入者從系統管理員變更為普通使用者,這時候如果普通使用者想將自己加入到系統管理員的群組中,會發現沒有這個權限,系統顯示「權限被拒」的提示字句。
六、visudo編輯權限
如果要讓普通使用者具有系統管理員權限,通常會給予「visudo」的權限。先切換回root系統管理員登入,輸入命令「visudo」,等於是用vi編輯器開啟sudo這一個配置文件,在裡面找到「root ALL=(ALL) ALL」,如同截圖所示的配置區塊,然後新增一行「zanzan ALL=(ALL) ALL」,讓zanzan也具有root的權限,注意到左下角會有「——INSERT——」字樣,表示目前是插入編輯的狀態。
關於Linux系統如何使用vi編輯器,可以參考贊贊小屋相關文章。
七、sudo -u root命令
接下來要再執行剛才加入群組的命令,不過在「gpasswd -a zanzan root」前面加上「sudo -u root」,代表雖然目前使用者是zanzan,但是臨時以root系統管理員的權限執行命令,會看到Linux系統突然出現超級英雄電影的台詞:有了權利,就必須負起責任 (「With great power comes great responsibility」)等三項注意事項,在此確認沒有問題,輸入普通使用者「zanzan」的密碼,接著就可以執行管理員命令了,將自己加入到系統管理員的群組中。
八、執行權限測試
接下來用「su」指令切換回root系統管理員,再次使用先前第六步驟同樣方式更改sudo檔案,接著是「gpasswd -d zanzan root」命令將zanzan從root群組中刪除,然後切換到普通使用者zanzan,這時如果要執行sudo命令將自己加到管理員群組,就會發現已無權限,系統還會警告將回報這次越權行為 :「This incident will be reported.」。
Linux系統入門與進階
這篇文章的重點是Linux群組的概念機制以及如何實際運用,雖然最終使用的命令相對簡單,可是在操作過程中無可避免地會使用「cat」、「head」等基本的命令,同時用到了相對進階的正規表示法和sudo資料處理命令。由此可見Linux在入門時必須系統性地學習,熟悉每一項基本操作,才有可能真正進行實務運作。
贊贊小屋服務:3,000元架設網站,5,000元Google Kinsta主機。
歡迎加入Line社群,口袋裡的Excel小教室!
8,000元為您量身訂作Excel ERP系統: