Linux账号和权限管理 一看就会的那些知识
文章目錄
- 一、用戶賬號和組賬號概述
-
- (一)、Linux基于用戶身份對資源訪問進行控制
- (二)、用戶賬號
- 二、用戶賬號文件
-
- (一)、用戶賬號文件 /etc/passwd
- (二)、用戶賬號文件 /etc/shadow
- (三)、添加用戶賬號 useradd
- (四)、設置/更改用戶口令passwd
- (五)、修改用戶賬號的屬性 usermod
- (六)、刪除用戶賬號userdel
- (七)、用戶賬號的初始配置文件
- 三、組賬號文件
-
- (一)、與用戶帳號文件相類似
- (二)、添加組賬號 groupadd
- (三)、添加刪除組成員 gpasswd
- (四)、刪除組賬號 groupdel
- 四、查詢賬號信息
-
- (一)、groups 命令
- (二)、finger 命令
- (三)、w、who、 users 命令
- 五、文件目錄的權限和歸屬
-
- (一)、訪問權限
- (二)、歸屬(所有權)
- (三)、查看文件/目錄的權限和歸屬
- (四)、設置文件和目錄的歸屬chown
- (五)、設置文件或目錄權限chmod
- (六)、設置目錄和文件的默認權限 umask
一、用戶賬號和組賬號概述
(一)、Linux基于用戶身份對資源訪問進行控制
1、用戶帳號
超級用戶、普通用戶、程序用戶
2、組帳號
基本組(私有組)
附加組(公共組)
3、UID和GID
UID (User IDentity,用戶標識號)
GID (Group IDentify,組標識號)
(二)、用戶賬號
超級用戶:root用戶是Linux
操作系統中默認的超級用戶賬號,對本主機擁有最高的權限。系統中超級用戶是唯一的。
普通用戶:由root用戶或其他管理員用戶創建,擁有的權限會受到限制,一般只在用戶自己的宿主目錄中擁有完整權限。
程序用戶:在安裝Linux操作系統及部分應用程序時,會添加一些特定的低權限用戶賬號,這些用戶一般不允許登錄到系統,僅用于維持系統或某個程序的正常運行,如bin、daemon、ftp、mail等。
組賬號
基本組(私有組) :基本組賬號只有一個,一般為創建用戶時指定的組。在/etc/passwd文件中第4字段記錄的即為該用戶的基本組GID號。
附加組(公共組) :用戶除了基本組以外,額外添加指定的組。
UID:用戶標識號
GID:組標識號
root用戶賬號的UID和GID號為固定值0
程序用戶賬號的UID和GID號默認為1~499
普通戶UIDRGID默認為500~60000
二、用戶賬號文件
(一)、用戶賬號文件 /etc/passwd
1、保存用戶名稱、宿主目錄、登錄Shell 等基本信息
文件位置:/etc/passwd
每一行對應一個用戶的帳號記錄
[root@localhost~]# head-2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
2、用戶賬號文件 /etc/passwd
基于系統運行和管理需要,所有用戶都可以訪問passwd文件中的內容,但是只有root用戶才能進行更改。
在早期的UNIX操作系統中,用戶帳號的密碼信息是保存在passwd文件中的,不法用戶可以很容易的獲取密碼字串并進行暴力破解,因此存在一定的安全隱患。后來經改進后,將密碼轉存入專門的shadow文件中,而passwd文件中僅保留密碼占位符"x"
root:x:0:0:root:/root:/bin/bash
字段1:用戶帳號的名稱
字段2:用戶密碼占位符"x"
字段3:用戶帳號的UID號
字段4:所屬基本組帳號的GID號
字段5:用戶全名
字段6:宿主目錄
字段7:登錄Shell 信息( /bin/bash為可登陸系統,/sbin/nologin和/bin/false為禁止用戶登陸系統)
這里需要使用cat命令查看 /etc/passwd中的內容
(二)、用戶賬號文件 /etc/shadow
1、保存用戶的密碼、賬號有效期等信息
文件位置: /etc/shadow
每一行對應一個用戶的密碼記錄
[root@localhost~]# head-2 /etc/shadow
[root@localhost-]# tail -1 /etc/shadow
2、用戶賬號文件 /etc/shadow
默認只有root用戶能夠讀取shadow文件中的內容,且不允許直接編輯該文件中的內容。
root: $6$VyOUGgOC$v5H1LM1wagZc/FwGfnrtJFn1T:18445:0:99999:7:::
字段1:用戶帳號的名稱
字段2:使用MD5加密的密碼字串信息,當為"*"或"! "時表示此用戶不能登錄到系統。若該字段內容為空,則該用戶無須密碼即可登錄系統
字段3:上次修改密碼的時間,表示從1970年01月01日算起到最近一次修改密碼時間隔的天數
字段4:密碼的最短有效天數, 自本次修改密碼后,必須至少經過該天數才能再次修改密碼。默認值為0,表示不進行限制
字段5:密碼的最長有效天數, 自本次修改密碼后,經過該天數以后必須再次修改密碼。默認值為99999,表示不進行限制
字段6:提前多少天警告用戶密碼將過期,默認值為7
字段7:在密碼過期之后多少天禁用此用戶
字段8:帳號失效時間,此字段指定了用戶作廢的天數(從1970年01月01日起計算) ,默認值為空,表示賬號永久可用。
字段9:保留字段(未使用)
3、使用cat 查看/etc/shadow,默認只有root用戶才能讀取該文件中的內容,且不允許直接編輯該文件中的內容。
如果在環境生產中程序升級程序失敗,出現賬號已過期的報錯,可以將賬號設置為永不過期,即將第五個字段更改為99999,表示不進行限制,即可。
cd /etc之后使用 ll 查看列表,發現shadow的權限是非常高的,不能進行讀取編輯與執行。
(三)、添加用戶賬號 useradd
1、useradd命令
useradd 選項 用戶名
2、常用選項
-u、 -d、 -e、 -g、 -G、 -M、-s
[root@localhost~]#useradd -d /ftphome/mike -g mike -G ftpuser -s /sbin/nologin mike
3、添加用戶賬號useradd或者adduser
在 /etc/passwd文件和 /etc/shadow文件的末尾增加該用戶賬號的記錄。
若未明確指定用戶的宿主目錄,則在 /home目錄下自動創建與該用戶賬號同名的宿主目錄,并在該目錄中建立用戶的各種初始配置文件。
若沒有明確指定用戶所屬的組,則自動創建與該用戶賬號同名的基本組賬號,組賬號的記錄信息將保存到 /etc/group和 /etc/gshadow文件中。
4、常用選項:
-u:指定用戶的UID號,要求該UID號碼未被其他用戶使用。
-d:指定用戶的宿主目錄位置(當與-M一起使用時,不生效)。只能用絕對路徑指定目錄。
-e:指定用戶的賬戶失效時間,可使用 YYYY-MM-DD 的日期格式。
-g:指定用戶的基本組名(或使用 GID 號) ,對應的組名必須已存在。
-G:指定用戶的附加組名(或使用 GID 號) ,對應的組名必須已存在。
-M:不建立宿主目錄。
-s:指定用戶的登錄
Shell,(比如/bin/bash為可登陸系統, /sbin/nologin和/bin/false為禁止用戶登陸系統) 。
5、在使用 useradd或者adduser添加一個用戶的時候,是不能進行任何操作的,因為沒有將這個用戶進行激活。只有給這個用戶配置一個密碼之后才能被激活,然后才能進行操作。
6、使用useradd添加一個叫“lisi”的用戶,然后使用cat /etc/passwd命令查看,發現lisi用戶添加成功。
7、使用 -d 指定一個目錄,使用-g 指定基本組lisi,使用-G 指定附加組zhangsan ,使用-u 指定用戶UID號(注意UID號不能重復,需要唯一),最后admin5 是創建的新的用戶名
(四)、設置/更改用戶口令passwd
1、passwd命令
passwd 選項 用戶名
2、常用選項:
-d、-l、S、-u
-d:清空指定用戶的密碼,僅使用用戶名即可登錄系統。
-l:鎖定用戶賬戶,鎖定的用戶賬號將無法再登錄系統。
-S:查看用戶賬戶的狀態(是否被鎖定)
-u:解鎖用戶賬戶。
不指定用戶名時,修改當前賬號的密碼。
3、為用戶賬號設置密碼 passwd
root用戶可以指定用戶名作為參數,對指定賬號的密碼進行管理;不指定用戶名時,修改當前賬號的密碼。普通用戶卻只能執行單獨的"passwd"命令修改自己的密碼。
4、設置用戶密碼方法二: echo “密碼” | passwd --stdin 用戶名
5、為之前創建的lisi用戶設置一個密碼。然后就可以在相應的虛擬中用密碼登陸lisi用戶的賬號了。
使用-d 命令清除 lisi 用戶的密碼:
使用其他幾個選項進行實驗:
(五)、修改用戶賬號的屬性 usermod
1、usermod命令
usermode 選項 用戶名
2、常用選項
-l、-L、-U
3、以下選項與useradd命令中的含義相同
-U、-d、-e、-g、-G、-s
4、修改用戶賬號屬性usermod
-u:修改用戶的UID號
-d:修改用戶的宿主目錄位置。
-e:修改用戶的賬戶失效時間,可使用YYYY-MM-DD的日期格式。
-g:修改用戶的基本組名(或使用GID號)
-G:修改用戶的附加組名(或使用GID號)
-s:指定用戶的登錄Shell。
-l:更改用戶賬號的登錄名稱
-L:鎖定用戶賬戶
-U:解鎖用戶賬戶
5、使用 -l 命令將 lisi 用戶名更改為 wangwu,此時用戶名更改后,原來lisi 的UID和GID不會改變
(六)、刪除用戶賬號userdel
1、userdel 命令
userdel -r 用戶名
#添加 -r 選項時,表示連用戶的宿主目錄一并刪除
(七)、用戶賬號的初始配置文件
1、文件來源
1)useradd 命令添加一個新的用戶賬號后在該用戶的宿主目錄中建立一些初始配置文件。這些文件來自于賬號模板目錄/etc/skell,基本上都是隱藏文件。
2) 主要的用戶初始配置文件
~/.bash_profile
~/.bashrc
~/.bash_logout
2、用戶宿主目錄下的初始配置文件只對當前用戶有效(即 lisi 的宿主目錄下的配置文件只對 lisi 有用)
~/.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文件被讀取
vim /etc/bashrc
alias myls=’/bin/ls -lhrt’
bash
type myls
PATH變量用于設置可執行程序的默認搜索路徑
PATH生效的原理:
每次啟動系統的時候會初始化命令,會執行 /etc/profile 和 ~/.bash_profile 。 /etc/profile會將路徑 /usr/local/bin、/usr/bin、 /usr/local/sbin、/usr/sbin追加到PATH中去。然后調用 /etc/profile.d 目錄下的腳本。
三、組賬號文件
(一)、與用戶帳號文件相類似
/etc/group:保存組帳號基本信息
/etc/gshadow:保存組帳號的密碼信息
組賬號文件:
grep "postfix" /etc/group
mail:x:12:postfix
postfix:x:89:
字段1:組帳號的名稱
字段2:占位符"x"
字段3:組賬號的GID
字段4:組賬號包含的用戶成員(一般不包括基本組對應的用戶帳號) ,多個成員之間以逗號","分隔
當需要查詢的組作為基本組的時候不顯示它的基本組的成員,只會顯示作為附加組的成員。
(二)、添加組賬號 groupadd
1、groupadd 命令
groupadd [-g GID] 組賬號名
2、示例
groupadd -g 1000 market #添加組賬號market ,-g:指定GID號
tail -1 /etc/group
market:x:1000:
3、添加組賬號groupadd
-g:指定GID號
(三)、添加刪除組成員 gpasswd
1、gpasswd命令
設置組帳號密碼(極少用)、添加刪除組成員
gpasswd 選項 組賬號名
2、常用選項
-a:向組內添加一個用戶
-d:從組內刪除一個用戶成員
-M:定義組成員列表,以逗號分隔
刪除 admin5 的時候要加上它相應的組名zhangsan :
使用 -M命令進行組成員的覆蓋
(四)、刪除組賬號 groupdel
1、groupdel命令
groupdel 組賬號名
2、示例
groupdel market #刪除組賬號market
grep "market" /etc/group
四、查詢賬號信息
(一)、groups 命令
查詢用戶所屬的組
groups 用戶名
查詢用戶身份標識
id 用戶名
使用groups查詢組賬號信息(需要時可以加上grep進行篩選):
使用 id 查詢組信息:
(二)、finger 命令
1、 查詢用戶賬號的登錄屬性
注:需要先進行安裝finger軟件包(yum install -y finger 安裝finger軟件包)
finger 用戶名
安裝 finger 軟件包:
(三)、w、who、 users 命令
查詢已登錄到主機的用戶信息
補充:通常使用tty來簡稱各種類型的終端設備,,Centos7系統, tty1表示圖形界面,,tty2-tty6表示文字界面,可以用ctrl+Alt+F1-F6切換。
按Ctrl+Alt+F2登陸,執行w命令,查看使用的終端就是tty2
pts說明是用遠程工具連接的,比如xshell,后面的數字代表登錄的時間順序,越小證明登錄的越早
五、文件目錄的權限和歸屬
(一)、訪問權限
讀取r:允許查看文件內容、顯示目錄列表
寫入w:允許修改文件內容,允許在目錄中新建、移動、刪除文件或子目錄
可執行x:允許運行程序、切換目錄
| 讀 | 寫 | 執行 | |
|---|---|---|---|
| r | w | x | - |
| 4 | 2 | 1 | 0 |
(s) setuid:該位是讓普通用戶可以以root用戶的角色運行只有root帳號才能運行的程序或命令
(二)、歸屬(所有權)
1、屬主:擁有該文件或目錄的用戶帳號
2、屬組:擁有該文件或目錄的組帳號
(三)、查看文件/目錄的權限和歸屬
ls -l install.log
-rw-r--r-- 1 root root 34298 04-02 00:23 install.log # -rw-r--r-- :文件類型、權限 root root 屬主、屬組
(四)、設置文件和目錄的歸屬chown
1、chown命令
chown 屬主 文件或目錄
chown :屬組 文件或目錄
chown 屬主:屬組 文件或目錄
2、常用選項
-R:遞歸修改指定目錄下所有文件、子目錄的歸屬
3、舉例:修改wangwu 的屬主為 gcc
(五)、設置文件或目錄權限chmod
1、chmod [ugoa...] [+-=] [rwx] 文件或目錄
"ugoa"表示該權限設置所針對的用戶類別。"u"代表文件屬主,"g"代表文件屬組內的用戶, "o"代表其他任何用戶,,"a"代表所有用戶(缺省時為a)。"+-="表示設置權限的操作動作。“+"代表增加相應權限,"-"代表減少相應權限, "="代表僅設置對應的權限。"rwx"是權限的字符組合形式,也可以拆分使用,如""rx"等。
2、chmod nnn 文件或目錄
-R:遞歸修改指定目錄下所有子目錄及文件的權限
3、示例(將wangwu 的權限更改為最高權限,及+777)
(六)、設置目錄和文件的默認權限 umask
1、umask作用:
指定目前用戶在新建文件或目錄時的權限默認值
新建的文件或者目錄的權限為默認最大權限減去umake (普通文件的最大默認權限為6, 目錄的最大默認權限為7)
2、umask設置::umask 022
3、umask查看: umask
4、示例
將umask000,新建目錄或者文件,查看權限
將umask設為022,新建目錄或者文件,再查看權限
總結
以上是生活随笔為你收集整理的Linux账号和权限管理 一看就会的那些知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微功率(短距离)无线电设备的技术要求
- 下一篇: AtCoder3950 [AGC022E