linux新手基礎3-使用者的管理
linux新手基礎3——使用者的管理
1.使用者存在的意義
使用者就是系統使用者的身份。
在系統中使用者儲存為若干串字元+若干個系統配置檔案。
2.組存在的意義
1)
檢視當前的使用者
whoami ##檢視當前的使用者
2)
系統中使用者的檢視
id ##檢視指定使用者的id
-u ##檢視使用者的uid
-g ##檢視使用者的gid
-G ##檢視使用者的所有組的id
-n ##顯示名字而不是數字
-nG ##檢視使用者的所有組的名字
3.使用者的切換
su - 使用者名稱稱
su - 中“-”表示使用者身份切換的同時切換當前使用者的環境
su - 執行時高階使用者切換到低階使用者不需要輸入密碼,低階使用者切換到高階使用者需要輸入密碼。平等級別的使用者切換也需要輸入密碼。
敲重點:
每次su切換到其他使用者操作後必須退出,然後再次切換到其他使用者。
gnome-session-quit --force ##登出當前使用者,然後再登入其他使用者
exit ##退出當前shell
4.使用者在系統中的儲存方式
/etc/passwd
使用者資訊檔案
使用者名稱稱:密碼:uid:gid:對使用者的說明:家目錄:預設shell
uid:大於1000 不超過60000
gid:大於1000 不超過60000
/etc/group
使用者組資訊檔案
組的名字:組密碼:組id:組成員
/etc/shadow
認證資訊檔案
/etc/skel/.*
預設開啟shell的配置,使用者的骨檔案
watch -n 5 命令
監視一條命令以5秒執行一次
/home/username
使用者的家目錄
5.使用者管理命令
1)使用者的刪除
userdel
userdel student ##刪除使用者但不刪除使用者的配置檔案
userdel -r student ##刪除使用者並刪除使用者的配置檔案
2)使用者的建立
用使用者監控命令可以清楚的看到效果
watch -n 1 'tail -n 3 /etc/passwd /etc/group;ls -l /home'
命令 | 含義 |
---|---|
useradd hahaha | 建立使用者時,讀取/etc/login.defs檔案內容確定規則 |
useradd -u 1234 hahaha | 指定使用者uid |
useradd -g 20 hahaha | 指定使用者初始組id,“20”使用者組必須存在 |
useradd -G 21 hahaha | 指定使用者的附加組,“20”使用者組必須存在 |
useradd -c “shuaige” hahaha | 指定使用者的說明 |
useradd -d /home/ka hahaha | 指定使用者的家目錄 |
useradd -s /bin/sh hahaha | 指定使用者的預設shell |
groupadd hahaha1 | 建立使用者組 |
groupadd -g 666 hahaha1 | 建立使用者組並指定使用者組的id |
groupdel hahaha1 | 刪除使用者組 |
3)更改使用者資訊
為了更好的看到效果,我們對操作進行監控:
watch -n 1 ‘tail -n 3 /etc/passwd /etc/group; ls -l /home’
更改使用者名稱稱:
usermod -l redhat westeos
更改uid:
usermod -u 1234 redhat
更改初始組g:
usermod -g 666 redhat
更改附加組G:
usermod -G 4444 redhat
更改附加組G為空:
usermod -G ‘’ redhat
在不變的情況下新增附加組:
usermod -aG 1001 redhat
更改說明文字:
usermod -c ‘hahaha’ redhat
更改使用者所使用的shell:
usermod -s /bin/sh redhat
更改家目錄指向,但實際指向還是原來的:
usermod -d /home/lee redhat
更改家目錄指向和實際指向:
usermod -md /home/hahaha redhat
注意:-md順序不能改變
設定使用者密碼:
passwd nihao##設定兩次,不回顯
reboot重啟虛擬機器即可看見新使用者:
鎖定nihao使用者:
usermod -L nihao
reboot後重新登陸發現nihao使用者消失
解鎖使用者nihao的操作:
usermod -U nihao
再次reboot重啟虛擬機器就可重新看見nihao使用者出現
6.使用者認證資訊
/etc/shadows #記錄使用者認證資訊此檔案一共有九列
例如:westos:!! : 17091 : 0 : 99999 : 7 : : :
【1】:【2】:【3】:【4】:【5】:【6】:【7】:【8】:【9】
專案 | 含義 |
---|---|
【1】 | 使用者名稱稱 |
【2】 | 使用者密碼(使用者加密字串,預設為sha512對稱加密,如果加密字串前出現“!”,則表示使用者被凍結,) |
【3】 | 密碼最後一次被更改的時間(此時間從1970年1月1開始計算累計) |
【4】 | 密碼最短有效期(如果此位有設定數字,那麼在此數字範圍天數不得修改密碼) |
【5】 | :密碼最長有效期(使用者必須在此有效期內更新密碼,若超時則被凍結): |
【6】 | 密碼警告期限(在過期前指定天數內傳送資訊給使用者) |
【7】 | 非活躍天數(寬限登陸期限,此為預設為空,若有數值則在使用者密碼最長有效期過後仍然可以使用的天數) |
【8】 | 帳號到期日(不可重新整理,直接凍結,為空則永遠不會到期) |
【9】 | 使用者自定義,目前沒有啟用 |
認證資訊都在/ect/login中
passwd -S redhat # 檢視redhat使用者密碼資訊
passwd -d redhat #刪除密碼
使用者密碼管理:
以使用者redhat為例
命令 | 含義 |
---|---|
passwd redhat | 更改普通使用者redhat密碼 |
passwd -l redhat | 在使用者密碼前加入“!!”,鎖住帳號 |
passwd -u redhat | 解鎖“!!” |
usermod -L redhat | 在使用者密碼前加入“!”,鎖住帳號 |
usermod -U redhat | 解鎖帳號“!” |
更改普通使用者密碼:
在使用者密碼前加入“!!”,鎖住帳號:
passwd -u westos #解鎖“!!”:
在使用者密碼前加入“!”,鎖住帳號:
解鎖帳號“!”:
注意:
普通使用者改密碼時
1.必須知道當前使用者原始密碼
2.密碼不能和帳號名稱相似
3.密碼不能是純數字或純字母
4.密碼不能是有序的字母和數字的組合
使用者密碼最後一次被更改時間:
以nihao使用者為例
命令 | 含義 |
---|---|
passwd -e nihao | 會改變使用者最後一次,只能改為0,改後強制使用者改密碼 |
chage -d 0 nihao | 兩個功能相似 |
使用者密碼最長有效期:
以nihao使用者為例
命令 | 含義 |
---|---|
passwd -x 30 nihao | 設定在30天內必須修改密碼 |
chage -M 40 nihao | 兩個功能相似 |
使用者密碼最短有效期:
以nihao使用者為例
命令 | 含義 |
---|---|
passwd -n 2 nihao | nihao使用者在2天之內不能修改密碼 |
chage -m 2 nihao | 兩個功能相似 |
密碼警告期限:
以nihao使用者為例
命令 | 含義 |
---|---|
passwd -w 2 nihao | 密碼過期前兩天有警告輸出 |
chage -W 2 nihao | 兩個功能相似 |
使用者非活躍天數:
以nihao使用者為例
命令 | 含義 |
---|---|
passwd -i 1 nihao | 密碼過期後任然可登陸的天數 |
chage -I 1 nihao | 兩個功能相似 |
使用者到期日:
以nihao使用者為例
命令 | 含義 |
---|---|
chage -E 2019-01-05 nihao | nihao使用者在2019-01-05日被凍結 |
使用者自定義列,目前沒有啟動
7.使用者授權
在使用者授權之前先要清楚自己的主機名:
hostname #檢視自己主機名
權力下放檔案 | 用法 |
---|---|
/etc/sudoers | 此檔案可以用vim直接編輯,但是不提供語法檢測。也可以使用visudo編輯此檔案,visudo命令是提供語法檢測的 |
權力下放方式 | 用法 |
---|---|
visudo | 使用者 主機名稱=(得到使用者身份) 命令(程式碼寫在100行左右,規範書寫要寫註釋) |
例如給nihao使用者下方root的useradd權力
nihao localhost=(root) /usr/sbin/useradd #nihao使用者可以在localhost主機以root身份執行useradd命令
必須要切換到nihao使用者並使用sudo useradd lalala否則將會不被允許
若是既不想輸入密碼又想新增使用者則需要在sudo中新增以下程式碼
nihao localhost=(root) NOPASSWD: /usr/sbin/useradd #nihao使用者可以在localhost主機以root身份免密執行useradd命令