用戶管理

用戶管理
介紹安全3A
資源分派:
Authentication:認證
Authorization:授權
Accouting|Audition:審計
用戶user
令牌token,identity
Linux用戶:Username/UID
管理員:root,0
普通用戶:1-65535
系統用戶:1-499,1-999(CentOS 7)
對守護進程獲取資源進行權限分配
登錄用戶:500+,1000+(CentOS 7)
交互式登錄
組group
Linux組:Groupname/GID
管理員組:root,0
普通組:
系統組:1-499,1-999(CentOS 7)
普通組:500+,1000+(CentOS 7)
安全上下文
Linux安全上下文
運行中的程序:進程(process)
以進程發起者的身份運行:
root:/bin/cat
rookie:/bin/cat
進程所能夠訪問資源的權限取決於進程的運行者的身份
組的類別
Linux組的類別
用戶的主要組(primary group)
用戶必須屬於一個且只有一個主組
組名同用戶名,且僅包含一個用戶,私有組
用戶的附加組(supplementary group)
一個用戶可以屬於零個或多個輔助組
用戶和組的配置文件
Linux用戶和組的主要配置文件:
/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)
/etc/group:組及其屬性信息
/etc/shadow:用戶密碼及其相關屬性
/etc/gshadow:組密碼及其相關屬性

3.用戶和組管理
passwd文件格式
login name:登錄用名(rookie)
passwd:密碼(x)
UID:用戶身份編號(1000)
GID:登錄默認所在組編號(1000)
GECOS:用戶全名或註釋
home directory:用戶主目錄(/home/rookie)
shell:用戶默認使用shell(/bin/bash)
shadow文件格式
登錄用名
用戶密碼:一般用sha512加密
從1970年1月1日起到密碼最近一次被更改的時間
密碼再過幾天可以被變更(0表示隨時可被變更)
密碼再過幾天必須被變更(99999表示永不過期)
密碼過期前幾天系統提醒用戶(默認爲一週)
密碼過期幾天後賬號會被鎖定
從1970年1月1日算起,多少天后賬號失效
密碼加密
加密機制
加密:明文 --> 密文
解密:密文 --> 明文
單向加密:哈希算法,原文不同,密文必不同
相同算法定長輸出,獲得密文不可逆推出原始數據
雪崩效應:初始條件的微小改變,引起結果的巨大改變
md5:message digest,128bits
sha1:secure hash algorithm,160bits
sha224:224bits
sha256:256bits
sha384:384bits
sha512:512bits
更改加密算法
authconfig --passalgo=sha256 --uodate

4.用戶和組的管理

gshadow文件格式
羣組名稱:就是羣組名稱
羣組密碼
組管理員列表:組管理員的列表,更改組密碼和成員
以當前組爲附加組的用戶列表:(分隔符爲逗號)
文件操作
vipw和vigr
pwck和grpck
用戶和組管理命令
用戶管理命令
useradd
usermod
userdel
組賬號維護命令
groupadd
groupmod
groupdel
用戶創建:useradd
useradd [options] LOGIN
-u UID
-o 配合 -u 選項,不檢查UID的唯一性
-g GID:指明用戶所屬基本組,可爲組名,也可以GID
-c "COMMENT":用戶的註釋信息
-d HOME_DIR:以指定的路徑(不存在)爲家目錄
-s SHELL:指明用戶的默認shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:爲用戶指明附加組,組需事先存在
-N 不創建私用組做主組,使用users組做主組
-r 創建系統用戶 CentOS 6:ID<500, CentOS 7:ID<1000
-m 創建家目錄,用於系統用戶
-M 不創建家目錄,用於非系統用戶
默認值設定:/etc/default/useradd文件中
顯示或更改默認設置
useradd -D
useradd -D -s SHELL
useradd -D -b BASE_DIR
useradd -D -g GROUP
新建用戶的相關文件和命令
/etc/default/useradd
/etc/skel/*
/etc/login.defs
newusers passwd 格式文件 批量創建用戶
chpasswd 批量修改用戶口令
用戶屬性修改
usermod [OPTION] login
-u UID:新UID
-g GID:新主組
-G GROUP1[,GROUP2,...[GROUPN]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項
-s SHELL:新的默認SHELL
-c 'COMMENT':新的註釋信息
-d HOME:新家目錄不會自動創建;若要創建新家目錄並移動原家數據,同時使用-m選項
-l login_name:新的名字
-L:lock指定用戶,在/etc/shadow 密碼欄的增加!
-U:unlock指定用戶,將/etc/shadow 密碼欄的!拿掉
-e YYYY-MM-DD:指明用戶賬號過期日期
-f INACTIVE:設定非活動期限
刪除用戶
userdel [OPTION]... login
-r:刪除用戶家目錄

id [OPTION]... [USER]
-u: 顯示UID
-g: 顯示GID
-G: 顯示用戶所屬的組的ID
-n: 顯示名稱,需配合ugG使用

su [options...] [-] [user [args...]]
切換用戶的方式:
su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄
su - UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換
 root su至其他用戶無須密碼;非root用戶切換時需要密碼

換個身份執行命令:
su [-] UserName -c 'COMMAND'

選項:-l --login
su -l UserName 相當於 su - UserName

設置密碼
passwd [OPTIONS] UserName: 修改指定用戶的密碼
常用選項:
-d:刪除指定用戶密碼
-l:鎖定指定用戶
-u:解鎖指定用戶
-e:強制用戶下次登錄修改密碼
-f:強制操作
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天開始警告
-i inactivedays:非活動期限
--stdin:從標準輸入接收用戶密碼
示例:echo "PASSWORD" | passwd --stdin USERNAME

chage [OPTION]... LOGIN
-d LAST_DAY
-E --expiredate EXPIRE_DATE
-I --inactive INACTIVE
-m --mindays MIN_DAYS
-M --maxdays MAX_DAYS
-W --warndays WARN_DAYS
-l 顯示密碼策略
示例:
chage -d 0 tom 下一次登錄強制重設密碼
chage -m 0 –M 42 –W 14 –I 7 tom
chage -E 2016-09-10 tom

創建組
groupadd [OPTION]... group_name
-g GID 指明GID號;[GID_MIN, GID_MAX]
-r 創建系統組
CentOS 6: ID<500
CentOS 7: ID<1000

修改和刪除組
組屬性修改 :groupmod groupmod [OPTION]... group
-n group_name: 新名字
-g GID: 新的GID

組刪除:groupdel
groupdel GROUP

更改和查看組成員
groupmems [options] [action] options:
-g, --group groupname 更改爲指定組 (只有root) Actions:
-a, --add username 指定用戶加入組
-d, --delete username 從組中刪除用戶
-p, --purge 從組中清除所有成員
-l, --list 顯示組成員列表
groups [OPTION].[USERNAME]... 查看用戶所屬組列表

修改文件的屬主和屬組
修改文件的屬主:chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
用法說明:
OWNER OWNER:GROUP
:GROUP,冒號也可用 . 替換
-R: 遞歸
chown [OPTION]... --reference=RFILE FILE...
修改文件的屬組:chgrp
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
-R 遞歸

文件權限
文件的權限主要針對三類對象進行定義
owner 屬主, u
group 屬組, g
other 其他, o
每個文件針對每類訪問者都定義了三種權限
r Readable
w Writable
x eXcutable

文件:
r 可使用文件查看類工具獲取其內容
w 可修改其內容
x 可以把此文件提請內核啓動爲一個進程
目錄:
r 可以使用ls查看此目錄中文件列表
w 可在此目錄中創建文件,也可刪除此目錄中的文件
x 可以使用ls -l查看此目錄中文件元數據(須配合r),可以cd進入此目錄
X 只給目錄x權限,不給文件x權限

修改文件權限
chmod [OPTION]... OCTAL-MODE FILE...
-R: 遞歸修改權限
chmod [OPTION]... MODE[,MODE]... FILE...
MODE:
修改一類用戶的所有權限
u= g= o= ug= a= u=,g=
修改一類用戶某位或某些位權限
u+ u- g+ g- o+ o- a+ a- + -
chmod [OPTION]... --reference=RFILE FILE...
參考RFILE文件的權限,將FILE的修改爲同RFILE

權限設置示例
 chgrp sales testfile
 chown root:admins testfile
 chmod u+wx,g-r,o=rx file
 chmod -R g+rwX /testdir
 chmod 600 file
 chown mage testfile

新建文件和目錄的默認權限

umask值 可以用來保留在創建文件權限
 新建文件的默認權限: 666-umask,如果所得結果某位存在執行(奇數)權
限,則將其權限+1
 新建目錄的默認權限: 777-umask
非特權用戶umask是 002
root的umask 是 022
umask: 查看
umask # 設定
示例:umask 002
umask u=rw,g=r,o=
umask –S 模式方式顯示
umask –p 輸出可被調用
全局設置: /etc/bashrc 用戶設置:~/.bashrc

(umask 066;touch f10)用小括號可以不用先改變umask,只是臨時生效

Linux文件系統上的特殊權限
SUID, SGID, Sticky
三種常用權限:r, w, x user, group, other
安全上下文
前提:進程有屬主和屬組;文件有屬主和屬組
(1)任何一個可執行程序文件能不能啓動爲進程,取決發起者對程序文件是否擁有
執行權限
(2)啓動爲進程之後,其進程的屬主爲發起者,進程的屬組爲發起者所屬的組
(3)進程訪問文件時的權限,取決於進程的發起者
(a)進程的發起者,同文件的屬主:則應用文件屬主權限
(b)進程的發起者,屬於文件屬組;則應用文件屬組權限
(c)應用文件“其它”權限

任何一個可執行程序文件能不能啓動爲進程:取決發起者對程序文件是否擁有執行權限
啓動爲進程之後,其進程的屬主爲原程序文件的屬主
SUID只對二進制可執行程序有效
SUID設置在目錄上無意義
權限設定:
chmod u+s FILE... chmod u-s FILE..
chmod u+s which nano 給nano加上修改權限
chmod 755 /bin/cat 給cat加上修改權限

suid:只能作用在二進制的可執行的程序上
sgid:可以作用在目錄上,在此目錄中新建文件的所屬組,自動繼承目錄的所屬組

任何一個可執行程序文件能不能啓動爲進程:取決發起者對程序文件是否擁有執行權限
啓動爲進程之後,其進程的屬組爲原程序文件的屬組
權限設定:
默認情況下,用戶創建文件時,其屬組爲此用戶所屬的主組
一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中創建的文件
所屬的組爲此目錄的屬組
通常用於創建一個協作目錄
chmod g+s FILE... chmod g+s DIR...
chmod g-s FILE... chmod g-s DIR...

具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權限或擁有權
在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件
sticky 設置在文件上無意義
權限設定:
chmod o+t DIR...
chmod o-t DIR...
例如:
ls -ld /tmp
drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp

權限位映射
SUID: user,佔據屬主的執行權限位
s:屬主擁有x權限
S:屬主沒有x權限

SGID: group,佔據屬組的執行權限位
s:group擁有x權限
S:group沒有x權限

Sticky: other,佔據other的執行權限位
t:other擁有x權限
T:other沒有x權限

設定文件特定屬性
 chattr +i 不能刪除,改名,更改
 chattr +a 只能追加內容
 lsattr 顯示特定屬性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章