一、基本概念
1、基本介紹
linux作為一種多用戶的操作系統(服務器系統),允許多個用戶同時登錄到系統上,并響應每個用戶的請求。任何需要使用操作系統的用戶,都需要一個系統賬號,賬號分為:管理員賬號與普通用戶賬號。在Linux中,操作系統根據UID來判斷用!根據UID來判斷用戶!而不是用戶名!只要id為0就是管理員,哪怕有多個id為0 的賬號;系統在新建賬號時,會根據賬號類型,自動分配遞增賬號的UID與GID (用戶身份編號,組編號),也可自行分配。通常情況下,應當保證UID與GID唯一且不重復。
2、Linux的單用戶任務和多用戶任務
在Linux下,當你登錄后,你也可以同時開啟很多的服務任務和進程,而各自服務都會跑的很好卻對其他任務沒有任何影響,這種登錄一個用戶登錄系統執行多個服務任務和進程的情況,就稱為單用戶多任務。多用戶任務——有時可能是很多用戶同時用同一個系統,如公司幾十個運維人員,每臺機器都可以和被若干個運維人員登錄部署或解決相關故障問題,但并不是所有的運維人員都要做同一件事,所以就有了多任務、多用戶的情況。注:多用戶、多任務并不是大家同時擠到一起,在一臺機器的鍵盤和顯示器前來操作機器,多用戶可能是通過SSH客戶端工具等遠程工具等遠程登錄服務器來進行,比如對服務器的運程控制,只要具有相關用戶的權限,任何人都是可以上去操作訪問服務器。
3、Linux系統用戶角色劃分
用戶在系統中是分角色的,在Linux系統中,由于角色的不同,權限和所完成的任務也不同;值得注意的是用戶的角色是通過UID和GID識別的;特別是UID,在運維工作中,一個UID是唯一標識一個系統用戶的賬號。
用戶賬戶:
超級用戶root(0)
程序用戶(1~499)
普通用戶(500~65535)
超級用戶:
默認是root用戶,其UID和GID均為0。在每臺unix/linux操作系統中都是唯一且真實存在的,通過它可以登錄系統,可以操作系統中任何文件和命令,擁有最高的管理權限。在生產環境,一般禁止root賬號遠程登錄SSH連接服務器,以加強系統安全。
普通用戶:
這類用戶一般是由具備系統管理員root的權限的運維人員添加的
程序用戶:
與真實用戶區分開來,這類用戶的最大特點是安裝系統后默認就會存在的,且默認情況不能登錄系統,它們是系統正常運行必不可少的,
他們的存在主要是方便系統管理,滿足相應的系統進程的文件屬主的要求。例如系統默認的bin、adm、nodoby、mAIl用戶等。由于服務器角色的不同,有部分用不到的系統服務被禁止開機執行,因此,在做系統安全優化時,被禁止開機啟動了的服務對應的虛擬用戶也是可以處理掉的(刪除或注釋)。
4、用戶和用戶組介紹
二、用戶及用戶組配置文件介紹
在Linux中,萬物皆文件,所以用戶與組也以配置文件的形式保存在系統中,以下為用戶和組的主要配置文件詳解:- /etc/passwd:用戶及其屬性信息(名稱、 UID、主組ID等)- /etc/group:組及其屬性信息- /etc/shadow:用戶密碼及其相關屬性- /etc/gshadow:組密碼及其相關屬性
1、/etc/passwd詳解
作用:用于存儲系統上的用戶賬戶信息。每一行代表一個用戶賬戶,包含了一些關于該用戶的基本信息。每行格式:username:password:UID:GID:GECOS:home directory:shell解釋1.username:用戶名,用于識別用戶。2.password:加密后的用戶密碼,現在通常是一個占位符,實際的加密密碼保存在 /etc/shadow 文件中。3.UID:用戶標識號,是一個唯一的數字,用于標識用戶在系統中的身份。4.GID:用戶所屬的組標識號,指示用戶屬于哪個主要的用戶組。5.GECOS:一般的用戶信息,包括用戶的全名、電話號碼、地址等。6.home directory:用戶的主目錄,用戶登錄時所在的默認目錄。7.shell:用戶登錄時使用的默認shell,用于執行命令和交互。每當創建一個新用戶時,系統會將該用戶的信息添加到 /etc/passwd 文件中。用戶可以使用該文件中的信息來驗證身份、分配資源和執行其他權限控制操作。
2、/etc/group詳解
作用:用于存儲系統上的用戶組信息。每一行代表一個用戶組,包含了一些關于該用戶組的基本信息。每行格式:groupname:password:GID:userlist解釋:1.groupname:用戶組名,用于識別用戶組。2.password:用戶組密碼,現在通常是一個占位符,實際的加密密碼保存在 /etc/gshadow 文件中。3.GID:用戶組標識號,是一個唯一的數字,用于標識用戶組在系統中的身份。4.userlist:屬于該用戶組的用戶列表,多個用戶名之間用逗號分隔。每當創建一個新用戶組時,系統會將該用戶組的信息添加到 /etc/group 文件中。用戶組可以用于管理和組織用戶,例如分配文件和目錄的訪問權限,以及在用戶之間共享資源。
3、/etc/shadow詳解
用于存儲系統用戶的加密密碼。它包含了用戶賬戶的散列密碼和其他與安全相關的信息。每行格式:username:password:lastchanged:minage:maxage:warnexpire:inactive:expire:reserved解釋:1.username:用戶的登錄名。2.password:用戶的加密密碼。現在通常是一個散列值,實際的密碼保存在 /etc/passwd 文件中。3.lastchanged:用戶密碼上次更改的日期,以自UTC 1970年1月1日以來的天數計算。4.minage:用戶密碼被更改之前必須保持的最小天數。5.maxage:用戶密碼過期之前的最大天數。6.warnexpire:在密碼過期之前給用戶的警告天數。7.inactive:在用戶賬戶被禁用之前的非活動天數。8.expire:用戶賬戶的過期日期,以自UTC 1970年1月1日以來的天數計算。9.reserved:保留字段,目前未使用。/etc/shadow 文件通常只對特定的權限用戶可讀,以保護用戶密碼的安全性。只有具備特定權限的用戶才能修改、查看或操作該文件。
4、/etc/gshadow詳解
用于存儲系統用戶組的加密密碼。它類似于 /etc/shadow 文件,但是用于用戶組而不是用戶。每行格式groupname:encryptedpassword:administrators:members解釋:1.groupname:用戶組的名稱。2.encryptedpassword:用戶組的加密密碼。通常是一個散列值,實際密碼通常不直接存儲在此文件中。3.administrators:具有管理權限的用戶列表,以逗號分隔。4.members:屬于該用戶組的用戶列表,以逗號分隔。
三、用戶管理
1、添加用戶
語法:useradd 選項 用戶名選項:-u 指定用戶的uid-g 指定用戶的gid-G 指定附屬組,可以有多個, 但是這些附屬組必須是系統內已經存在的-c 指定描述-d 指定家目錄-M 不建立家目錄-s 指定shell-e 指定用戶過期時間, 日期-f 指定用戶過期時間, 天數注意:若不帶任何選項默認創建與用戶同名的用戶主組和家目錄,用戶的用戶主組在passwd文件查看,用戶附加組在group文件查看;
2、修改用戶
語法:usermod 選項 用戶名選項:-g 指定用戶的用戶主組,選項值為id號或組名-G 指定用戶的用戶附加組,選項值為id號或組名-u 指定用戶的uid(不指定默認從500開始向后分配)-l 修改用戶的用戶名
3、設置密碼
語法:passwd 用戶名選項:-k,--keep-tokens 保留未過期的認證令牌-d,--delete 刪除指定賬戶的密碼(僅限root)-l,--lock 鎖定指定帳戶的密碼(僅限root)-u,--unlock 解鎖指定賬戶的密碼(僅限root用戶)-e,--expire 指定指定賬戶的密碼過期(僅限root)-f,--force 強制操作-x,--maximum=DAYS 最大密碼生存期(僅限root用戶)-n,--minimum=DAYS 密碼最短生存期(僅限root用戶)-w,--warning=DAYS 用戶在密碼過期前收到警告的天數(僅限root用戶)-i,--inactive=DAYS 密碼過期后禁用帳戶的天數(僅限root用戶)-S,--status 報告指定帳戶的密碼狀態(僅限root)回車后即可輸入新密碼,需要輸入兩次密碼且沒有輸入提示,修改密碼也是這個語法注意:沒有密碼的用戶是不能登錄Linux系統的,沒有設置密碼的新創建用戶處于鎖定狀態,需要設置密碼后才能登錄系統;免交互修改密碼:echo "密碼" | passwd --stdin 用戶名
4、切換用戶
語法:su [用戶名]若不指定用戶名,默認切換為root用戶注意:root用戶切換到其他用戶不需要密碼,反之需要密碼;切換用戶前后當前目錄不變;普通用戶不能進入root用戶家目錄,反之可以;
5、刪除用戶
語法:userdel 選項 用戶名選項:-r 表示刪除用戶的同時刪除其家目錄
四、用戶組管理
1、用戶組添加
語法:groupadd 選項 用戶組名選項:-g 指定用戶組的id,若不指定默認從500開始向后分配
2、用戶組修改
語法:groupmod 選項 用戶組名選項:-g 指定用戶組id-n 修改用戶組名稱
3、用戶組刪除
語法:groupdel 用戶組名注意:若該用戶組是某個用戶的主組時無法被刪除,除非將用戶移出該用戶組;






