linux基礎之用戶及組管理 1、前序 對有限區域內,有限資源的合規使用的3A標準 Authentication:認證 相當於拿到了一個登錄linux的賬號,這叫認證了,但是這不表明拿到一個賬號你就能為所欲為,還需要進行授權 Authorization:授權 任何一個系統,認證完以後都有系統指派的一 ...
linux基礎之用戶及組管理
1、前序
對有限區域內,有限資源的合規使用的3A標準
Authentication:認證
相當於拿到了一個登錄linux的賬號,這叫認證了,但是這不表明拿到一個賬號你就能為所欲為,還需要進行授權
Authorization:授權
任何一個系統,認證完以後都有系統指派的一些許可權供這個賬號使用。linux怎麼完成用戶輸入賬號密碼認證成功後怎麼能夠完成資源獲取呢?事實上,linux的哲學思想是一切皆文件,當用戶成功登陸linux主機,一切以這個用戶為屬主的文件,他應該就具備屬主訪問的許可權
組是能夠將用戶和許可權建立關係的一個容器,他可以接受授權,同時也可以接受用戶的加入。從而能夠將許可權與多個用戶建立起相應關係。
Accounting:審計
Audition
linux用戶分類:用戶具有用戶名+UID組成
管理員:root UID為0
普通用戶:USERNAME UID範圍1-65535
系統用戶:UID範圍是1-499
登錄用戶:UID安慰是500以上
這兩者的區別:系統用戶主要為系統的守護類進程獲取系統資源而完成許可權分配。登錄用戶主要是為了互動式登錄
linux的組分類:組由組名+GID組成,組是一個容器,組主要作用:將多個用戶與某一類許可權建立關係,實現許可權指派的另一種方式
管理員組:組名為root 組GID0
普通組:
系統組:組GID範圍1-499
普通組:組GID範圍500以上
linux安全上下文
我們對電腦的操作,其實是運行程式來完成的,我們叫做進程。進程的運行是以發起者的身份運行,一個發起者具有什麼許可權,那麼他執行的命令就具有什麼許可權,即發起者的許可權決定了命令的許可權
linux組的類別:(站在用戶所屬組的類別來講)
用戶基本組,也稱為主組
組名通與用戶名相同,且僅包含一個用戶,成為私有組
用戶的附加組,也稱為額外組
linux用戶和組相關的配置文件
/etc/passwd:保存用戶及其相關屬性信息(名稱、UID、基本組ID等等)
/etc/group:組及其屬性信息
/etc/shadow:用戶密碼及其相關屬性
/etc/gshadow:組密碼及其相關屬性
/etc/passwd內容解釋
name:password:UID:GID:GECOS:DIRECTORY:shell 這段內容對應為的解釋:
用戶名:密碼:UID:GID:用戶的完整信息(用戶電話、地址等信息):主目錄:預設shell
/etc/group內容解釋
group_name:password:GID:User_list這段內容解釋:
組名:組密碼:GID:以當前組委附加組的用戶列表(每個以逗號分隔)
/etc/shadow內容解釋
jerry:$6$rVNi9i5.$1yyPBDswYy1vw2eyHOq5wnmQU6wXo56bowYbOgoo/ZReAtuZXnekl4oWE1l3OGnEsBzq.yYfPTU8Ci7QXIuMl1:17959:0:99999:7:::
用戶名:加密了的密碼:最近一次更改密碼的日期:密碼的最小使用期限:密碼的最大使用期限:密碼的警告時間段:密碼寬限期:賬號的過期日期
註意:最近一次更改密碼的日期是一個相對時長,是相對於linux誕生到你上一次修改密碼的天數
密碼的最小使用期限如果為0,表示你可以改了密碼再改密碼
密碼的最大使用期限如果99999,表示你的賬戶永久有效
加密機制(明文轉化為密文)
單向加密:提取數據指紋(指紋叫做微特征碼,只要有一個改變,那麼整個加密後的字元串發生重大改變,這個效應也叫雪崩效應。但是這些演算法加密不同長度的明文,它的輸出結果長度是一樣的,這叫定長輸出)
linux上的加密演算法
md5:message digest中文名叫消息摘要,輸出結果是128bit
sha1:secure hash algorihm 中文叫安全的hash演算法,輸出結果是160bit
sha224:secure hash algorihm 中文叫安全的hash演算法,輸出結果是224bit
sha386:secure hash algorihm 中文叫安全的hash演算法,輸出結果是386bit
sha512:secure hash algorihm 中文叫安全的hash演算法,輸出結果是512bit
linux各個演算法對應的命令
md5sum
ha1sum
sha224sum
sha256sum
sha384sum
sha512sum
加密:明文轉化為密文
解密:密文轉化為明文
關於linux6.7密碼內容解釋
$6$0TYPpFIXKw/73xmT$Z3N457EIbNjEl9KbiMLl/xSkYNIQOuqPY22myoeKJyWYAhH/bNGj8uLx9SCnOSSB6gvo7r3mCBiNAzF6GvmaC1
這個密碼分為三個欄位內容,每個欄位內容用$符號隔開,第一分欄位表示使用的加密方式,6表示使用的sha512演算法加密,第二個欄位表示為密碼添加的雜質。為什麼要添加雜質呢?為了避免兩個用戶輸入了同一個密碼後加密的內容相同,目的是混淆視聽。第三個欄位才是真正的密碼
密碼的複雜性策略
1、使用數字、大小寫字母、及特殊字母至少3種
2、足夠長
3、使用隨機密碼
4、定期更換密碼,不使用最近曾使用過的密碼
2、useradd命令
基本介紹
增加一個用戶或者更新一個用戶的信息
基本語法
useradd [options] LOGIN
useradd -D
useradd -D [options]
常用選項
-u UID:手動指定用戶的UID。在linux6.x中UID最小不低於500,最大不超過60000,在linux7.x中UID最小不低於1000,最大不超過60000。而這個最小最大不超過那個值是在/etc/login.defs文件中定義的
-g GID|Gname:指明用戶所屬基本組,-g選項後面可以接組名或者也可以接GID
-c str:指明用戶的一些基本的描述,str就表示基本的描述
-d path:指明用戶的家目錄,path為家目錄路徑。可以不指定,不指定則為/home+用戶名組成家目錄,比如,oldboy用戶,不指定家目錄,則預設是/home/oldboy。
註意:如果這個路徑已經存在,即家目錄已經存在,那麼創建用戶指定這個已經存在的目錄為家目錄時,不會從/etc/skel拷貝任何文件。不拷貝任何文件意味著,當我們使用su命令切換到這個用戶上的時候,不能夠正常顯示,因為這個/etc/skel文件包含一些環境變數值的定義
-s shell:指定用戶的預設shell
-m:創建用戶的家目錄
-M:不創建用戶的家目錄
-r:創建系統用戶
CentOS6.x的系統用戶UID小於500
CentOS7.x的系統用戶UID小於1000
-p password:創建用戶並且給定密碼(不推薦使用,因為在歷史記錄中間存在這條記錄)
-G GID|Gname,GID|Gname,GID|Gname...:指定用戶的附加組,可以指定多個,每個用逗號隔開,但是這些組必須事先存在
-f num:修改賬戶徹底禁用的寬限時間
-e datetime:修改賬戶過期時間
-D:修改創建用戶使用的預設值,創建用戶使用的預設值定義在/etc/default/useradd文件中,修改也是修改這個文件的值。但是這個選項要結合其它選項一起使用,如下:
-s shell:修改預設shell
-f num:修改預設賬戶過期的寬限時間
-e num:修改預設賬戶過期時間
-b path:修改預設家目錄
-g Gname:修改預設用戶的基本組
3、groupadd命令
基本介紹
創建一個組
基本語法
groupadd [options] groupName
常用選項
-g num:手動指定組的GID
-r:創建一個系統組
CentOS6.x的系統組GID小於500
CentOS7.x的系統組GID小於1000
4、id命令
基本介紹
列印有效用戶或者組的id
基本語法
id [OPTION]... [USERNAME]
常用選項
-u:顯示用戶的UID
-g:顯示用戶的基本組
-G:顯示用戶所有的組包括基本組和附加組
-n:顯示組或者用戶的名字,這個選項要結合-u、-g、-G選項使用
5、su命令
基本介紹
切換用戶或者以其他用戶身份執行命令
基本語法
su [OPTION]... [-] [USER [ARG]...]
常用選項
-c COMMAND:切換身份執行命令。命令執行結束回到原來的用戶下
案例演示
su -c “cat /etc/fstab” - odloy
-l:切換登錄的意思,這個選項與 -、--login用法一致
su - oldboy 與 su -l oldboy 與 su --login oldboy是一樣的
-s shell:切換到目標用戶以後使用指定的shell,而不是使用目標用戶的預設shell
su命令切換用戶的方式
su username:非登錄式切換,不會載入目標用戶即這裡的username的配置文件
su - username:登錄式切換,會載入目標用戶即這裡的username的配置文件,這個也叫完全切換
註意:管理員切換至其他用戶無需密碼,其他用戶切換時需要密碼
6、usermod命令
基本介紹
修改用戶賬戶信息
基本語法
usermod [options] LOGIN
常用選項
-u New_UID:修改原來的UID,修改為New_UID
-g New_GID|New_name:修改原來的基本組,修改為New_GID或者New_name
-G Group1[,Group2,.....[,Groupn]]:修改附加組,原來的附加組會被新的附加組覆蓋,若想保留原來的附加組聯合使用-a選項
-s shell:修改用戶的預設shell
-c new_comment:修改用戶的註釋或者基本描述信息
-e date:修改賬戶過期時間,date的格式YYYY-MM-DD,它會自動換算
-f days:修改賬戶警用的寬限時間
-d path:修改用戶的家目錄為path
註意:預設原來的家目錄下麵的文件不會同時移動至新的家目錄下。如果要移動,則使用-m選項
-l login_name:修改的登錄名
-L:lock鎖定指定用戶
這個有什麼現象呢?
當我們鎖定一個用戶時,會在/etc/shadow文件中的密碼欄位前面加一個感嘆號。鎖定以後的用戶沒法切換也沒法登錄,但是管理員可以切換過去
-U:unlock解除鎖定
7、passwd命令
基本介紹
給用戶添加密碼
基本語法
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n min-
days] [-x maxdays] [-w warndays] [-i inactive-
days] [-S] [--stdin] [username]
常用選項
-l:鎖定指定用戶
-u:解鎖指定用戶
-n days:你的密碼最短使用期限
-x days:你的密碼最大使用期限
案例演示
[root@oldboy ~]# tail -n 1 /etc/shadow www:!!:17959:0:99999:7::: [root@oldboy ~]# passwd -x 10 www Adjusting aging data for user www. passwd: Success [root@oldboy ~]# tail -n 1 /etc/shadow www:!!:17959:0:10:7:::
-e days:設置密碼過期時間
-d:刪除密碼
--stdin:從標準輸入接受用戶密碼
案例演示
[root@oldboy ~]# echo 123|passwd --stdin www Changing password for user www. passwd: all authentication tokens updated successfully.
使用註意
如果一個賬戶沒有設置密碼,那麼他自己沒法改密碼,只能通過管理員添加密碼後你在修改。同時如果普通用戶設置密碼沒有滿足linux設置密碼的策略,那麼不會設置成功
未完,待續....