1. 程式人生 > 其它 >012 Linux 搞懂使用者許可權升級(sudo 和 su),包學會😁

012 Linux 搞懂使用者許可權升級(sudo 和 su),包學會😁

Linux 系統中 root 賬號通常用於系統的管理和維護,對作業系統的所有資源具有訪問控制權限,當一個普通使用者希望執行一些系統維護相關的操作的時候,就需要使用 sudo 命令,臨時將該使用者的許可權提升到 root 許可權,可以執行一些與系統維護相關的命令。

1 su 與 sudo 的異同

  • 共同點:都可以用另一個使用者許可權執行命令,一般都是為了使用 root 使用者許可權,來進行一些操作。
  • 不同點:su 要知道 root 密碼才可以,sudo 只要輸入自己的密碼就可以了。
  • 所以一般給予普通運維、開發人員的都是有 sudo 許可權的普通使用者,而不會開放 root 使用者。

2 su 命令認識

su (switch user) 命令用於變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。

  • whoami # 檢視當前是哪個使用者;
  • su root # 當前是 ops 普通使用者,切換到 root 使用者,需要輸入密碼;
  • su # 等於 su root ,都是切換到 root 使用者,都需要輸入密碼;
  • su root # 切換到 root 使用者,pwd 可看到目錄位置未切換
  • su - root # 切換到root使用者,pwd 可看到目錄位置切換為 /root

3 sudo 命令認識

sudo (superuser do) 命令以系統管理者的身份執行指令,也就是說,經由 sudo 所執行的指令就好像是 root 親自執行。

(1)檢視當前使用者被授予哪些許可權?

可以使用 「sudo -l 」 檢視當前使用者被授權的 sudo 許可權有哪些。

(2)賦予 sudo 許可權的使用者有哪些?

使用命令「sudo vim /etc/sudoers」,找到這一 行:"root ALL=(ALL) ALL",該行的下面即可看到賦予 sudo 許可權的使用者有哪些。

(3)如何新增使用者,使其擁有 sudo 許可權?

編輯 /etc/sudoers 檔案。輸入命令 "vim /etc/sudoers" ,進入編輯模式,找到這一 行:"root ALL=(ALL) ALL" 在它下面新增 "xxx ALL=(ALL) ALL" (這裡的 xxx 是你的使用者名稱),然後儲存退出(關於賦予許可權的控制,這裡不做展開;也可使用 visudo 命令,這裡不做細講)。

4 幾個常用命令辨析

  1. sudo -i # 假設當前使用者為 ops 且被賦予 sudo 許可權,執行該命令後,切換到 root 使用者,pwd 可看到目錄位置切換為 /root;
  2. sudo su docker # 假設當前使用者為 ops 且被賦予 sudo 許可權,執行該命令後,切換到 docker 使用者,pwd 可看到目錄位置未切換;相比當前使用者 ops 直接使用「su docker」,可以免去密碼輸入;
  3. sudo -u docker touch readme.text # -u 指定 docker 使用者,使用 sudo 許可權執行命令;

5 小結

su 切換使用者需要輸入目標使用者的 password;sudo 只需要知道自己的 password,可以避免 root 使用者的 password 洩漏。也著重介紹了 sudo 的使用者新增,檢視賦予的許可權以及配合 su 常用的一些使用案例。

「不甩鍋的碼農」原創,轉載請註明來源,未經授權禁止商業用途!同名 GZH 請關注!