Linux 使用者和使用者組命令詳解

pythontab發表於2016-10-31

1.useradd 命令:新增使用者

Linux 中使用 useradd 命令新增一個使用者。這個命令很簡單,簡單到只使用 useradd USERNAME 就可以新增一個使用者。

useradd -u UID:指定 UID,這個 UID 必須是大於等於500,並沒有其他使用者佔用的 UID

useradd -g GID/GROUPNAME:指定預設組,可以是 GID 或者 GROUPNAME,同樣也必須真實存在

useradd -G GROUPS:指定額外組

useradd -c COMMENT:指定使用者的註釋資訊

useradd -d PATH:指定使用者的家目錄

useradd -s SHELL:指定使用者的預設 shell,最好是在 /etc/shells 中存在的路徑

useradd -s /sbin/nologin:該使用者不能登入,還記得我們上面說到的系統使用者不能登入吧?我們可以看到系統使用者的 shell 欄位也是 /sbin/nologin

echo $SHELL :檢視當前使用者的 shell 型別

useradd -M USERNAME:建立使用者但不建立家目錄

useradd -mk USERNAME:建立使用者的同時建立家目錄,並複製 /etc/skel 中的內容到家目錄中。

如果使用者沒有家目錄,那麼不能切換到該使用者


2.userdel 命令:刪除使用者

userdel USERNAME:刪除使用者

userdel -r USERNAME:刪除使用者的同時刪除使用者家目錄


3.id 命令:顯示賬號屬性資訊

id -g USERNAME:顯示預設組ID

id -G USERNAME:顯示附加組ID

id -u USERNAME:顯示UID

id -n -g/-G/-U:顯示預設組/附加組/使用者的名稱


4.finger 命令:檢索使用者資訊

finger命令比使用 id 命令更加友好, 資料顯示格式更加美觀, 而且會顯示mail等資訊。

  

5.usermod 命令:修改使用者資訊

基本用法和 useradd 相似,這裡列出需要注意的點

usermod -G GROUPS USERNAME:改變使用者的附加組,會完全替換原有的附加組

usermod -G -a GROUPS USERNAME:在原有附加組的基礎上追加附加組

usermod -d PATH USERNAME:修改家目錄。修改後原先家目錄中的檔案不能訪問了,因為在當前的家目錄中並不存在這些檔案。

usermod -l NEWNAME USERNAME:改變使用者名稱

usermod -e USERNAME:指定該使用者的過期時間

usermod -L USERNAME:鎖定使用者

usermod -U USERNAME:解鎖使用者


6.快捷命令

chsh SHELL USERNAME:改變預設 shell

chfn USERNAME:修改註釋資訊,用來增加使用者的詳細資訊,如公司,地址等。可以由 finger 檢視相應的改變。


7.passwd

passwd --stdio:標準輸入讀取密碼passwd -l:鎖定使用者賬號(root only)

echo "newpassword" | passwd --stdio MIKE

passwd -u:解鎖使用者賬號(root only)

passwd -d:刪除使用者密碼。使用者密碼刪除後不能登入。


8.pwch(password check):檢查密碼檔案的完整性,可獲取一些警告資訊


9.groupadd 命令:新增組

groupadd -g GID GROUPNAME:指定GID

groupadd -r GROUPNAME:新增一個系統使用者組(-r 也適用於 useradd)

groupadd -r apache


10.groupmod 命令:修改組

groupmod -g NEWGID GROUPNAME:修改GID

groupmod -n NEWGROUPNAME GROUPNAME:修改組名


11.groupdel 命令:刪除組

groupdel GROUPNAME


12.gpasswd 命令:給組加密碼

gpasswd GROUPNAME


12.newgrp :臨時指定基本組,下文介紹。


13.給組新增密碼的作用

  為什麼需要給組新增密碼呢?不妨先說一下使用者的基本組,好像到現在我們還沒有講基本組的情況吧,嘿嘿。基本組很簡單,Linux 規定每個使用者都需要在某一個組中,因此在建立使用者的時候,我們可以指定使用者的基本組(預設組):useradd -g GROUPNAME USERNAME。如果我們不手動指定使用者的基本組,系統會預設建立一個和當前使用者名稱一致的組,然後將這個組設定為使用者的基本組。基本組的 GID 預設和使用者 UID 一致(如果不被佔用的話)。


  為啥使用者必須要有一個組呢?因為 Linux 規定,一個檔案的需要具備三種許可權:檔案所屬主的許可權,檔案所屬主所在組的許可權,以及其他使用者的許可權。因此檔案的所屬主要是沒有基本組的話,那是不是非常尷尬呢。這個問題先說到這裡。


  回頭看一下 gpasswd 的作用,一般情況下我們是不需要為組設定密碼的。現在提一個需求:在執行某項操作的時候,要使用到其他組的許可權,就需要臨時切換到其他組,又不想改變現有組,那麼就需要使用 newgrp 命令,newgrp 命令就是用來臨時切換使用者基本組,注意此操作只對當前登入有效。在使用 newgrp 的時候,可能需要我們輸入組密碼。為什麼是可能呢?因為在將額外組臨時設定為使用者的基本組時,是不需要密碼的。只有將此前和使用者毫不相關的組臨時設定為基本組才會需要密碼。如需還原基本組:exit 或者 logout。


相關文章