導言:
我們在使用計算機資源時為了資源的合理規劃和利用,同時為了實現更好的管理,需要在計算機里有一個使用資源的憑證,這個憑證就是用戶,下面就來介紹Linux用戶和組管理。
1.資源分派:
資源的分派可以分為三個步驟,分別是
(1)認證(Authertication)
(2)授權(Authorization):
(3)審計(Audition)
2.用戶分類:
(1)管理員:
在Linux里默認是root,root具有絕對的權限,一般在生產中不建議使用,用戶權限太大,避免誤操作。
(2)系統用戶:
系統啟動和后臺進程運行需要用到的用戶,具有相對的權限,一般不需要登錄用戶。
(2)普通用戶:
又叫登錄式用戶,跟計算機交互管理系統操作需要用到的用戶,具有相對的權限。
3.UID:
Linux系統是根據UID來識別戶身份的,UID在系統中具有全局唯一性,用數字標識,范圍是0-65535,分配如下:
(1)管理員root:
系統默認為0,不可更改管理員的UID
(2)系統用戶:
系統默認分配(1-499:是Centos6及其以前版本),(1-999:是Centos7版本)的范圍,可以指定。
(3)普通用戶:
系統默認分配(500以上:Centos6及其以前版本),(1000以上:Cent7版本)的范圍,可以指定。
4.組分類:
為了便于對用戶的管理和授權,需要用到組,組相當于用戶的容器。類型區別如下:1)
(1)基本組:
又叫用戶的主組,在系統中如果創建用戶不指定主組,默認創建一個跟用戶名同名的主組,也叫用戶的私有組。
(2)附加組:
用戶可以是多個組的成員,系統默認用戶只有一個主組,可以有多個附加組。
(3)系統組:
為了便于管理系統用戶分配的組。
(4)管理員組:
默認root,管理員需要用到的組。
5.GID:
系統識別組一樣也是根據GID,也具有系統全局唯一性,也是數字標示,跟用戶分配方案一樣,管理員root組默認為0.系統默認分配(1-499或1-999),主組和附加組默認分配(大于等于500或1000以上)的范圍。可以指定。
6.用戶的配置文件:
(1)用戶賬號信息的配置文件,默認在/etc/passwd文件中,默認用“:”分割的7個字段,文件的語法格式如下:(1-7)
1.login name:用戶登錄名。
2.passwd:密碼占位符,為了用戶密碼的安全,使用影子文件/etc/shadow文件保存用戶密碼,“x”密碼占位符。
3.UID:用戶的uid。
4.GID:用戶的組的gid。
5.COMMENT:用戶描述信息。
6.HOME:用戶的家目錄位置,一般默認在/home/username(跟用戶同名的家目錄)。
7.SHELL:用戶默認使用的shell類型,默認使用/bin/bash,可以使用cat /etc/shells 查看系統默認支持的shell類型,使用echo "$SHELL"可以查看當前用戶的shell類型。
(2)用戶名密碼信息配置文件,默認在系統/etc/shadow文件中,格式跟用戶名文件相同,只是相應的字段意義有所改變,文件語法如下:(1-9)
1.login name:用戶名。
2.encrypted password:用戶密碼,里面用“$xxx$xxx$xxxx”第一個xxx標示使用的加密算法,“$6”標示為sha512,“$1標示為MD5”。第二個xxx標示salt:鹽,雜質,防止不同用戶使用相同密碼能夠破解密碼。第三個xxx標示為真正的加密后的16進制密碼。如果僅僅是是:“!”“??!”表示鎖定,“ ”空密碼系統不允許用戶登錄。
3.date of last password change:
最后一次的密碼修改時間,這里指距離1970-1-1到最近的一次密碼修改時間
4.minimum password age:
最短密碼使用期限,在這段時間內,普通用戶不允許更改密碼。
5.maximum password age
最長密碼使用期限。
6.password warning period
密碼到期警告期限,在最長密碼使用期限之前的時間,可以登錄。
7.password inactivity period
密碼非活動時間,指超過密碼最長使用期限后允許更改密碼的時間。如果在超過密碼非活動時間,賬號鎖定,用戶將不能登錄。
8.account expiration date:
賬號過期時間,對用戶賬號限制的使用時間。
9.reserved field
保留字段。
7.組的配置文件:
(1)組用戶信息的配置文件,默認保存在/etc/grouup文件中,格式用“:”分割字段,具體語法如下:(1-4)
1.group name:
組名。
2.passwd:
密碼占位符,為了安全起見,也使用影子文件/etc/gshadow保存密碼。
3.GID:
組的標示gid.
4.user_list
用戶列表,指加入此組的組成員用戶。
(2)組密碼的配置文件,默認保存在/etc/gshadow文件中,也使用“:”分割字段。(1)
1.group name:
組名。
2.encrypted passwd:
加密后的16進制密碼,格式同用戶密碼格式一樣。
3.administrators
組管理員用戶,管理員可以更改密碼或該組的成員。
4.member
組成員。
8.用戶管理命令:
(1)添加用戶:
1.useradd
2.語法格式:
useradd [options] username
3.常用選項[options]:
-u:指定用戶的uid.
-g:指定用戶的主組。
-G:指定用戶的附加組。
-c:添加用戶的描述信息
-d:指定用戶的家目錄,-m是默認指定在/home/下。
-s:指定用戶的登錄使用的默認shell.默認為/bin/bash。
-f:賬號的有效時間,過期鎖定。
-p:指定用戶名的密碼
-D:默認預設值。
-r:直接指定創建的用戶為系統用戶。
(2)添加用戶密碼:
1.passwd
2.語法格式:
passwd [options] username
passwd username 交互式修改用戶密碼,管理員root可以隨意修改。
passwd 直接回車,默認修改當前用自己的密碼
3.常用選項[options]
-l:鎖定用戶。
-u:解鎖用戶。
-e:強制用戶下次登錄時必須修改密碼。
-n:指定密碼最短使用期限。
-x:指定密碼最長使用期限。
-i:非活動密碼期限。
–stdin:從標準輸入接受用戶密碼:格式如下:
echo "passwd" |passwd –stdin username
(3)修改用戶屬性:
1.usermod
2.語法格式:
usermod [optons] username
3.常用選項[optons]:
-u:更改用戶的uid,配合-o不檢查uid.
-g:更改用戶的主組。
-G:更改用戶的附加組,配合-a指不覆蓋已有的附加組。
-s:更改用戶的shell
-l:更改新登錄名
-L:鎖定用戶。
-U:解鎖用戶。
-d:更改家目錄,要遷移家目錄需要配合-m.
更改用戶shell命令
1.chsh
2.語法格式:
chsh [options] username
3.常用選項[options]
-s:更改系統默認s預設hell.echo "$SHELL"也可以查看當前用戶shll。
-l:查看系統支持的shell類型,cat /etc/shells也可以查看當前系統支持的shell類型。
更改用戶Comment描述信息:
1.chfn
2.語法格式
chfn 直接回車修改當前用戶Comment信息。
chfn username 直接指定用戶Comment信息。
3.查看chfn填寫的信息:
使用finger username 命令語法格式。
修改用戶密碼策略:
1.chage
2.語法格式:
chage [options] username
3.常用選項[options]
-d: -d 0 強制用戶下次登錄重設密碼。
-l:顯示用戶密碼策略。
查看用戶賬號信息:
1.id
2.語法格式:
id [options] [user]
3.常見選項:
-u:查看uid
-n:查看用戶名。
-g:查看基本組
-G:查看附加組
查看用戶所屬的組:
1.groups
2.語法格式:
groups username
(4)刪除用戶:
1.userdel
2.語法格式:
userdel [options] username
3.常用選項[options]:
-r:刪除用戶的同時,刪除用戶的家目錄。
(5)檢查語法
1.使用語法檢查格式編輯配置用戶文件命令
vipw
2.檢查用戶配置文件語法格式命令:
pwck
(6)批量創建用戶:
配置用戶格式:
newuser user-file
user-file:這個文件語法格式跟/etc/passwd/一樣.
配置密碼格式:
cat passwd-file |chpasswd
passwd-file:文件內的語法格式如下:
loginname:passwd
9.組管理命令:
(1)創建組
1.groupadd
2.語法格式:
groupadd [options] groupname
3.常用選項[optons]:
-r:創建組為系統組。
-g:指定GID.
(2)修改組屬性:
1.groupmodd
2.語法格式:
groupmod [options] groupname
3.常用選項[optons]
-n:更改組名。
-g:更改GID
(3)刪除組:
1.groupdel
2.語法格式:
groupdel groupname
(4)添加組密碼:
1.gpasswd
2.語法格式:
gpasswd [options] groupname
3.常用選項[options]
直接回車交互輸入密碼
-a:添加成員用戶。
-d:刪除成員用戶。
-A:設置具有組管理權限的用戶。
(5)語法格式檢查:
使用語法檢查格式編輯配置組文件命令
vigr
檢查用戶配置文件語法格式命令:
grpck
10.常見問題補充:
(1)Linux的安全上下文是怎樣的?
1.程序要想運行必須放在內存中,放在內存中的程序叫進程。
2.進程運行的身份是以進程發起者,這也意味著相應的權限也就是發起者的權限。
(2)組不用登陸系統為什么也要設置密碼?
原因是用戶操作系統發起進程,屬組的權限應該是自己的屬組的權限,這時想要創建文件變更屬組,使用newgrp切換當前用戶的屬組,如果當前用戶也是切換后屬組的成員可以不用輸入密碼為了安全起見切換其他組必須需要使用密碼,默認空密碼不給切換。
(3)目前系統密碼使用的加密算法有什么特點?
目前Centos7使用的哈希sha512位的加密算法,屬于單項加密,特點是提取密碼特征碼,不可 逆。密碼安全相對性比較高。
原創文章,作者:xiashixiang,如若轉載,請注明出處:http://www.www58058.com/28205