Linux賬號和權限管理
- 一.用戶賬號和組賬號概述
- ==Linux基于用戶身份對資源訪問進行控制==
- 二.用戶賬號檔案/etc/passwd
- ==保護用戶名稱、宿主目錄、登錄shell等基本資訊==
- 三.用戶賬號檔案/etc/shadow
- ==保護用戶的密碼、賬號有效期等資訊==
- 四.添加用戶賬號 useradd
- ① useradd或adduser命令
- ==② 常用選項==
- ③ 舉例
- 五.設定/更改用戶口令 passwd
- ① passwd 命令
- ==② 常用選項==
- ③ 舉例
- 六.修改用戶賬號的屬性 usermod
- ① usermod 命令
- ==② 常用選項==
- ③ 舉例
- 七.洗掉用戶賬號userdel
- ① userdel命令
- ② 舉例
- 八.用戶賬號的初始組態檔
- ① 檔案來源
- ② 主要的用戶初始組態檔
- 舉例
一.用戶賬號和組賬號概述
Linux基于用戶身份對資源訪問進行控制
① 用戶賬號
? 超級用戶: root 用戶是Linux作業系統中默認的超級用戶賬號,對本主機擁有最高的權限,系統中超級用戶是唯一的
? 普通用戶: 由root用戶或其他管理員用戶創建,擁有的權限會受到限制,一般只在用戶自己的宿主目錄中擁有完整權限
? 程式用戶: 在安裝linux作業系統及部分應用程式時,會添加一些特定的低權限用戶賬號,這些用戶一般不允許登錄到系統,僅用于維持系統或某個程式的正常運行
如 bin、daemon、ftp、 mail 等
② 組賬號
? 基本組(私有組): 基本組賬號只有一個,一般為創建用戶時指定的組
在/etc/ passwd檔案中第4欄位記錄的即為該用戶的基本組GID號
? 附加組(公共組): 用戶除了基本組以外,額外添加指定的組
③ UID和GID
? UID: 用戶標識號(User IDentity)
? GID: 組標識號(Group IDentify)
root用戶賬號的UID和GID號為固定值0
程式用戶賬號的UID和GID號默認為Centos5,6: 1~499,Centos7: 1 ~ 999
普通用戶的UID和GID號默認為Centos5, 6: 500~65535, Centos7: 1000 ~65535
二.用戶賬號檔案/etc/passwd
保護用戶名稱、宿主目錄、登錄shell等基本資訊
基于系統運行和管理需要,所有用戶都可以訪問passwd檔案中的內容,但是只有root用戶才能進行更改
在早期的UNIX作業系統中,用戶帳號的密碼資訊是保存在passwd檔案中的,不法用戶可以很容易的獲取密碼字串并進行暴力破解,因此存在一定的安全隱患,后來經改進后,將密碼轉存入專門的shadow檔案中,而passwd文 件中僅保留密碼占位符“x”
? 檔案位置:/etc/passwd
? 每一行對應一個用戶的賬號記錄

欄位1: 用戶帳號的名稱
欄位2: 用戶密碼占位符“x”
欄位3: 用戶帳號的UID號
欄位4: 所屬基本組帳號的GID號
欄位5: 用戶全名
欄位6: 宿主目錄
欄位7: 登錄Shell資訊( /bin/ bash為可登陸系統,/sbin/nologin和/bin/false為禁止用戶登陸系統)
三.用戶賬號檔案/etc/shadow
保護用戶的密碼、賬號有效期等資訊
默認只有root用戶能夠讀取shadow檔案中的內容,且不允許直接編輯該檔案中的內容
? 檔案位置:/etc/shadow
? 每一行對應一個用戶的密碼記錄

欄位1: 用戶帳號的名稱
欄位2: 使用MD5加密的密碼字串資訊,當為“*"或“!!”時表示此用戶不能登錄到系統,若該欄位內容為空,則該用戶無須密碼即可登錄系統
欄位3:上次修改密碼的時間,表示從1970年01月01日算起到最近一次修改密碼時間隔的天數
欄位4: 密碼的最短有效天數,自本次修改密碼后,必須至少經過該天數才能再次修改密碼,默認值為0,表示不進行限制
欄位5: 密碼的最長有效天數,自本次修改密碼后,經過該天數以后必須再次修改密碼,默認值為99999,表示不進行限制
欄位6: 提前多少天警告用戶密碼將過期,默認值為7
欄位7: 在密碼過期之后多少天禁用此用戶
欄位8: 帳號失效時間,此欄位指定了用戶作廢的天數(從1970年01月01日起計算),默認值為空,表示賬號永久可用
欄位9: 保留欄位(未使用)
四.添加用戶賬號 useradd
? 在/etc/passwd檔案和/etc/ shadow檔案的末尾增加該用戶賬號的記錄
? 若未明確指定用戶的宿主目錄,則在/home目錄下自動創建與該用戶賬號同名的宿主目錄,并在該目錄中建立用戶的各種初始組態檔
? 若沒有明確指定用戶所屬的組,則自動創建與該用戶賬號同名的基本組賬號,組賬號的記錄資訊將保存到/etc/group和/etc/gshadow檔案中
① useradd或adduser命令
useradd+【選項】+ 用戶名
② 常用選項
-u: 指定用戶的UID號,要求該UID號碼未被其他用戶使用
-d: 指定用戶的宿主目錄位置(當與-M一.起使用時,不生效),只能用絕對路徑指定目錄,且不需要事先創建目錄
-e: 指定用戶的賬戶失效時間,可使用YYYY -MM-DD的日期格式
-g: 指定用戶的基本組名(或使用GID號),對應的組名必須已存在
-G: 指定用戶的附加組名(或使用GID號),對應的組名必須已存在
-M: 不建立宿主目錄
-s: 指定用戶的登錄Shell, (比如/bin/bash為可登陸系統,/sbin/ nologin和/bin/ false為禁止用戶登陸系統)
useradd -d /admin -g wheel -G root admin1
useradd -e 2021-12-31 -s /sbin/nologin admin2
③ 舉例
-u -d -g -G:




-M -s -e:



注:-M -e -s對于程式用戶會用的多
五.設定/更改用戶口令 passwd
? 為用戶賬號設定密碼passwd
? root用戶可以指定用戶名作為引數,對指定賬號的密碼進行管理;不指定用戶名時,修改當前賬號的密碼
? 普通用戶卻只能執行單獨的“passwd"命令修改自己的密碼
① passwd 命令
passwd + 【選項】+ 用戶名
② 常用選項
-d: 清空指定用戶的密碼,僅使用用戶名即可登錄系統
-l: 鎖定用戶賬戶,鎖定的用戶賬號將無法再登錄系統
-S(大寫): 查看用戶賬戶的狀態(是否被鎖定)
-u: 解鎖用戶賬戶
設定用戶密碼方法二: echo "密碼” | passwd --stdin 用戶名
③ 舉例

沒鎖定的時候,串列是可以看到的:

鎖定這個用戶的時候,串列中就看不到了:


echo "密碼” | passwd --stdin 用戶名

六.修改用戶賬號的屬性 usermod
① usermod 命令
usermod + 【選項】+ 用戶名
② 常用選項
-l: 更改用戶賬號的登錄名稱
-L: 鎖定用戶賬戶
-U: 解鎖用戶賬戶
以下選項和useradd命令中的含義一樣,只不過是修改罷了
-u: 修改用戶的UID號
-d: 修改用戶的宿主目錄位置
-e: 修改用戶的賬戶失效時間,可使用YYYY-MM-DD 的日期格式
-g: 修改用戶的基本組名(或使用GID號)
-G: 修改用戶的附加組名(或使用GID號)
-s: 指定用戶的登錄Shell
③ 舉例
-l:




-d -g -G:



注:用usermod更改前一個用戶名的宿主目錄之后,/home里的原宿主目錄不會變可以 mv jj heihei
七.洗掉用戶賬號userdel
① userdel命令
userdel + 【-r】+ 用戶名
添加-r選項時,表示連用戶的宿主目錄一并洗掉
② 舉例

八.用戶賬號的初始組態檔
① 檔案來源
? useradd命令添加一個新的用戶賬號后會在該用戶的宿主目錄中建立一-些初始組態檔

? 這些檔案來自于賬號模板目錄/etc/skel/,基本上都是隱藏檔案
② 主要的用戶初始組態檔
用戶宿主目錄下的初始組態檔只對當前用戶有效
~/ .bash_ profile
此檔案中的命令將在該用戶每次登錄時被執行,它會設定一些環境變數,并且會呼叫該用戶的~/.bashrc檔案
~/ . bashrc
此檔案中的命令會在每次打開新的bash shell時( 也包括登錄系統)被執行,并且會呼叫/etc/bashrc檔案
~/ . bash_logout
此檔案中的命令將在用戶每次退出登錄或退出bash shell時執行
全域組態檔對所有用戶有效
/etc/profile
這個檔案是為系統全域變陣列態檔,可通過重啟系統或者執行source /etc/profile 命令使profile檔案被讀取
/etc/profile.d/
這個檔案實際上是/etc/profile的子目錄,存放的是一些應用程式所需的啟動腳本
/etc/bashrc
每一個運行bash shell 的用戶都會執行此檔案,可通過執行bash命令打開一個新的bash shell時,使bashrc檔案被讀取
vi /etc/bashrc
alias myls=’ /bin/ls -lhr’
bash
type myls
舉例
~/ .bash_ profile

~/ . bashrc




解決方法:




注意,以上的方法只是在當前用戶下有效
需要任意用戶切換都可以,解決方法:



注:需要加什么樣的環境變數,看你自己需求
PATH變數用于設定可執行程式的默認搜索路徑
PATH生效的原理:
每次啟動系統的時候會初始化命令,會執行/etc/profile和~/ . bash_ profile
/etc/profile會將路徑/usr/local/bin、/usr/bin、/usr/local/sbin、/usr/sbin追加到PATH中去,然后呼叫/etc/profile.d 目錄下的腳本
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/276300.html
標籤:其他
