用戶,組
當我們使用Linux時,需要以一個用戶的身份運行,用戶限制使用者或進程可以使用,或不可使用哪些資源。
組,用來方便組織管理用戶
每個用戶擁有一個UserID,操作系統實際使用的是用戶ID,而非用戶名
每個用戶屬於一個主組,屬於一個或多個附屬組
每個組擁有一個GroupID
每個進程以一個用戶身份運行,並受該用戶可訪問的資源限制
每個可登錄用戶擁有一個指定的shell
用戶
用戶ID為32位,從0開始,但是為了和老式系統兼容,用戶ID限制在60000以下。
用戶分為以下三種:
root用戶 (ID為0的用戶為root用戶)
系統用戶(1~499)
普通用戶(500以上)
系統中的文件都有一個所屬於用戶及所屬組
使用id命令可以顯示當前用戶的信息
使用passwd命令你個可以修改當前用戶密碼
相關文件
/etc/passwd - 保存用戶信息
/etc/shadow - 保存用戶密碼(加密的)
/etc/group - 保存組信息
查看登錄的用戶
命令whoami顯示當前用戶
命令who顯示有哪些用戶已經登錄系統
命令w顯示有哪些用戶已經登錄並且在干什麼
pts/0:圖形界面
Linux很多時候,命令越長,顯示出來的越少,命令越少,顯示出來的越多
創建一個用戶
命令useradd創建一個新用戶
$ useradd zsd 新建一個名為zsd的用戶
這個命令會執行以下操作
1. 在/etc/passwd中添加用戶信息
2. 如果使用passwd命令為指定用戶創建密碼,則將密碼加密保存在/etc/shadow文件中
3. 為用戶創建一個新的家目錄 /home/zsd
4. 將/etc/skel 中的文件復制到用戶家目錄中(這個文件是新建用戶的一些初始文件,在這個文件中新建一些文件,例如如用戶文檔等,以後只要創建新用戶,都會自動有這些文件)
5. 建立一個與用戶用戶名相同的組,新建用戶默認屬於這個同名組
命令useradd支持以下參數
-d 家目錄
-s 登錄shell
-u userid
-g 主組
-G 附屬組
也可以通過直接修改/etc/passwd的方式實現,但是不建議
修改用戶信息
usermod 參數 username
命令usermod支持以下參數
-l 新用戶名。 $ usermod -l new_name test_user 把test_user改名為new_name
(修改新用戶名後,/home目錄下的用戶文件名不會改變,需要手動修改,否則用戶登錄找不到家目錄)
-u 新userid。 $ usermod -u 1002 test_user 把test_user的id改為1002
-d 用戶家目錄位置
-g 用戶所屬主組
-G 用戶所屬附屬組
-L 鎖定用戶使其不能登錄
-U 解除鎖定
 
刪除用戶
命令userdel 用以刪除指定用戶
$ userdel test_user (刪除用戶,但保留用戶的家目錄)
$ userdel -r test_user (刪除用戶,並且刪除該用戶家目錄)
組
幾乎所有操作系統都有組的概念,通過組,我們可以更加方便地歸類和管理用戶。一般來講,我們使用部門,職能或地理區域的分類方式來創建使用組。
每個組有一個組ID
組信息保存在 /etc/group 中
每個用戶擁有一個主組,同時還可以擁有最多31個附屬組
創建,修改,刪除組
命令groupadd用以創建組
$ groupadd lab104
命令groupmod用以修改組信息
$ groupmod -n newname oldname 修改組名
$ groupmod -g newGid oldGid 修改組ID
命令groupdel用以刪除組
$ groupdel lab104