導讀:本章主要內容如下
1.解釋Linux的安全模型
2.解釋用戶賬號和組群賬號的目的
3.用戶和組管理命令
4.理解并設置文件權限
5.默認權限
6.特殊權限
7.ACL
一、安全介紹 3A
1.資源分派:
Authentication :認證 (用戶名和對應口令)
Authorization :授權 (不同的用戶權限不一樣)
Accouting /Audition :審計
2.所屬主和所屬組
? user(用戶) token令牌 ;identity身份
Linux用戶:username UID(用戶標識號)
管理員:root UID=0
普通用戶:1-65535
系統用戶:1-499(centos6)1-999
由系統保留,作為管理賬號,對守護進程獲取資源進行權限分配
登錄用戶:500+(centos6) 1000+ 交互式登錄
?group 組
Linux組:Groupname GID(組標識號)
管理員.:root, 0
普通組:
系統組:1-499(centos 6);1-999(centos 7)
普通組:500+ ; 1000+
注意:在Linux中用戶名和組名可以相同,要小心使用,具體看命令。
?安全上下文
運行中的程序:進程(process)
以進程發起者的身份運行:
進程所能夠訪問資源的權限取決于進程的運行者的身份 (和程序本身沒關系,看是誰運行的)
二、用戶賬號和組群賬號管理
1.Linux組的類別:
用戶的主要組(主組):
用戶必須屬于一個且只有一個主組
組名同用戶名,且僅包含一個用戶:私有組(新建的用戶,也會建一個組,但組里只有用戶自己)
用戶的附加組(輔助組):secondary group
一個用戶只有一個主組,但是可以屬于零個或多個輔助組(如下圖)
注意:一般第一個為用戶的主組,后面的都為附加組
系統識別用戶不是看用戶名,是看id編號的
2.用戶和組的配置權限
Linux用戶和組的主要配置文件:
/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)
/etc/group:組及其屬性信息
/etc/shadow:用戶密碼及其相關屬性
/etc/gshadow:組密碼及其相關屬性
(1)/etc/passwd 解說
/etc/passwd 由“:”分割成7段,每個字段含義如下:
①login name:登錄用戶名(wang)
②passwd:密碼,口令(x) 現在放在 /etc/shadow 如果要想回到之前的狀態用(命令 pwunconv)但是這樣的話/etc/shadow文件就沒有了,恢復使用(命令 pwconv)
③UID:用戶身份編號 管理員:0,系統默認為root,但是可以修改。普通用戶:500+;1000+
實驗如下圖,說明:系統辨別是否為管理員是看id的
④GID:組標識號登錄默認所在組編號(1000)
⑤GECOS:用戶全名或注釋
用 命令chfn 可以修改注釋信息
用命令 finger 可以更加詳細的查看修改和用戶信息
⑥home directory:用戶主目錄(/home/wang)
root 的家目錄是/root ,普通用戶的家目錄則為/home/username,用戶家目錄可以自己定義。
⑦shell:用戶默認使用shell (/bin/bash)
用 chsh命令 可以直接修改用戶的shell
(2)/etc/shadow解說
/etc/shadow he /etc/passwd 類似,由“:”分割成9段,只有管理員可以查看,普通用戶是看不了的。含義如下:
①登錄用戶名,與/etc/passwd 類似
②用戶密碼,一般sha512加密
如果剛建的新用戶,密碼是(?。。┦遣辉试S登陸的,(可以用 su切換)如果刪除了,該用戶就可以不用密碼直接登錄。可以使用 命令 usermod -U (刪除!號)(usermod -L 加!號),只能刪除一個,第二個系統不允許被刪除。 其實,有密碼的用戶也是可以被鎖定的,也是用 usermod -L
密碼前面的$6代表哈希算法,一般用sha512加密,是單向加密的,不可逆。但是也有可能會被破解。我們也可以修改用戶的加密算法 命令:authconfig–passalgo=sha256 –update(對老用戶不起作用,只對新用戶起作用)
如果兩個新用戶設置的密碼完全以一樣,但在 shadow中顯示的也是不同的,因為系統會加 “鹽”,是一種隨機數,更安全。
在工作中設置密碼可以用命令 openssl rand -base64 (10隨機數)
③從1970年1月1日起到密碼最近一次被更改的時間
如果為0 就代表,迫使你下一次登錄時必須該口令(可以通過 chage -d0 tao 直接改為0)或者(passwd -e tao)和前者效果一樣。
④密碼再過多少天可以被更改,系統默認為0,即不受限制
⑤密碼多少天后到期,即在多少天內必須更改密碼,系統默認99999表示永遠不需要更改。
⑥密碼過期前幾天系統提醒用戶(默認為一周)
⑦密碼過期幾天后賬號會被鎖定
⑧生命周期,從1970年1月1日算起,多少天后帳號失效
⑨沒有意義,作為保留用
附加:
密碼期限如下圖:
更改加密算法:authconfig –passalgo=sha256 –update
(3)/etc/group 組及其屬性信息
①組群名稱:就是群組名
②群組密碼:通常不需要設定,密碼是被記錄在/etc/gshadow
③GID:就是組的id
④以當前組為附加組的用戶列表(分隔符為逗號)
注意:新用戶添加或刪除附加組,必須重新登錄才能夠表現出來。
(4)/etc/gashadow 解說
①群組名稱
②群組密碼 :一般不對組設置口令,如果設置了,普通用戶知道口令后便可直接加進來,不設置反而更加安全。
③組管理員列表:組管理員的列表,更改組密碼和成員
④以當前組為附加組的用戶列表:(分隔符為逗號)
三、用戶和組管理命令
1.文本操作:
vipw(vi /etc/passwd)和vigr(vi /etc/group)
用這兩個命令比直接使用nano,vim等編輯工具安全,因為在使用過程中如果格式不正確,系統會報錯,其他的則不會
pwck(passwd check)和grpck(group check)
修改完成之后,用這兩個工具可以作相應的檢查。
2.用戶和組管理命令
用戶賬號管理命令:
useradd usermod userdel
組賬號維護命令:
groupadd groupmod groupdel
(1)useradd 用戶創建
?useradd[options] LOGIN
-u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs
-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,一般shell類型為/sbin/nologin
?在創建用戶的時候會有一些默認值設定:在 /etc/default/useradd文件中
顯示或更改默認設置
useradd -D
useradd -D -s(后面加選項可以更改默認設置)
這里注意,新創建的用戶系統用戶的家目錄和郵箱是不會自動創建的。
(3)新建用戶的相關文件和命令
/etc/default/useradd 相關的配置文件默認設置
/etc/skel/* 家目錄的配置文件模板
/etc/login.defs 一些配置文件的默認設置(見下圖)
newusers passwd格式文件批量創建用戶
chpasswd 批量修改用戶口令
(4)usermod用戶屬性修改
usermod[OPTION] login
-u UID: 新UID
-g GID: 新基本組
-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append;
-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: 設定非活動期限;
(5)userdel 刪除用戶
-r :刪除用戶家目錄
(6)查看用戶id相關信息
id [OPTION]… [USER]
-u: UID
-g: GID
-G: Groups
-n: Name
(7)切換用戶以及用戶其他身份執行命令
su[options…] [-] [user [args…]]
切換用戶方式:
su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄
su – UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換
root su至其他用戶無須密碼;非root用戶切換時需要密碼
注意:如果切換用戶之后一定要使用 exit或logout 退出來,否則會影響系統。
換個身份執行命令:
su[-] UserName -c 'COMMAND'
選項:-l –login:
su-l UserName相當于su-UserName
練習:
1、創建用戶gentoo,附加組為bin和root,默認shell為/bin/csh,注釋信息為"Gentoo Distribution"
? 2、創建下面的用戶、組和組成員關系
名字為admins 的組
用戶natasha,使用admins 作為附屬組
用戶harry,也使用admins 作為附屬組
用戶sarah,不可交互登錄系統,且不是admins 的成員,natasha,harry,sarah密碼都是centos
原創文章,作者:zhumengxiaotao,如若轉載,請注明出處:http://www.www58058.com/27663
寫的很好,贊一個。