Linux用戶user,組group詳解

一、用戶user

Linux用戶分爲管理員和普通用戶,普通用戶又分爲系統用戶和自定義用戶。可以查看/etc/passwd來查看。如下所示:(部分)

root:x:0:0:root:/root:/bin/bash
pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lilei:x:500:500::/home/lilei:/bin/bash
wangcai:x:502:503::/home/wangcai:/bin/bash


1、系統管理員:即root帳戶,UID號爲0,擁有所有系統權限,它類似於Windows系統中的administrator帳戶,是整個系統的所有者。
2、系統用戶:linux爲滿足自身系統管理所內建的賬號,通常在安裝過程中自動創建,不能用於登錄操作系統。UID在1-499之間(centos7爲1-999之間)。像上面的sshd、pulse等等用戶即是此類用戶。它類似於Windows中的system帳戶,當然權限遠沒有system帳戶高。
3、自定義用戶:由root管理員創建供用戶登錄系統進行操作使用的賬號,UID在500以上(centos7爲1000以上)。它類似於Windows系統中users用戶組中的帳戶 。

而在該文件中,每一行用戶記錄的各個數據段用“:”分隔,分別定義了用戶的各方面屬性。各個字段的順序和含義如下:

我們以這個wangcai普通用戶爲例

wangcai:x:502:503::/home/wangcai:/bin/bash

註冊名:口令:用戶標識號(uid):組標識號(gid):註釋性描述:用戶主目錄:用戶登陸的shell類型


 (1)註冊名(login_name):用於區分不同的用戶。在同一系統中註冊名是惟一的。在很多系統上,該字段被限制在8個字符的長度之內;並且要注意,通常在Linux系統中對字母大小寫是敏感的,登錄名中不能有冒號(:),因爲冒號在這裏是分隔符。爲了兼容起見,登錄名中最好不要包含點字符(.),並且不使用連字符(-)和加號(+)打頭。這與MSDOS/Windows是不一樣的。


 (2)口令(passwd):一些系統中,存放着加密後的用戶口令字。雖然這個字段存放的只是用戶口令的加密串,不是明文,但是由於/etc/passwd文件對所有用戶都可讀,所以這仍是一個安全隱患。因此,現在許多Linux系統(如SVR4)都使用了shadow技術,把真正的加密後的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個特殊的字符,例如“x”或者“*”。超級用戶root可以使用系統命令passwd來更改系統中所有用戶的口令,普通用戶也可以在登錄系統後使用passwd命令來更改自己的口令


(3)用戶標識號(UID):是一個整數,系統內部用它來標識用戶。一般情況下它與用戶名是一一對應的。如果幾個用戶名對應的用戶標識號是一樣的,系統內部將把它們視爲同一個用戶,但是它們可以有不同的口令、不同的主目錄以及不同的登錄Shell等。取值範圍是0-65535。0是超級用戶root的標識號,1-99由系統保留,作爲管理賬號,普通用戶的標識號從100開始。在Linux系統中,這個界限是500。


(4)組標識號(GID):這是當前用戶的工作組標識。具有相似屬性的多個用戶可以被分配到同一個組內,每個組都有自己的組名,且以自己的組標 識號相區分。像UID一樣,用戶的組標識號也存放在passwd文件中。在現代的Unix/Linux中,每個用戶可以同時屬於多個組。除了在 passwd文件中指定其歸屬的基本組之外,還在/etc/group文件中指明一個組所包含用戶。


(5)註釋性描述(users):字段記錄着用戶的一些個人情況,例如用戶的真實姓名、電話、地址等,這個字段並沒有什麼實際的用途。在不同的Linux系統中,這個字段的格式並沒有統一。在許多Linux系統中,這個字段存放的是一段任意的註釋性描述文字,用做finger命令的輸出。


(6)用戶主目錄(home_directory):也就是用戶的起始工作目錄,它是用戶在登錄到系統之後所處的目錄。在大多數系統中,各用戶的主目錄都被組織在同一個特定的目錄下,而用戶主目錄的名稱默認就是該用戶的登錄名。各用戶對自己的主目錄有讀、寫、執行(搜索)權限,其他用戶對此目錄的訪問權限則根據具體情況設置。


(7)登錄Shell(Shell):用戶登錄後,要啓動一個進程,負責將用戶的操作傳給內核,這個進程是用戶登錄到系統後運行的命令解釋器或某個特定的程序,即Shell。Shell是用戶與Linux系統之間的接口。Linux的Shell有許多種,每種都有不同的特點。常用的有sh(BourneShell),csh(CShell),ksh(KornShell),tcsh(TENEX/TOPS-20typeCShell),bash(BourneAgainShell)等。系統管理員可以根據系統情況和用戶習慣爲用戶指定某個Shell。如果不指定Shell,那麼系統使用sh爲默認的登錄Shell,即這個字段的值爲/bin/sh。而當用戶shell類型爲/sbin/nologin,則是該用戶無法登陸系統。

  用戶的登錄Shell可以指定爲某個特定的程序(此程序不是一個命令解釋器)。利用這一特點,我們可以限制用戶只能運行指定的應用程序,在該應用程序運行結束後,用戶就自動退出了系統。有些Linux系統要求只有那些在系統中登記了的程序才能出現在這個字段中



二、組group

在linux中的每個用戶必須屬於一個組,不能獨立於組外。在linux中每個文件有所有者、所在組、其它組的概念。同樣用戶組的信息我們可以在/etc/group中查看。如下所示(部分)

root:x:0:
bin:x:1:bin,daemon
stapdev:x:158:
tcpdump:x:72:
screen:x:84:
lilei:x:500:
admins:x:502:
wangcai:x:503:
sysadmins:x:504

這裏我同樣只展示出了一部分,它們各個數據間同樣用:分隔,每個數據代表的意義也各有不同

我們同樣用bin組爲例

bin:x:1:bin,daemon

組名:組密碼:組標識號(GID):附加組成員

linux組的類別:

  用戶的主要組(primary group):用戶必須屬於一個且只有一個組

  用戶的附加組(supplementary group):一個用戶可以屬於一個或者零個附加組


而文件一般分爲

- 所有者

- 所在組

- 其它組


 

所有者

一般爲文件的創建者,誰創建了該文件,就天然的成爲該文件的所有者

用ls ‐ahl命令可以看到文件的所有者

也可以使用chown 用戶名 文件名來修改文件的所有者

 

文件所在組

當某個用戶創建了一個文件後,這個文件的所在組就是該用戶所在的組

用ls ‐ahl命令可以看到文件的所有組

也可以使用chgrp 組名 文件名來修改文件所在的組

 

其它組

除開文件的所有者和所在組的用戶外,系統的其它用戶都是文件的其它組


Linux用戶和組的主要配置文件

-/etc/passwd:用戶機器屬性信息(名稱、UID、主組ID等)

-/etc/group:組及其屬性信息

-/etc/shadow:用戶密碼及其相關信息

-/etc/gshadow:組密碼及其相關信息


前兩個配置文件我們已經介紹過了,這裏我們講一下/etc/shadow文件,/etc/shadow 是/etc/passwd的密碼映射過去產生的文件,因爲/etc/passwd爲所有用戶都可讀的文件所以會導致用戶密碼不安全,而/etc/shadow文件只有root能看,其他用戶不能訪問。

pwconv 將passwd當中的密碼映射到了/etc/shadow

pwunconv 取消映射,密碼仍然放在/etc/passwd當中

/etc/shadow裏的文件如下所示(部分)

postfix:!!:17539::::::
gdm:!!:17539::::::
pulse:!!:17539::::::
sshd:!!:17539::::::
tcpdump:!!:17539::::::
lilei:$6$uPmj3VzY$xXEir7SSxj9R.sjbki3PfqDjNmdjavplQ5HXZjcGtULLiyenLv1VLHe.6cdidI1wQNjEkijiDfbfXWQc0Plss0:17544:0:99999:7:::
wangcai:!!:17547:0:99999:7:::

這裏同樣以:爲分隔符,隔個字段含義如下

登陸用戶名:

用戶密碼(!!表示沒有設置密碼):

從1970年1月1日起到密碼最近一次被更改的時間:

密碼再過幾天可以被更改(0表示可以隨時被修改):

密碼再過幾天必須被更改(99999表示99999天后過期,也就相當於永不過期):

密碼過期前幾天系統提醒用戶(默認爲一週):

密碼過期幾天後賬號會被鎖定:

從1970年1月1日算起,多少天后賬號失效:


/etc/gshdow文件同樣是/etc/group文件裏的密碼映射文件

 

grpconv 將組密碼映射到了/etc/gshadow

 grpunconv 取消組密碼的映射


/etc/gshadow裏的文件如下所示:(部分)

stapdev:!::
tcpdump:!::
screen:!::
lilei:!::
admins:!::
wangcai:!::
sysadmins:!::

組名:組密碼:組管理員列表:以當前組爲附加組的用戶列表(分隔符爲逗號)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章