su、sudo的用法

1. su命令用法

  1. su是最簡單的身份切換命令,可以進行任何身份的切換。
  2. [su ]命令將身份切換到root,但是需要輸入root密碼,以non-login shell的方式讀取變量,這種方式很多原本的變量不會改變,尤其是path,由于沒有變成root的環境,因此很多root慣用的指令只能用絕對路徑來執行。
  3. [su - 或 su -l username]命令將身份切換到特定用戶,但是需要輸入該用戶密碼,不加用戶名表示切換到root用戶,輸入root密碼。
  4. [su - -c 指令]命令已root用戶執行命令,且執行完畢后恢復原本的身份。
  5. 使用root切換到任務用戶,不需要輸入密碼。

2. sudo命令用法

  1. 相對su命令,sudo的執行僅需要輸入用戶自己的密碼即可,甚至可以設定不需要輸入密碼即可執行命令,并非所有人都能夠執行sudo,且僅有規范到/etc/sudoers內的用戶才能夠執行sodu命令。
  2. [sudo 指令 或 sudo -u username 指令]表示以某用戶的環境執行命令, 不加用戶表示以root用戶的身份執行。
  3. sudo執行流程:
    3.1 當用戶執行sudo時,系統在/etc/sudoers檔案中搜索該使用者是否具有 sudo執行權限;
    3.2 若使用者具備可執行的sudo權限后,便讓使用者【輸入自己的密碼】來確認;
    3.3 若密碼輸入成功,便開始執行sudo后續的指令(root執行sudo時無需輸入密碼);
    3.4 若切換者的身份與執行者相同時,也無需輸入密碼。
  4. sudo執行失效為5分鐘,超過5分鐘需要重新輸入密碼。

3. visudo與/etc/sudoers

若要非root用戶執行root權限,則root需要先使用visudo命令編輯/etc/sudoers文檔,讓該賬號用戶全部或部分root權限。為什么要使用visudo,這是因為/etc/soduers具有語法限定,如果設定錯誤會造成設置失效,因此才使用visudo命令去編輯,編輯結束離開文件時,系統會去檢測文件的語法。
編輯步驟如下:

  1. 輸入root賬戶下輸入visudo,或非root賬戶具備sudo權限的賬戶輸入:sudo visudo。
  2. 進入編輯模式,在root行下面新增一行:
    root ALL=(ALL) ALL
    test ALL=(ALL) ALL
    上面一行四個組件的意思是:
    2.1 系統的哪個賬號可以使用 sudo 指令,默認為 root 這個賬號。
    2.2 這個賬號由哪部主機關聯到本 Linux 主機,意思是這個賬號可能是由哪一部網絢主機關聯過來,, 這個設定值可以指定客戶端計算機(信任用戶的意思)。默認root可以來自任何一部主機。
    2.3 這個賬號可以切換到什么身份來下達后續的指令,默認root用戶可以切換到任何身份。
    2.4 可用該用戶下達什么指令,這些指令務必使用絕對路徑撰寫,預設root用戶可以切換任何身份執行任何指令。
  3. 退出保存成功即可。

4. sudo搭配su使用方式

很多時候需要執行很多root工作,所以一直使用sudo很麻煩,有沒有辦法使用sudo搭配su,一口氣將身份切換到root用戶,且用自己的密碼切入root。答案是有的,即:[sudo su -]然后輸入當前用戶密碼即可切換到root用戶。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容