在Linux系統上,用戶管理是基於用戶名和密碼的方式進行資源的分配,Linux上的用戶分爲以下類別:
管理員:root UID 0
普通用戶:1-65535
系統用戶:1-999 對守護進程獲取資源進行權限分配
登錄用戶:1000+ 通過交互式方式登錄
組group
管理員組;root GID 0
普通組:1-65535,普通組又分爲:
系統組:1-999
一般組:1000+,而一般組分爲:
基本組:也叫私有組,創建用戶時,如果沒有指定其所屬的組,系統自動爲期創建一個與用戶同名的組,用戶必須屬於一個且只有一個基本組,組名同用戶名,且僅包含一個用戶
附加組:也叫額外組,默認組以外的其他組,一個用戶可以屬於零個或多個附加組
安全上下文
運行中的程序:進程(process),以進程發起者的身份運行:
root: /bin/cat
hadoop:/bin/cat
進程所能夠防僞資源的權限取決於進程的運行者的身份
passwd文件格式
可以通過man 5 passwd來查看對應的配置文件的幫助信息,經過查詢可以得知passwd的文件格式,它是由冒號分隔的七個段組成的,分別是:
account:登錄用戶名
passwd:密碼
UID:用戶的身份編號
GID:默認所在組編號
comment:註釋信息
Homedir:用戶家目錄
shell:用戶默認shell
group文件格式
經過man幫助可以查詢到文件格式,格式如下:
groupname:組名
gpasswd:組密碼
GID:組的身份編號
附加組:
gshadow文件格式
羣組名
羣組密碼
組管理員列表:組管理員列表,更改組密碼和成員
以當前組爲附加組的用戶列表,多個用戶之間用逗號分隔
shadow文件格式
同樣也可以使用man幫助來查詢shadow文件的格式,格式如下:
account:登錄名
encrypte passwd:加密後的密碼
從1970年1月1日起到密碼最近一次被更改的時間
密碼不可更改的時間,兩次密碼修改的時間間隔,0表示可以立即可以改
密碼保持最大有效天數,到了這個時間就必須要改密碼
密碼過期的警告時間,密碼過期前幾天系統會提醒用戶更改密碼(默認是一週)
密碼過期賬號鎖定的天數
從1970年1月1日起,多少天后賬號失效
保留項
密碼加密機制
加密:明文—>密文
解密:密文—>明文
對稱加密:加密和解密使用同一個密鑰
公鑰加密:每個密碼都成對出現,一個爲公鑰,一個爲私鑰
單項加密散列加密:提取數據特徵碼長用戶數據完整性校驗
單項加密有如下的特點:
雪崩效應
定長輸出
算法通常有:
MD5 128位定長輸出
SHA1:secure hash algorithm 160位定長輸出
sha224:224位
sha256
sha384
sha512
更改加密算法 authconfig --passalgo=sha256 --update
密碼的複雜性策略
使用數字、大小寫字母、以及特殊字符中至少3種
足夠長
使用隨機密碼
定期更換,不要使用最近曾經使用過的密碼
密碼期限
用戶和組管理命令
用戶管理命令
useradd:添加用戶
useradd [options] username
-u:指定uid
useradd -u 1050 user1
-g GID(基本組) 指定用戶基本組 ,可以寫組名也可以寫GID
useradd -g hadoop user2
-G:GID(附加組)指定用戶附加組
useradd -G dockr user3
-c:"comment"註釋信息
useradd -c “the user is datebase user” mysql
-d:HOME_dir 指定用戶家目錄
useradd -d /tmp/user4 user4
-s:指定用戶所使用的shell
useradd -s /bin/csh user5
-N:不創建私有組做主組,用users組做主組
useradd -N user6
-m:新建用戶時創建家目錄
-M:創建用戶時不創建家目錄
useradd -M user7
-r:添加一個系統用戶
useradd -r mail
新建用戶的相關文件
/etc/default/useradd
/etc/skel/* 創建用戶時會在家目錄下創建的一些文件包括用戶的環境變量文件,.bashrc記錄命令別名和本地環境變量
創建用戶時有個默認的設定存放在/etc/default/useradd文件中
顯示或更改默認值
useradd -D
useradd -D -s /bin/csh username
/etc/login.defs 用戶賬號限制的文件包括最大過期天數,密碼的最大長度約束等內容。
id:查看用戶的賬號屬性信息
-u:顯示用戶的UID
-g:顯示用戶的GID
-G:顯示用戶的GID
-n:顯示用戶的用戶名一般要配合-u選項
userdel:刪除用戶
userdel [option] username
-r:刪除用戶家目錄
用戶屬性修改
usermod
usermod [ options] username
-u UID:修改用戶的uid
usermod -u 1500 username
-g UID:修改用戶的基本組
usermod -g hadoop username
-G -a:添加新的附加組,要配合-a選項使用,如果不使用-a選項會覆蓋此前的附加組
usermod -aG amind username
-c:更改註釋信息
usermod -c "my user" username
-d -m:更改用戶家目錄且移動用戶文件
usermod -c /tmp/123 username
-s:更改用戶的shell
usermod -s /bin/bash username
-l:更改用戶名
usermod -l oldname newname
-L:鎖定賬號
usermod -L username
-U:解鎖賬號
usermod -U username
su切換用戶
su [OPTION]... [-] [USER [ARG]...]
su username:非登錄式切換,不會讀取目標用戶的配置文件,不改變當前工作目錄
su - username:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換
su -l username =su - username
注意:root切換至非root用戶時不需要輸入密碼的,非管理員用戶切換需要輸入密碼
passwd設置密碼
passwd [OPTION...] <accountName>
passwd 不接用戶默認修改當前登錄用戶的密碼
-l:鎖定賬號
-u:解鎖賬號
-d:刪除賬戶密碼
-e:強制用戶下次登錄修改密碼
-n mindays:指定密碼最短使用期限
-x maxdays:指定密碼最大使用期限
-i :非活動期限,密碼過期賬號鎖定時間
--stdin:從標準輸入接受用戶密碼
echo “redhat”|passwd --stdin username
chage修改用戶密碼策略
chage [options] LOGIN
-d:最近一次修改密碼的時間
-E:設置過期時間
-I:設置非活動時間,密碼過期後賬戶鎖定時間
-m:設置密碼最短使用期限
-M:設置密碼最長使用期限
-W:設置密碼過期前的警告天數
chfn修改用戶個人信息
chfn username
chsh更改用的shell
chsh username
finger查看用戶用戶屬性
finger username
組管理
groupadd
groupadd [options] groupname
-g GID: 以指定的GID創建組
-r:添加系統組其GID小於1000
groupdel刪除組
groupdel [options] groupname
groupdel test2
gpasswd組密碼
gpasswd [option] group
-a user:將user添加至指定組中
-d user:將user從組中移除
-A user1,user2,...設置有管理權限的用戶列表
newgrp:臨時切換基本組,如果用戶本不屬於詞組,則需要密碼
newgrp groupname
groupmems更改和查看組成員
groupmems -a user_name | -d user_name | [-g group_name] | -l | -p
-g,--group groupname 更改爲指定組
-a,--add username:用戶加入組
-d,--delete username:從組中刪除用戶
-p,--purge:從組中清除所有成員
-l,--list:顯示組成員列表
grops查看用戶所屬組
groups groupname
1、創建用戶gentoo,附加組爲bin和root,默認shell爲/bin/csh,註釋信息爲"Gentoo Distribution"
2、創建下面的用戶、組和組成員關係
名字爲admins 的組
用戶natasha,使用admins 作爲附屬組
用戶harry,也使用admins 作爲附屬組
用戶sarah,不可交互登錄系統,且不是admins 的成員,natasha,harry,sarah密碼都是centos