1. 程式人生 > >Linux下的使用者管理(二)——更改使用者的資訊,密碼的資訊及使用者的授權

Linux下的使用者管理(二)——更改使用者的資訊,密碼的資訊及使用者的授權

1.連網的過程
(1)先切換到超級使用者下進行操作,普通使用者不可以更改系統配置
(2)cd /etc/sysconfig/network-scripts/
(3)切換到該目錄下後ls檢視,有route-br0檔案的話直接rm -fr route-br0刪除他
在這裡插入圖片描述
(4)再vim e-br0,沒有東西的話退出
在這裡插入圖片描述
(5)vim ifcfg-br0,看有沒有GATEWAY(有的話註釋掉GATEWAY)
在這裡插入圖片描述
(6)vim /etc/sysconfig/network並註釋掉GATEWAY(加#註釋)
在這裡插入圖片描述
(7)重啟系統或重啟網路,ping 一個網址看能不能通 (如:ping www.baidu.com
systemctl stop NetworkManager.service是關掉網路
systemctl start NetworkManager.service開啟網路

2.建立的使用者在/etc/login.defs下,帳號的認證資訊預設在該目錄下

3.更改使用者資訊
usermod (modify)
注:先新建一個使用者並監控/etc/passwd和/etc/group檔案
在這裡插入圖片描述
(1)usermod -l (login登陸的意思) newname oldname更改使用者的名字
在這裡插入圖片描述

(2)usermod -u uid username 更改使用者的uid
在這裡插入圖片描述
(3)usermod -g gid username 更改使用者的 gid
在這裡插入圖片描述
(4)usermod -G xxx username 更改使用者的附加組,同時新增加逗號,同時去掉加 “ ”
在這裡插入圖片描述
如:將使用者的附加組1001改為21
在這裡插入圖片描述


(5)usermod -aG xxx username 新增,在原附加組不變的情況下新增新的附加組-G會把原來的附加組刪掉,然後新增新的附加組(’ '和 “ ”的區別是弱引用和強引用)
在這裡插入圖片描述
usermod -G " " username 是清空該使用者的所有附加組
在這裡插入圖片描述

注:建立一個使用者的同時會建立一個對應的組,修改使用者的名字時原來組的名字不會變,當修改資訊與原來資訊相同時系統會提示usermod: no changes(-g -G和-aG使用時要注意這個組必須存在)
(6)usermod -c " " username更改使用者的說明資訊
在這裡插入圖片描述
(7)usermod -s username 更改使用者的shell

注:更改shell時shell必須是系統中存在的shell,檢視系統中的shell用 cat /etc/shells
在這裡插入圖片描述
(8)usermod -d 只是更改家目錄的指向,名字不變
在這裡插入圖片描述
此時切換到使用者boom會出現以下情況
在這裡插入圖片描述
這是因為該使用者的家目錄指向改變了,但系統中他的家目錄還是以前的名字,此時切換使用者就會出現矛盾
(9)usermod -md 時改變家目錄的名字和指向,順序不可逆
將使用者家目錄的名字和指向都改回原來的時切換使用者就會成功
在這裡插入圖片描述

(10)usermod -L (lock) 鎖定使用者
注:凍結和解鎖使用者前需要設定密碼
在這裡插入圖片描述
然後鎖定該使用者
在這裡插入圖片描述
退出當前使用者重新登入出現以下介面,由於新建的使用者被凍結了所以圖形登入介面不會顯示該使用者的資訊
在這裡插入圖片描述
選擇超級使用者登入後對新建使用者進行解鎖
(11)usermod -U 解鎖使用者 (unlock)
在這裡插入圖片描述
再退出當前使用者來到登入介面(hello是之前對當前使用者新增的說明)
在這裡插入圖片描述
選擇hello登入,輸入設定的密碼即可登入
在這裡插入圖片描述

4.使用者密碼相關
(1)passwd username 設定使用者密碼(必須在超級使用者下執行該命令)
在這裡插入圖片描述
#####ctrl+D 退出命令列
(2)使用者密碼資訊各個位的含義

使用者名稱 使用者的名字
密碼 (使用者的加密字串,預設的加密方式為sha512對稱加密,如果加密字串前出現了“!”那麼使用者被凍結)
密碼使用天數 (使用者密碼最後一次被更改的時間,此時間是從1970-1-1開始計算的累計天數)
密碼的最短有效期 (相當於保質期,如果此為有數字,那麼在此位數字範圍內的天數內是不能修改使用者密碼的)
密碼的最長有效期 (使用者必須在此有效期內更新密碼,如果超時會被凍結)
有效期提示 (快到期的前指定天數內提醒使用者)
非活躍天數 (此位預設為空,如果設定數值那麼在密碼最長有效期哦過後仍然可以使用的保質期外的額外期限)
帳號到期日 (預設為空,表示帳號一定會被凍結的時間點,不可以重新整理,到期就會凍結)
使用者自定義列 (目前沒有用)

注:
1.一個使用者被刪除時該使用者的密碼資訊都會被刪除
2.超級使用者更改使用者密碼時不需要輸入原始密碼,超級使用者設定的密碼不受強度的限制,超級使用者的規定時用來限制普通使用者的,自己不受限制
3.使用者自己修改自己密碼時切換到該使用者下直接執行passwd命令,然後輸入原始密碼,密碼會要求密碼強度,密碼不能和帳號名稱相似,密碼不能是純數字或純字母,也不可以是有序的字母或數字的組合
4.對稱加密:加密和解密用的是同一個字串如指紋解鎖

####做以下實驗前先執行 watch -n 1 'tail -n 1 /etc/shadow’進行監控,再新建######
在這裡插入圖片描述
在這裡插入圖片描述
(3)passwd -d username 刪除密碼(超級使用者下使用)
在這裡插入圖片描述
(4)passwd -l username 鎖定該使用者密碼,直觀顯示是在使用者密碼前加入“!!” (只能超級使用者下使用)
在這裡插入圖片描述
(5)passwd -u username 解鎖該使用者密碼,直觀顯示是去掉密碼前的!!(只能超級使用者下使用 )
在這裡插入圖片描述
圖上顯示解鎖的密碼是空的必須要加“-f”強制解鎖,所以解鎖使用者密碼時密碼不能為空
在這裡插入圖片描述
(6)passwd -S username 檢視使用者的密碼資訊 只有超級使用者下可以使用
在這裡插入圖片描述
當用戶密碼不為空時會顯示密碼的加密方式(SHA512)
在這裡插入圖片描述
(7)usermod -L username 鎖定使用者,直觀顯示是在使用者密碼前加入“!”
在這裡插入圖片描述
(8)usermod -U username 解鎖使用者,直觀顯示是在去掉密碼前的“!”

注:此命令在密碼不為空時使用,若密碼為空會出現以下報錯
在這裡插入圖片描述
給boom使用者設定一個密碼之後執行該命令便不會再報錯,如圖密碼前的!被去掉了
在這裡插入圖片描述
(9)修改使用者密碼最後一次被更改日期
<1> passwd -e username (-e預設將時間設為0)
在這裡插入圖片描述
<2> chage -d num username
在這裡插入圖片描述
注:當密碼最後一次執行時間被更改時再次登陸該使用者系統會強制更改密碼
如圖:退出當前使用者選擇新建的使用者登入
在這裡插入圖片描述
如圖系統會要求輸入原始密碼修改新密碼
在這裡插入圖片描述
輸入新密碼:
在這裡插入圖片描述
再次輸入新密碼
在這裡插入圖片描述
修改密碼成功,登入成功
(10)修改使用者密碼的最短有效日期
<1> passwd -n 1 username
在這裡插入圖片描述
<2> chage -m 0 username
在這裡插入圖片描述
注:修改後在指定的時間內普通使用者無法修改自身密碼,當用戶在最短有效期內修改自己的密碼時系統會提示需要再等更長的時間,但超級使用者可以

如圖:先切換到該使用者下再更改自己的密碼會出現一下情況(操作前需要將最短有效期改成一個大於0的數)
在這裡插入圖片描述
如圖:切換到超級使用者下後修改新建使用者的密碼儘管最短有效期是1,但還是可以修改成功;所以說所有的設定對超級使用者是沒有限制的
在這裡插入圖片描述
(11)最長有效日期
<1>passwd -x 30 username
(為了方便觀察如圖將該使用者的密碼刪除了)
在這裡插入圖片描述
<2>chage -M 31 username
在這裡插入圖片描述
(12)密碼警告日期
<1>passwd -w 2 username
在這裡插入圖片描述
<2>chage -W 30 username
在這裡插入圖片描述
(13)使用者非活躍天數
passwd -i 10 username(預設的非活躍天數是-1,0表示到期當天還可以使用)
在這裡插入圖片描述
chage -I 15 username
在這裡插入圖片描述
注:預設的非活躍天數是-1,0表示到期當天還可以使用

1.如圖:是將使用者的非活躍天數設定為預設
在這裡插入圖片描述
2.如圖:是將非活躍天數設定為0,表示到期當天還可以使用
在這裡插入圖片描述
(14)密碼到期日期
chage -E 時間點 最後一位的更改
在這裡插入圖片描述
注:passwd 和 chage 兩個命令的區別
passwd可以修改密碼,chage 不可以修改密碼,passwd不可以修改密碼到期時間
chage是專門更改使用者密碼資訊的命令
5.使用者授權
(1)權力下放檔案為 /etc/sudoers 可以用vim編輯,但不提供語法檢測
在這裡插入圖片描述
(2)visudo 專門用來編輯sudoers檔案的命令,會自動檢測語法,當語法沒有錯誤時才可以退出
在這裡插入圖片描述
########在100行左右輸入(為了語法的規範性)
使用者 主機名稱=(得到的使用者身份) 命令
例如:

命令 含義
popo localhost=(root) /usr/sbin/useradd (popo可以在localhost主機以root使用者身份執行useradd命令 )
popo localhost=(root) NOPASSWD: /usr/sbin/useradd (popo可以在localhost主機以使用者身份免密執行useradd )

popo localhost=(root) /usr/sbin/useradd (popo可以在localhost主機以root使用者身份執行useradd命令
popo localhost=(root) NOPASSWD: /usr/sbin/useradd(popo可以在localhost主機以使用者身份免密執行useradd

注: 檢視主機名 hostname
在這裡插入圖片描述
##########測試#########
(1)使用者沒有密碼的情況:

<1>先su - username其切換到普通使用者下,再執行useradd命令
如圖:使用者boom是沒有建立新使用者的許可權的
在這裡插入圖片描述
進入visudo在100行左右輸入如下命令
在這裡插入圖片描述
<2>這時sudo呼叫useradd命令系統會提示,(若是使用者有密碼會提示輸入密碼,沒有密碼會出現下圖提示)
在這裡插入圖片描述
(2)輸入密碼的情況:
(呼叫) sudo 命令 第一次執行時需要輸入密碼
<1>如圖:新建一個使用者yan,給該使用者設定密碼
在這裡插入圖片描述
在這裡插入圖片描述
<2>超級使用者下visudo,當輸入的內容有語法錯誤時系統會報錯,按“e”進入編輯,更改錯誤後退出
在這裡插入圖片描述
輸入的內容為
在這裡插入圖片描述
<3>切換到yan這個使用者下並sudo呼叫useradd命令,系統會提示輸入yan這個使用者的密碼,輸入密碼後新使用者建立成功
在這裡插入圖片描述
(3)免密的情況:

注: 要一次授權多個命令時用“,”和空格隔開
<1>用超級使用者建立一個新的使用者liu,並給該使用者設定一個密碼
在這裡插入圖片描述
<2>visudo輸入以下內容
在這裡插入圖片描述
<3>切換到使用者liu,sudo呼叫useradd命令和userdel命令
在這裡插入圖片描述
此時系統不會出現任何報錯或提示,操作完後exit退出該使用者
6.環境變數: 系統會自動在環境變數中搜索 su - 中的 - 表示環境變數

######檢視環境變數echo $PATH
(1)如圖:su - 切換使用者後,對比兩個使用者的環境變數是不同的
在這裡插入圖片描述
(2)如圖:su 切換使用者後檢視環境變數,對比發現環境變數是一樣的
在這裡插入圖片描述