1.用戶與組
1.1 用戶
在Linux中,用戶是能獲取系統(tǒng)資源權限的集合。不同的用戶有不同的權限集合。并且所有用戶都被賦予了一個唯一的標識--UID(User ID)。
我們根據用戶權限的不同將用戶分為兩類:
1.管理用戶( UID = 0)
2.普通用戶 (UID =1 - 65535)
2.1 系統(tǒng)用戶 (UID = 1 - 999)
2.2 登錄用戶 (UID = 1000 - 60000)
其中,管理用戶即為root。而系統(tǒng)用戶即是我們分配給系統(tǒng)進程的用戶,登錄用戶則是我們使用來登錄linux系統(tǒng)的用戶。之所以需要給每一個進程也分配一個用戶是當這些進程想要訪問或操作系統(tǒng)資源時,Linux是通過用戶來控制實現的,這些用戶也就被我們稱作系統(tǒng)用戶。
所有用戶的相關信息都被保存在配置文件/etc/passwd中,此文件的一般格式為:
用戶名:密碼或者是占位符X:UID:GID:注釋信息:主目錄:shell
而用戶的密碼在加密過后被保存在/etc/shadow中,其格式為:
name:passwd:date(最后一次修改密碼時間):min(改了密碼后至少多久才能更改):max(改了密碼后過了多少天必須更改):warning(警告期):寬限時間:過期日期:保留字段
1.2 組
組,即為用戶的集合。在一個組中的用戶意味著這些用戶對某些文件擁有相同的組權限。下圖是一個文件的屬性。這個文件是屬于lihaotong這個組的,這個組隊此文件的權限是r-x。那么,在此組中的用戶對此文件的權限就是r-x。
[圖片上傳中。。。(1)] 與Linux用戶相似的是,所有的組也都擁有一個唯一的標識--GID(Group ID)。
同時,用戶與組的關系是多對多。即一個用戶可以存在于多個組中,一個組可以擁有任意個用戶。
從用戶的角度來看,我們可以將組分為兩類:
1.innitial group
2.supplementary group
一個用戶只能擁有一個initial group,但可以擁有多個supplementary group.
組也擁有這配置文件/etc/group,其格式如下:
group_name:passwd:GID:user_list
和用戶配置一樣的是,組的密碼也保存在另一個配置文件之中---/etc/gshadow。
但是,讓人奇怪的為什么組也需要密碼?如果說用戶需要密碼是為了登錄系統(tǒng)進行操作的話,那么組也有密碼是為什么?這里,就不得不在提到一個概念:effective group(有效用戶組)。
我們知道,一個用戶可以存在于多個組中,那么我們利用此用戶創(chuàng)建一個新的文件,其權限是繼承哪一個用戶組?
此時,我們通過設置有效用戶組來指明新文件的用戶組。我們可以使用命令<font color="red">groups</font>來查看用戶的有效用戶組(排名第一個的組)。
如果我們想要改變一個用戶有效用戶組,怎么辦?我們使用命令<font color="red">newgrp</font>來改變其有效用戶組,如果切換的對象不是用戶所在的組,就需要輸入用戶組的密碼。
2.常用命令
2.1 組
2.1.1 groupadd
創(chuàng)建新的用戶組
defination:groupadd [OPTION] name
-g GID:指定GID
-r:創(chuàng)建系統(tǒng)組
2.1.2 groupdel
刪除用戶組
defination:group [OPTION] group
2.1.3 groupmod
修改用戶定義
defination:group [OPTION] group
-g GID :修改組的gid
-n name :修改組的名字
2.2 用戶
2.2.1 useradd
創(chuàng)建一個新用戶或更新一個已在用戶信息
defination:useradd [OPTIONS] LOGIN
-u UID:指定UID
-g GID:指定GID
-c:添加注釋信息
-d:制定主目錄位置
值得注意的是,主目錄架構保存在/etc/skel中,任何主目錄的生成都是通過復制他得到的
-s:指明用戶默認shell
一般的,用戶可用shell的列表保存在/etc/shells下。如果用戶選擇的shell不在此文件中,那么安全檢查時會出錯
-r:系統(tǒng)用戶
-D:顯示或修改默認創(chuàng)建用戶時的各種數值
我們都知道,linux使用文件來保存配置。那么在用戶創(chuàng)建時那些默認的配置是保存在哪里的?在/etc/default/useradd和/etc/login.defs中
2.2.2 usermod
使用方式與useradd類似,這里主要說說一些主要的選項。
-G:指定附加組,以前的附加組則會被覆蓋掉
-a:與-G一起使用,追加新的附加組
-d:創(chuàng)建家目錄,以前的文件不保存
-m:與-d一起使用,移動原來的家目錄
-l:修改用戶名
2.2.3 userdel
-r:刪除主目錄
2.3 密碼
2.3.1 passwd
使用方法:
- 直接在命令行輸入passwd,修改自己的密碼
- pass
defination:passwd USERNAME
-l,-U:鎖定和解鎖用戶
-d:清除密碼
--stdin:echo "xxxx" | passwd --stdin
2.3.2 gpasswd
-a USERNAME:向組里添加用戶
-d USERNAME: 刪除組中用戶
2.3.3 chage
此命令用于修改用戶密碼過期信息,這里不再贅述
2.3.4 id
顯示用戶ID級初始,有效用戶組
2.3.5 su
defination:su [OPTION] username
類別:
- 登錄模式切換:su - USERNAME
此種方式會重新初始化用戶環(huán)境 - 非登錄模式切換:su USERNAME
此種模式不會重新初始化用戶環(huán)境