五、對Linux中使用者的詳細解釋及操作

相空間中的隨機海發表於2020-10-14


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

1)使用者存在的意義
系統資源是有限的,如何合理分配系統資源?
在這個問題解決時必須要有三個資源配合
1.身份 account
2.授權 author
3.認證 authentication

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 命令,會導致環境錯亂,儘量不要超過兩層!!

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

/etc/passwd     ##使用者身份資訊檔案
 westos :  x   : 1000 :  1000  : westos :/home/westos :/bin/bash
#使用者名稱稱:使用者密碼:使用者id:使用者主組id:使用者說明 :使用者家目錄  :使用者預設shell
/etc/group      ##組身份資訊檔案
westos:  x  :1000:
#組名稱:組密碼:組id:組的附加成員
/etc/skel/.*    ##使用者環境配置檔案模板 [若當前使用者配置檔案有問題,則刪掉配置檔案,複製/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  ##指定使用者說明 [-c "說明" username]
        -s shell username ##指定用 shell
        -M username       ##不建立家目錄
userdel -r username       ##使用者刪除 -r 刪除使用者的系統配置檔案
groupadd groupname        ##組建立
        -g id groupname   ##指定組名稱
groupdel groupname        ##組刪除

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

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

7.使用者認證資訊管理

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

2.使用者加密字元
#更改密碼
passwd lee         ##只有 root 可以執行 “echo 123 | passwd --stdin lee”
passwd             ##普通使用者改密碼
Changing password for user lee.
Current password:  #輸入原始密碼
New password:      ##輸入新密碼(8 位以上無序數字+無序字母組合)
Retype new password: ##重複輸入
passwd: all authentication tokens updated successfully.

#凍結認證
passwd -l lee      ##凍結賬號認證  "!!" 兩個!
passwd -u lee      ##解鎖賬號認證

#密碼刪除
passwd -d lee   
   
#密碼使用天數
*從 1970-1-1 算其到今天的時間
passwd -e lee      ##修改預設使用時間為 0
chage -d 0 lee     ##賬號必須改密碼才能登陸系統

#密碼最短有效期
passwd -n 1 lee    ##lee 在 1 天內不能改密碼
chage -m 1 lee

#密碼最長有效期
passwd -x 40 lee   ##40 天內 lee 使用者必須更新密碼否則會被凍結
chage -M 30 lee

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

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

#賬號認證到期時間
chage -E "YYYY-MM-DD"   ##到 YYYY-MM-DD 這天賬號會被凍結

#未啟用功能

8.使用者權力下放

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

作用:
可以使普通使用者使用指定的使用者身份去執行命令

授權方法:
visudo                  ##此命令作用是編輯/etc/sudoers 並提供語法檢測
在檔案的 100 行左右      ##程式碼規範性

username     hostname=(newusername)      [NOPASSWD:] /command, /command1

例子:
1) #lee使用者         在 linux.wesots.com主機=(用超級使用者身份)     執行   useradd 命令
    lee            linux.westos.com=(root)                  /usr/sbin/useradd
  
2) #westos 使用者     在 linux.wesots.com 使用超戶  免密       執行 useradd 和 userdel
    westos           linux.wesots.com = (root)  NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
which useradd        #which命令 檢視命令的絕對路徑

相關文章