LINUX中的用戶和組
目錄
一,用戶和組
二,Linux用戶和組的主要配置文件
三,關於用戶維護的一些常見命令
四,組帳號維護命令
用戶和組
在linux中當UID(用戶編號)為0的是root用戶,因為系統也需要一些進程加載,而每個進程的加載也需要一個用戶去發起,所以在每個linux系統上都有一些系統用戶。而登錄用戶就是我們創建的用戶:
Linux用戶:Username/UID
管理員: root, 0
普通用戶:1-65535 (UID)
系統用戶:1-499 1-999
登錄用戶: 500+ 1000+
(CentOS6) (CentOS7)
×CentOS7 中因為系統的進程增多了,所以系統用戶相應的增多了
在我們系統中有很多系統用戶,而系統用戶中有很多不可交互式的用戶,這樣做的原因是為了給不同的系統服務和進程一個啟動的賬戶去管理它們。 由於不同用戶去管理不同的進程,當某個進程出現漏洞時,受它所對應的賬戶權限限制,且系統用戶中有很多不可交互式的用戶,所以不怕被有心人利用,去對系統造成大的危害。但是每個文件不能只被root用戶和文件所有人用戶訪問,所以我們的系統出現了“組”。在linux中的每個用戶必須屬於一個組,不能獨立於組外。在linux中每個文件有所有者、所在組、其它組的概念。
Linux組的類別:
用戶的主要組(primary group):
用戶必須屬於一個且只有一個主組
用戶的附加組(supplementary group):
一個用戶可以屬於零個或多個輔助組
建議不要把別的用戶的主組,也就是私有組,當做別的用戶的附家組
無獨有偶,每個組也有一個GID(組的編號),跟UID類似:
Linux組:Groupname/GID
管理員組:root, 0
普通組:
系統組 1-499 1-999
普通組 500+ 1000+
(CentOS6) (CENTOS7)
Linux用戶和組的主要配置文件:
/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等) /etc/group:組及其屬性信息 /etc/shadow:用戶密碼及其相關屬性 /etc/gshadow:組密碼及其相關屬性
在/etc/passwd中每項內容以“:”隔開,其每部分代表的意義為:
login name:登錄用名(root)
passwd:密碼 (x)
UID:用戶身份編號 (0)
GID:登錄默認所在組編號 (0)
GECOS:用戶全名或註釋
home directory:用戶主目錄
shell:用戶默認使用shell (/bin/bash)
在/etc/group中每項內容也是以“:”隔開的,其每部分意義為:
群組名稱:就是群組名稱?
群組密碼:通常不需要設定,密碼是被記錄在/etc/gshadow
GID:就是群組的 ID
以當前組為附加組的用戶列表(分隔符為逗號)
在/etc/shadow文件中中每項內容也是以“:”隔開的,其每部分意義為:
登錄用名
用戶密碼:一般用sha512加密
從1970年1月1日起到密碼最近一次被更改的時間
密碼再過幾天可以被變更(0表示隨時可被變更)
密碼再過幾天必須被變更(99999表示永不過期)
密碼過期前幾天系統提醒用戶(默認為一周)
密碼過期幾天後帳號會被鎖定
從1970年1月1日算起,多少天後帳號失效
被紅色框圈起來的部分代表改賬戶設置的密碼的轉碼,無密碼者顯 示“!!”
在/etc/gshadow文件中中每項內容也是以“:”隔開的,其每部分意義為:
群組名稱:就是群組名稱
群組密碼:
組管理員列表:組管理員的列表,更改組密碼和成員
以當前組為附加組的用戶列表:(分隔符為逗號)
關於用戶維護的一些常見命令:
用戶管理命令 : useradd usermod userdel
useradd 命令
useradd命令用於Linux中創建的新的系統用戶。useradd可用來建立用戶帳號。帳號建好之後,再用passwd設定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實際上是保存在/etc/passwd文本文件中
useradd(選項)(參數)
-u UID 指定uid默認從1000開始往後
-o 與 -u 配合,不檢查UID的唯一性
-g GID或組名 指定用戶的主要組為某個已存在的組,可以指定GID也可以指定組名
-G 指定附加組 以逗號為間隔可以同時指定多個,組必須事先存在,可以指定GID也可以指定組名。
-c 註釋信息
-d 指定目錄路徑 ,如不指定默認在/home下與用戶同名。指定時註意,目錄名需已存在,基名不存在。
-s 指定登錄shell如下
useradd -s /sbin/nologin test創建shell為不可交互式登錄的用戶
-N 不創建私用組做主組,使用users組做主組
-r 創建系統用戶 (centos 6及之前的版本 < 500, centos 7 < 1000)
usermod 命令
usermod命令用於修改用戶的基本信息。usermod命令不允許你改變正在線上的使用者帳號名稱。當usermod命令用來改變user id,必須確認這名user沒在電腦上執行任何程序。
usermod
-u NEWUID 用戶名 修改用戶的uid
-g NEWGID 用戶名 修改用戶的主要組 可以指定組名,也可以指定GID
-G GID或組名[,組名] 用戶名 設定用戶的附加組為哪些組,這前的附加組信息被覆蓋
-a 與-G 結合 使用可以增加用戶的附加組,而不會影響之前的附加組
-s shell名 用戶名 修改用戶的Shell
-c "描述信息" 設置用戶的描述信息
-d /path 用戶名 修改用戶的家目錄,新家目錄不會自動創建;若要創建新家目錄並移動原家數據,同時使用-m選項
-l newname 用戶名 修改用戶的名稱
-L: lock指定用戶,在/etc/shadow 密碼欄的增加 ! 等同於passwd -l
-U: unlock指定用戶,將 /etc/shadow 密碼欄的 ! 拿掉 等同於passwd -u
-e YYYY-MM-DD: 指明用戶賬號過期日期
-f INACTIVE: 設定非活動期限
userdel 命令
userdel命令用於刪除給定的用戶,以及與用戶相關的文件。若不加選項,則僅刪除用戶帳號,而不刪除相關文件。
userdel
-f:強制刪除用戶,即使用戶當前已登錄;
-r:刪除用戶的同時,刪除與用戶相關的所有文件。
組帳號維護命令 groupadd groupmod groupdel
groupadd 命令
groupadd命令用於創建一個新的工作組,新工作組的信息將被添加到系統文件中。
groupadd(選項)(參數)
-g:指定新建工作組的id;
-r:創建系統工作組,系統工作組的組ID小於500;
-K:覆蓋配置文件“/ect/login.defs”;
-o:允許添加組ID號不唯一的工作組。
groupmod命令
groupmod命令更改群組識別碼或名稱。需要更改群組的識別碼或名稱時,可用groupmod指令來完成這項工作
groupmod(選項)(參數)
-g<群組識別碼>:設置欲使用的群組識別碼;
-o:重復使用群組識別碼;
-n<新群組名稱>:設置欲使用的群組名稱。
groupdel命令
groupdel命令用於刪除指定的工作組,本命令要修改的系統文件包括/ect/group和/ect/gshadow。若該群組中仍包括某些用戶,則必須先刪除這些用戶後,方能刪除群組。 因為前面我們提到每個用戶必須具有且只有一個組。
groupdel(參數)
參數=組: 要刪除的工作組名稱
下面我們介紹一些特殊且十分有用的命令
gpasswd newgrp groupmems groups chowm
gpasswd 命令
gpasswd 組名 設置組密碼 管理員可以執行
-a 用戶名 組名 將某用戶以附加組方式加入到某組當中 組管理員可以執行
-d 用戶名 組名 將某用戶從指定組當中踢出 組管理員可以執行
-M 用戶名[,用戶名...] 組名 設置某組的用戶列表 僅root執行
-A 用戶名[,用戶名...] 組名 設置某組的管理員列表 僅root執行
組管理員在不是組成員的情況下,僅能修改組密碼,和將其他人加入組和踢出組,但並不具有組成員的權限.、
newgrp命令
newgrp 組名 (普通用戶執行)
非附加組成員的普通用戶在正確輸入組密碼後可以使用該命令臨時變更主要組.
附加組成員的普通用戶無需輸入密碼可以使用該命令臨時變更主要組. 原主要組臨時變成附加組
groupmems 命令
groupmems 僅root執行
-g 組名 -a 用戶名 將某用戶以附加組方式加入到某組當中
-g 組名 -d 用戶名 將某用戶從指定組當中踢出
-g 組名 -p 清空所有組成員
-g 組名 -l 查看指定組有哪些成員(僅顯示附加組)
groups 用戶名 查看指定用戶屬於哪些組(包含主組和附加組)
chowm 命令
chown 僅root才能更改文件的所屬人
用戶名 filename
用戶名.組名 filename 或 用戶名:組名 filename 同時更改owner和group 如果.或:前省略,則只改group
LINUX中的用戶和組