Linux-用戶組和權限管理


一、基本配置文件


1.安全三A

Authentication :認證  
Authorization :授權
Accouting|Audition :審計
用戶組=主組(有且僅有一個)+附加組(可多個或沒有)

2.linux用戶和組的主要配置文件:

(1)/etc/passwd :用戶及其屬性
    username:x:uid:gid:discreption:home:shell
(2)/etc/group :組及其屬性
    組名:組密碼:組id:組成員
(3)/etc/shadow :用戶密碼及其相關屬性
    username:passwd:passwdtime:min:max:inactive:account
(4)/etc/gshadow :組密碼及其相關屬性
    組名:組口令:組管理員:組成員

二、密碼時間


1. 密碼修改時間:

    最短有效期(多少天不能修改密碼):最長有效期:過期提示時間:延期時間(過期之後多少天還能登錄去改密碼):賬戶有效期:保留        
    usermod  -L  :  加鎖
    usermod -U : 解鎖(centos 6之後就不允許空口令登錄)

2. 加密機制:

    加密:明文 --> 密文
    解密:密文 --> 明文

3. 單向加密:

    哈希算法,原文不同,密文必不同
    相同算法定長輸出,獲得密文不可逆推出原始數據
    雪崩效應:初始條件的微小改變,引起結果的巨大改變
    設置加密類型的文件:/etc/login.defs
    $6 sha512
    $1 md5 128

三、用戶管理


1. 創建用戶

默認值設定:/etc/default/useradd–>新建用的信息默認值

useradd = adduser 兩個命令都可以創建用戶,效果一樣
useradd  zhang 創建普通用戶zhang
useradd -g kun -a zhang 創建用戶zhang時,指定zhang的所屬組爲kun
useradd -d zhang -a zhang 創建用戶zhang時,指定zhang的家目錄爲zhang 
useradd -s /bin/shell zhang 創建用戶zhang時,指定用戶zhang的bash是shell
useradd -G root zhang 創建用戶zhang時,指定用戶的附加組爲root 
useradd -r -s /bin/nologin zhang  -r是創建系統用戶,系統用戶一般情況下不能登錄,所以設置shell類型爲/bin/shell 
useradd -u 2000 zhang 創建用戶zhang時,指定zhang的uid是2000

2. 刪除用戶

userdel zhang 刪除用戶zhang,只是刪除了用戶信息,並沒有刪除zhang的家目錄和郵件信息
userdel -r zhang 刪除用戶zhang的同時,刪除了zhang的家目錄和郵件信息
userdel -f zhang 強制刪除用戶zhang 

3. 修改用戶

usermod 
-u 新的屬主
-g 新的屬組
-aG 附加組,加a保留原來的屬組
刪除附加組:usermod -G wang wang
usermod -G "" wang
-s 新的shell
-d home 新的家目錄,新家目錄不會自動創建,原家目錄中的文件不會同時移動至家目錄;若要創建新家目錄並移動原有數據,同時使用-m選usermod -d /app/home -m tom
-c 修改註釋信息(chfn)
-l login_name:新的名字,其他信息都不變化
-L lock 指定用戶,在/etc/shadow密碼欄增加!
-U unlock 指定用戶,在/etc/shadow密碼欄減少!
-e YYY-MM-DD :指定用戶賬號過期日期
-f INACTIVE : 設定非活動期限

四. 用戶組管理


groupadd zhang 創建用戶組zhang 
groupmod
    -n group_name:新名字
    -g GID :新的GID
groupdel group
gpasswd
    -a user :將user添加至指定組中
    -d user : 從組中移除用戶
    -A user1,user2:設置有管理權限的用戶列表
newgrp命令:臨時切換基本組
    如果用戶不屬於此組,則需要組密碼

五.密碼管理


passwd

    -l 鎖定用戶
    -u 解鎖用戶
    -e 強制用戶下次登錄修改密碼
    -n days 指定最短使用期限
    -x maxdays 最大使用期限
    -w warndays 提前多少天開始警告
    -i inactivedays 非活動期限
    --stdin 從標準輸入接收用戶密碼

chage tom 可以改變Tom的時間信息
chfn:改用戶賬號的描述信息
chsh :修改shell類型 chsh -s /sbin/nologin tom
chgrp :普通用戶無權限,普通用戶對鎖所屬的組有權限 chgrp wang f1(wang下的用戶)
finger:查看用戶信息

批量創建用戶:

創建一個文本文件,格式要跟passwd格式一樣.
newusers user.txt /etc/passwd
改密碼:
1.passwd zhang
2.echo password | passwd --stdin zhang &>/dev/null
3.echo zhang:password | chpasswd
4.cat file | chpasswd 
要想創建的每個用戶都有某個文件,就將該文件放在這個目錄下,這當中寫了文件默認創建的文件
    cp -r /etc/skel/.[^.]* /home/list  這種方式需要手動創建/home/list
    cp -r /etc/skel /home/list  這種方式不需要手動創建/home/list

六.密碼管理


su username :非登錄式切換,不會讀取目標用戶的配置文件,不改變當前工作目錄

su - username :登錄式切換,會讀取配置文件,切換至家目錄,完全切換。

su - username -c 'cat /etc/passwd' :-c可以執行命令

root用戶su到其他用戶不需要密碼,非root切換時需要密碼

七、ACL


Access Control List  實現靈活的權限管理
setfacl -m u:zhang:-w- f1   設置 acl
getfacl f1        查看acl  
setfacl -m g:admins:rw f1   設置用戶組admins對f1文件有讀寫權限
gpasswd -a xixi admins 
setfacl -x u:zhang f1 
setfacl -m mask::r f1  設定mask降低自定義的用戶,自定義的組,所屬組的權限,跟mask權限一樣,所有者和其他人不在設置範圍內。

ACL生效順序:所有者,自定義用戶,自定義組,其他人
setfacl  set file acl

setfacl -b file 清除所有acl權限
setfacl -k dir 刪除默認acl權限 
getfacl file1 | setfacl --set-file=- file2 複製file1的acl權限給file2

CentOS 6 新分的分區默認不支持ACL  CentOS 7支持

八.總結


Linux操作系統上面,關於賬號與用戶組,其實紀錄的是UID/GID的數字而已。

用戶賬號/用戶組與UID/GID的對應,參考/etc/passwd及/etc/group兩個文件。

查看用戶詳細的密碼參數,可以使用“chage-|賬號”來處理

useradd命令作用參數的文件有/etc/default/useradd,/etc/login.defs,/etc/skel等

系統上面賬號登陸情況的查詢,可以使用w,who,last,lasting等

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