Linux使用者管理之su、whoami、groupadd、groupmod、groupdel命令講解

九派Linux發表於2020-08-13

Linux su命令用於把當前使用者變更為其他使用者的身份,通過該命令可以實現任何身份的切換,包括從普通使用者切換為 root 使用者、從 root 使用者切換為普通使用者以及普通使用者之間的切換,除 root 外,需要輸入該使用者的密碼,這是什麼意思呢?

普通使用者之間切換以及普通使用者切換至root使用者,都需要輸入對方的密碼才能實現切換;從root使用者切換至其他使用者,無需對方密碼,直接可切換成功。

一、Linux使用者切換命令:su

su 命令的格式如下:

su [選項] 使用者名稱

該命令常用的選項及各自的含義如下:

  • -:不僅把當前使用者切換到指定使用者,同時所用的工作環境也切換為此使用者的環境(包括 PATH 變數、MAIL 變數等),使用 - 選項如果省略使用者名稱,則預設切換到 root 使用者。

  • -l:作用和上一個引數 - 類似,也就是在切換使用者身份的同時,完整切換工作環境,但後面必須要加上需要切換的賬號

  • -p-m:表示切換為指定使用者的身份,但不改變當前的工作環境

  • -c:僅切換使用者執行一次命令,執行後自動切換回來

1、比如當前登入系統的使用者是 chuan,我想切換到 root 使用者:

$ su root

2、切換帳號為 root 並在執行 ls 命令後自動切換到原來的使用者:

$ su -c ls root

image
具體什麼意思呢?我現在登入的賬號是 chuan,在執行su -c ls root命令之後,首先要我們輸入root使用者密碼,輸入回車之後,系統會以root使用者執行ls命令,執行完成之後,立馬自動切換回chuan使用者了。

3、注意,使用 su 命令時,有 - 和沒有 - 是完全不同的

- 選項表示在切換使用者身份的同時,連當前使用的環境變數也切換成指定使用者的。我們知道,環境變數是用來定義作業系統環境的,因此如果系統環境沒有隨使用者身份切換,很多命令無法正確執行。

4、切換回以前的使用者

比如當前登入使用者是chuan,執行了su root命令之後,想切換回chuan使用者,執行 exit 命令即可。

二、whoami 命令和 who am i 命令

別看這兩個個命令字母都是一樣,唯一的差別是第二個命令多了兩個空格,但是這是兩條完全是不同的,前者用來列印當前執行操作的使用者名稱,後者則用來列印登陸當前 Linux 系統的使用者名稱。

比如我現在登入的是chuan使用者,分別執行這兩條命令看下:

image

然後我用su命令切換到root使用者:

image

可以看出,在未切換使用者之前,whoamiwho am i 命令的輸出都是chuan使用者的資訊,但使用 su 命令切換使用者後,使用 whoami 命令列印的是切換後的使用者名稱,而 who am i 命令列印的仍然是登陸系統時所用的使用者名稱。

三、新增使用者組命令:groupadd

新增使用者組的命令是 groupadd,新工作組的資訊將被新增到系統檔案中,命令格式如下:

groupadd [選項] 組名

該命令常用的選項及各自的含義如下:

  • -g:指定新建工作組的id
  • -r:建立系統工作組,系統工作組的組ID小於500

使用者組相關的檔案:

  • /etc/group 組賬戶資訊。
  • /etc/gshadow 安全組賬戶資訊。

比如建立一個新組,組名是groupname1,並設定組ID加入系統:

groupadd -g 344 groupname1

我們檢視一下使用者組檔案/etc/group:

image

四、修改使用者組資訊:groupmod

該命令用於更改群組識別碼或名稱,命令格式如下:

groupmod [選項] 組名

該命令常用的選項及各自的含義如下:

  • -g GID:修改組 ID
  • -n 新組名:修改組名

比如把上一步建立的組名 groupname1 修改為 testgroup

$ groupmod -n testgroup groupname1

image

提示:組名和 GID 不要隨意修改,因為非常容易導致管理員邏輯混亂。如果非要修改使用者名稱或組名,則建議大家先刪除舊的,再建立新的。

五、刪除使用者組資訊:groupdel

groupdel 命令用於刪除指定的工作組,倘若該群組中仍包括某些使用者,則必須先刪除這些使用者後,方能刪除群組。命令格式如下:

groupdel 組名

通過前面的學習我們知道,使用 groupdel 命令刪除群組,其實就是刪除 /etc/gourp 檔案和 /etc/gshadow 檔案中有關目標群組的資料資訊。

比如現在系統中有名為 groupname2的群組,通過檢視上述兩個檔案可以看到該群組的資訊。執行使用者組刪除命令之後,再次檢視上述兩個檔案資訊已經查詢不到了:

image

注意:使用 groupdel 不能隨意刪除群組,如果有群組還是某使用者的初始群組,則無法刪除。

image

如上圖,執行命令 groupdel chuan 刪除名為chuan的群組刪除失敗。

Linux使用者管理到這裡就基本講解完畢了,下一章開始未大家開始講解Linux軟體包管理相關知識。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

image

相關文章