一. 用戶的由來
linux系統擁有的就是資源,最重要的事就是對資源的分配,資源分給誰?在linux上資源的訪問是對用戶
賦予不同的權限實現,也就是說能訪問資源的單位是用戶。那用戶在獲取資源之前要實現證明自己是本用
戶,這個過程稱為認證,他通過密碼和用戶名實現。在用戶登錄時會將用戶輸入的用戶名和密碼進行校驗
,校驗過程就是將輸入的用戶名和密碼與linux系統上記錄的用戶名和密碼進行對比,相同就登錄成功,反
之,就登錄失敗。那系統上記錄用戶和密碼的文件就是我們要重點談論的,分別在/etc/passwd和/etc/shadow。
接下來我們就圍繞這兩個配置文件及其相關的命令談一談。
用戶的分類
linux對用戶通過其獲取資源的能力劃分成二類用戶:
1.管理員用戶:是linux系統中的神,無所別能,不受權限的限制。 2.普通用戶:獲取資源受權限限制,他根據用處分為兩類 a. 系統用戶:linux中每一個進程都有一個發起者,而又一些進程是系統啟動時開啟的服務 進程。這些系統服務經常的發起者就是這些系統用戶。而這些系統用戶不必登錄到計算機, 這類用戶就叫做系統用戶。 b.登錄用戶:lunux是一個多人多工的操作系統,這類用戶可以登錄后根據權限享有資源。
/etc/passwd配置文件簡介
我們通過head 查看前五行內容:
[root@localhost ~]# head -n 5 /etc/passwd root:x:0:0: :/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
其中每一行表示一個用戶,每個用戶多分為七個字段用分號隔開。這七個字段從左到右表示的意思分別為:
1.USERNAME:用戶姓名 2.PASSWD:用戶密碼,但在此處不顯示,密碼保存在/etc/shadow文件中。早期的密碼是放在此文件中 由于放在這不安全,將其移到/etc/shadow文件下,文件名沒變是為了兼容老版本 3.UID:用戶id號,因為計算機更容易識別數字,故每一個用戶都有一個唯一表示ID,且用戶識別并不 是通過用戶名字而是用戶ID,例如在linux中ID為0的用戶是管理員 4.GID:用戶主組。 5.context:注釋信息。 6.HOME DIRECTORY:用戶家目錄,用戶登錄之后所處的目錄 7.SHELL:用戶登錄后使用的shell,shell是用戶與linux內核打交道的接口
/etc/passwd配置文件簡介
通過head查看配置文件內容為:
[root@localhost ~]# head -n 5 /etc/shadow root:$6$Of1m6zsD$8ZbhnzL1T95JnLNOH8YFC7CMth7DWhUsMl3KP.YR/TygDrcqSKJ6UFVLE/SDJaEIlhj09ZwQgJqQkMTDmZIf60:17097:0:99999:7::: bin:*:17097:0:99999:7::: daemon:*:17097:0:99999:7::: adm:*:17097:0:99999:7::: lp:*:17097:0:99999:7:::
每個字段以冒號為分隔符,可以看到每個密碼有九個字段,分別表示的意思為:
1.login name:用戶名 2.encrypted password:密碼,以$符分為三個字段從左到右分別為 a.第一個字段為加密算法,有1-6六個數字分別對應的算法為:MD5,SHA1,SHA224,SHA224,SHA256 SHA384,SHA512。root用戶中的6就表示sha512。 b.第二個字段為salt,是8位隨機數,是為了反正密碼相同的不同用戶密碼一樣而生成的隨機數 c.第三個字段為生成的密文,即密碼。 3.date of last password change:密碼最后一次修改距離linux元年(1970.01.01)的天數 4.minimum password age:密碼再次修改最小經過的天數 5.maximum password age:密碼最大使用天數,過了這個天數就要修改 6.password warning period:警告時間,密碼到最大使用天數前多少天開始警告,提示用戶密碼快 到最大使用時間需要修改了 7.password inactivity period:密碼到了最大使用天數之后,賬號不可活動天數。 8.account expiration date:用戶過期時間,是1970到過期時間的天數。 9.reserved field:保留字段。
用戶相關命令簡介
useradd:創建一個新用戶,主要創建的shi/etc/passwd中的信息。
重要參數為: -r:創建系統用戶 -u:指定用戶id -g:指定指定用戶屬id -G:指定用戶附加組id -s:指定用戶登錄shell -c:用戶注釋信息 -d:指定用戶家目錄 -m:創建用戶家目錄 -M:不創建用戶家目錄 -c:注釋用戶信息
chage和passwd:主要修改/etc/shadow中的數據。具體選項可以查看man幫助,值得注意的是passwd可以通
過-l和-u鎖定和解鎖用戶密碼。
usermod:修改制定用戶數據,處理修改/etc/passwd的一些常規信息,還可以是用-L和-U鎖定和解除用戶
密碼,鎖定密碼實際上是在密碼前加一個!號
chfn USERNAME:修改用戶注釋信息。
finger USERNAME:查看用戶信息
userdel:刪除用戶 -r選項表明連同家目錄頁一并刪除。
用戶信息默認配置文件
當我們在創建用戶沒有指定shell,家目錄等信息是,我們發現盡管沒有指定,但依舊有shell,家目錄等。
那么這些默認的屬性來自那呢?這些默認信息都寫在/etc/login.defs和/etc/default/useradd中看看都
定義了一些什么屬性。
/etc/login.defs:
PASS_MAX_DAYS 99999 #密碼最大使用時間
PASS_MIN_DAYS 0 #密碼最小實用時間
PASS_MIN_LEN 5 #密碼最小長度
PASS_WARN_AGE 7 #密碼提前警告時間天數
ENCRYPT_METHOD SHA512 #指定了密碼加密算法
CREATE_HOME yes #默認創建家目錄
UID_MIN 500 #用戶id最小值
UID_MAX 60000 #用戶id最大值
…
/etc/default/useradd
GROUP=100 #創建用戶使用-N選項是默認的基本組
HOME=/home #家目錄創建目錄
INACTIVE=-1 #密碼非活動時間
EXPIRE=
SHELL=/bin/bash #默認shell類型
SKEL=/etc/skel #拷貝到家目錄下的文件
CREATE_MAIL_SPOOL=yes #是否創建郵箱
二.組的概念
在上面我們提到過,操作系統最大的作用是管理資源。而為了對某一類用戶進行資源的分配和使用,我們
提出了組的概念。與組相關的兩個配置文件為:/etc/group, /etc/gshadow。
組的分類
它和分類一樣 1.管理員組 2.用戶組: a.系統組 b.登錄組 站在用戶的角度分: 1.用戶的基本組,也稱為主組。 2.附加組
/etc/group
查看文件格式為:
[root@localhost ~]# head -n 5 /etc/group root:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon
以逗號為分隔符,五個字段分別為:
1.用戶名 2.用戶密碼,與/etc/passwd一樣真正的密碼在其他文件中 3.GID:組ID號 4.用戶成員列表
/etc/gshadow配置文件
查看配置文件內容為:
[root@localhost ~]# head -n 5 /etc/gshadow root::: bin:::bin,daemon daemon:::bin,daemon sys:::bin,adm adm:::adm,daemon
以逗號為分隔符,五個字段分別為:
1.用戶名 2.用戶密碼,實際上組一般不設置密碼,設置密碼后用戶使用newgrps命令屬于密碼切換屬組,這是不 安全的。 3.組的屬主,屬組可對此組用戶成員進行增刪。 4.用戶成員列表。
組相關命令簡介
groupadd:添加組
groupmod:修改組信息
groupdel:刪除組
gpasswd:修改組命令
id USERNAME:查看用戶id和組信息
groups USERNAME:查看用戶的基本組和附加組。
groupmems -l -g GROUPNAME:查看組中有哪些成員。
三. 用戶和組的關聯
在創建用戶時如果沒有指定基本組就會創建一個同名的組,這個組中的會有一個成員列表為新創建的用戶。
用戶id名稱的改變,并不會影響相同組的改變,因為兩者之間沒有直接聯系,只是組成員中的列表會隨著
成員用戶名稱的改變而改變。用戶和組沒有關聯,只是名字相同而已
原創文章,作者:lirou,如若轉載,請注明出處:http://www.www58058.com/53694