1、用戶userlinux
Linux用戶分爲管理員和普通用戶,普通用戶又分爲系統用戶和自定義用戶。能夠查看/etc/passwd來查看。以下所示:(部分)shell
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
一、系統管理員:即root賬戶,UID號爲0,擁有全部系統權限,它相似於Windows系統中的administrator賬戶,是整個系統的全部者。
二、系統用戶:linux爲知足自身系統管理所內建的帳號,一般在安裝過程當中自動建立,不能用於登陸操做系統。UID在1-499之間(centos7爲1-999之間)。像上面的sshd、pulse等等用戶便是此類用戶。它相似於Windows中的system賬戶,固然權限遠沒有system賬戶高。
三、自定義用戶:由root管理員建立供用戶登陸系統進行操做使用的帳號,UID在500以上(centos7爲1000以上)。它相似於Windows系統中users用戶組中的賬戶 。
centos
而在該文件中,每一行用戶記錄的各個數據段用「:」分隔,分別定義了用戶的各方面屬性。各個字段的順序和含義以下:
安全
咱們以這個wangcai普通用戶爲例
bash
wangcai:x:502:503::/home/wangcai:/bin/bashssh
註冊名:口令:用戶標識號(uid):組標識號(gid):註釋性描述:用戶主目錄:用戶登錄的shell類型tcp
(1)註冊名(login_name):用於區分不一樣的用戶。在同一系統中註冊名是唯一的。在不少系統上,該字段被限制在8個字符的長度以內;而且要注意,一般在Linux系統中對字母大小寫是敏感的,登陸名中不能有冒號(:),由於冒號在這裏是分隔符。爲了兼容起見,登陸名中最好不要包含點字符(.),而且不使用連字符(-)和加號(+)打頭。這與MSDOS/Windows是不同的。ide
(2)口令(passwd):一些系統中,存放着加密後的用戶口令字。雖然這個字段存放的只是用戶口令的加密串,不是明文,可是因爲/etc/passwd文件對全部用戶均可讀,因此這還是一個安全隱患。所以,如今許多Linux系統(如SVR4)都使用了shadow技術,把真正的加密後的用戶口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一個特殊的字符,例如「x」或者「*」。超級用戶root可使用系統命令passwd來更改系統中全部用戶的口令,普通用戶也能夠在登陸系統後使用passwd命令來更改本身的口令post
(3)用戶標識號(UID):是一個整數,系統內部用它來標識用戶。通常狀況下它與用戶名是一一對應的。若是幾個用戶名對應的用戶標識號是同樣的,系統內部將把它們視爲同一個用戶,可是它們能夠有不一樣的口令、不一樣的主目錄以及不一樣的登陸Shell等。取值範圍是0-65535。0是超級用戶root的標識號,1-99由系統保留,做爲管理帳號,普通用戶的標識號從100開始。在Linux系統中,這個界限是500。ui
(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系統要求只有那些在系統中登記了的程序才能出如今這個字段中
2、組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:!::
組名:組密碼:組管理員列表:以當前組爲附加組的用戶列表(分隔符爲逗號)