Linux系統中的使用者的基礎認識及操作命令

adreamchaser剛發表於2020-10-13

1 使用者及使用者組存在的意義

1)使用者存在的意義
系統資源是有限的,如何合理分配系統資源?
在這個問題解決時必須要有使用者來管理分配
1.身份 account
2.授權 author
3.認證 auth
這就是所謂的3A機制,3A機制組成系統中最底層的安全架構
2)使用者組存在意義
使用者組是一個邏輯容器,對使用者進行歸類和統一授權

2.使用者及使用者組在系統中的存在方式

id 即名稱 必須要記錄到檔案當中使用者才能存在
使用者就是/etc/passwd檔案中的一行字元
使用者組存在的方式就是/etc/group 檔案中的一行字元

3.使用者切換

1)使用者檢視
*whoami ##檢視當前使用者
*id ##檢視使用者id資訊
-u ##檢視使用者的使用者id
-g ##檢視使用者主組id
-G ##檢視使用者所有的組的id
-n ##顯示名稱
在這裡插入圖片描述

2)使用者切換
su - username

符號‘-’ #切換使用者環境
username ##如果root ----> commonuser 不需要後者密碼
##commonuser ----> root 需要密碼
##commonuser ----> commonuser 需要密碼
#
#注意:在做使用者切換時當使用完畢使用者身份及時退出
#不要在一個shell中反覆執行su命令
#在一個shell中反覆執行su命令會導致環境錯亂

4.使用者涉及到的系統配置檔案

/etc/passwd ##使用者身份資訊檔案
#使用者名稱稱:使用者密碼:使用者id:使用者主組id:使用者說明:使用者家目錄:使用者預設shell
/etc/group ##組身份資訊檔案
#組名稱:組密碼:組id:組的附加成員
/etc/skel/.* ##使用者環境配置檔案模板
/etc/shadow ##使用者認證資訊檔案
/home/username ##使用者家目錄

5.使用者和使用者組建立及刪除

監控使用者建立的命令
watch -n 1 “tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home”
useradd username ##使用者建立
-u id username ##uid 2**16=0-65535
##0 表示超級使用者
##1-200 系統預留id
##201-999 系統使用者
##1000-60000 使用者級使用者
##/etc/login.defs 記錄使用者建立的預設規則

-g id username ##主組id
-G id username ##附加組id
-d dir username ##指定使用者家目錄
-c word username ##指定使用者說明
-s shell username ##指定用shell
userdel -r username ##使用者刪除 -r 刪除使用者的系統配置檔案

groupadd groupname ##組建立
-g id groupname ##指定組名稱
在這裡插入圖片描述在這裡插入圖片描述

左邊的shall視窗是在監視使用者和使用者組;右邊的shall是在執行使用者命令,通過建立和刪除使用者可以在監視視窗明顯看到變化
監控命令watch -n 1 “tail -n 3 /etc/passwd /etc/group;ls -l /home”
在這裡插入圖片描述

在這裡插入圖片描述在這裡插入圖片描述

每次建立完使用者或使用者組時,儘量都把建立後的使用者或使用者組刪除,為了保證系統環境的純淨

root: x:0:0:super use:/root:/bin/bash
使用者名稱稱:密碼:uid:gid:使用者說明:家目錄:預設開啟的shall

6.使用者和使用者組的資訊管理

usermod
-l #更改使用者名稱稱
-u #更改使用者id
-g #更改主組id
-G #更改使用者附加組身份
-aG #新增使用者附加組身份
-c #更改使用者說明
-d #更改家目錄指向
-md #更改家目錄指向同時更改家目錄名稱
-s #更改預設shell
-L #凍結賬號
-U #解鎖

groupmod -g ##更改使用者組id
在這裡插入圖片描述
在這裡插入圖片描述更改使用者名稱稱linux改為hihi
在這裡插入圖片描述
在這裡插入圖片描述新增附加組後可以在監控中明顯看到
在這裡插入圖片描述

7.使用者認證資訊管理

#1.使用者名稱稱
passwd -S username ##檢視密碼狀態

#2.使用者加密字元
#更改密碼)
passwd username ##只有root可以執行 “echo 123 | passwd --stdin lee”

passwd ##普通使用者改密碼
Changing password for user username.
Current password: #輸入原始密碼
New password: ##輸入新密碼(8位以上無序數字+無序字母組合)
Retype new password: ##重複輸入
passwd: all authentication tokens updated successfully.
在這裡插入圖片描述
在這裡插入圖片描述超戶下可以用echo來修改普通使用者密碼,還有多行錄入的指令碼檔案
在這裡插入圖片描述修改密碼後監控中的加密字串明顯發生變化

#凍結認證)
passwd -l username ##凍結賬號認證
passwd -u username ##解鎖賬號認證

#密碼刪除)
passwd -d username

#密碼使用天數
*從1970-1-1算其到今天的時間

passwd -e username ##修改預設使用時間為0
chage -d 0 username ##賬號必須改密碼才能登陸系統
在這裡插入圖片描述

#密碼最短有效期
passwd -n 1 username ##lee在1天內不能改密碼
chage -m 1 username
在這裡插入圖片描述

#密碼最長有效期
passwd -x 40 username ##40天內lee使用者必須更新密碼否則會被凍結
chage -M 30 username
在這裡插入圖片描述

#密碼過期警告
passwd -w 2 username ##賬號過期前警告時間
chage -W 1 username

#認證非活躍天數
passwd -i 2 username ##賬號認證最大時間超過後還能用多久
chage -I 1 username

#賬號認證到期時間

chage -E “2020-05-11” ##到2020-5-11這天賬號會被凍結

8.使用者權力下放

#在系統中普通使用者時無法執行系統管理命令的
#如果需要普通使用者執行系統管理動作那麼需要
#root使用者來進行授權

普通使用者授權方式 “sudo”
作用:
可以使普通使用者使用指定的使用者身份呢執行命令

授權方法:
visudo ##此命令作用是編輯/etc/sudoers並提供語法檢測

在檔案的100行左右 ##程式碼規範性

username hostname=(newusername) [NOPASSWD:] /command, /command1
在這裡插入圖片描述在我的電腦中授權命令為westosadmin westos_student47.westos.org=(root) NOPASSWD: /usr/sbin/useradd, /user/sbin/userdel

#lee使用者 在linux.wesots.com主機=(用超級使用者身份) 執行useradd命令
lee linux.westos.com=(root) /usr/sbin/useradd

#westos使用者 在linux.wesots.com 使用超戶 免密 執行useradd 和 userdel
westos linux.wesots.com = (root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel

測試:
su - lee

sudo useradd westostest ##在lee第一次使用sudo命令時需要輸入lee密碼

exit #退出lee

su - westos

sudo userdel -r westostest ##westos可以免密執行userdel 命令

相關文章