一、用戶賬號和組賬號概述
Linux基於用戶身份對資源訪問進行控制
1.1、用戶賬號
超級用戶:root 用戶是 Linux 操作系統中默認的超級用戶賬號,對本主機擁有最高的權限。系統中超級用戶是唯一的。
普通用戶:由root用戶或其他管理員用戶創建,擁有的權限會受到限制,一般只在用戶自己的宿主目錄中擁有完整權限。
程序用戶∶在安裝Linux操作系統及部分應用程序時,會添加一些特定的低權限用戶賬號,這些用戶一般不允許登錄到系統,僅用於維持系統或某個程序的正常運行,如 bin、daemon、ftp、mail 等。
1.2、組賬號
基本組 (私有組)∶基本組賬號只有一個,一般為創建用戶時指定的組。在/etc/passwd文件中第4字段記錄的即為該用戶的基本組 GID 號。
附加組 (公共組)∶ 用戶除了基本組以外,額外添加指定的組。
可以理解為基本組在創建系統時用戶自帶的組,附加組為用戶自己加入的組。
UID∶ 用戶標識號
GID∶ 組標識號
root 用戶賬號的 UID和GID 號為固定值 0
程序用戶賬號的 UID和GID 號默認為 Centos5,6∶ 1~499,Centos7∶1~999
普通用戶的 UID和GID 號默認為 Centos5,6∶ 500~60000,Centos7∶ 1000~60000
二、用戶賬號設置操作
2.1、用戶賬號文件/etc/passwd
保存用戶名稱、宿主目錄、登錄Shell等基本信息
文件位置在/etc/passwd中,每一行對應一個用戶的賬號記錄,多項操作命令都可進行查看,我們以vim /etc/passwd為例
字段分析:
字段一(root):用戶賬號的名稱
字段二(x):用戶密碼占位符“x”
字段三(0):用戶賬號的UID號
字段四(0):所屬基本組賬號的GID號
字段五(root):用戶全名
字段六(/root):宿主目錄(家目錄)
字段七(/bin/bash):登錄shell信息(/bin/bash為可登錄系統,/sbin/nologin和/bin/false為禁止用戶登錄系統)
2.2、用戶賬號文件/etc/shadow
保存用戶的密碼、賬號有效期等信息
文件位置在/etc/shadow,每一行對應一個用戶的密碼記錄,多項操作命令都可進行查看,我們以vim /etc/shadow為例
字段分析:
字段一(root):用戶帳號的名稱
字段二(密碼):使用MD5加密的密碼字串信息,當為"*"或"!!"時表示此用戶不能登錄到系統。若該字段內容為空,則該用戶無須密碼即可登錄系統
字段三:上次修改密碼的時間,表示從1970年01月01日算起到最近一次修改密碼時間隔的天數
字段四(0):密碼的最短有效天數,自本次修改密碼后,必須至少經過該天數才能再次修改密碼。默認值為0,表示不進行限制
字段五(99999):密碼的最長有效天數,自本次修改密碼后,經過該天數以后必須再次修改密碼。默認值為99999,表示不進行限制
字段六(7):提前多少天警告用戶密碼將過期,默認值為7
字段七:在密碼過期之后多少天禁用此用戶
字段八:帳號失效時間,此字段指定了用戶作廢的天數(從1970年01月01日起計算),默認值為空,表示賬號永久可用
字段九:保留字段(未使用)
2.3、添加用戶賬號
添加用戶賬號 useradd 或者 adduser,在/etc/passwd 文件和/etc/shadow 文件的末尾增加該用戶賬號的記錄。
若未明確指定用戶的宿主目錄,則在/home目錄下自動創建與該用戶賬號同名的宿主目錄,並在該目錄中建立用戶的各種初始配置文件。若沒有明確指定用戶所屬的組,則自動創建與該用戶賬號同名的基本組賬號,組賬號的記錄信息將保存到/etc/qroup 和/etc/qshadow文件中。
例如我想創建一個名稱為abc,UID號為3000,基本組GID號為1000,失效時間在今年年底,且可以登錄系統的賬戶
操作命令應該為:useradd -d /home/abc -u 3000 -g 1000 -e 2021-12-31 -s /bin/bash abc
注:此時還不能登入操作系統,還需配置密碼才可
2.4、設置/更改用戶口令passwd
root用戶可以指定用戶名作為參數,對指定賬號的密碼進行管理;不指定用戶名時,修改當前賬號的密碼。普通用戶卻只能執行單獨的"passwd"命令修改自己的密碼。
例如上面創建的abc用戶,如果進行passwd—l操作就會鎖定賬戶,登錄界面就不會顯現
2.5、修改用戶賬號的屬性usermod
-u -d -e -g -G -s選項意義和useradd選項意義相同
-U與passwd-u意義相同
-L與passwd-l意義相同
例如將abc用戶登錄名改為123,操作命令應該是:usermod -l 123 abc
2.6、刪除用戶賬號userdel
userdel +用戶名 只刪除用戶名
userdel -r +用戶名 表示連用戶的宿主目錄一起刪除
2.7、用戶賬號的初始配置文件
useradd命令添加一個新的用戶賬號后會在該用戶的宿主目錄中建立一些初始配置文件,一般為隱藏文件
這些文件來自於賬號模板目錄/etc/skel/,基本上都是隱藏文件
主要的用戶初始配置文件有:~/.bash-profile ~/.bashrc ~/.bash-plogout
用戶宿主目錄下的初始配置文件 只對當前用戶有效
~/.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文件被讀取
當有些配置想在每個bash環境中都執行,可以寫進/etc/bashrc中,或者寫進 ~/.bash profile中,不過需要加上export來使它每次啟動都生效
三、組賬號文件
與用戶賬號文件相類似
/etc/group:保存組賬號基本信息
/etc/gshdow:保存組賬號的密碼信息
字段分析:
字段一(root):組賬號的名稱
字段二(x):占位符“x”
字段三(0):組賬號的GID號
字段四:組賬號包含的用戶成員(一般不包括基本組對應的用戶賬號,包含的是附加組成員),多個成員之間用逗號分割
3.1、添加組賬號groupadd
goupadd [-g GID] 組賬號名
例如添加一個GID號為1234,名字為111的組賬號:groupadd -g 1234 111
3.2、添加刪除組成員
gpasswd命令:設置組賬號密碼(極少用)、添加/刪除組成員
例如將abc用戶添加到111組內:gpasswd -a abc 111
3.3、刪除組賬號groupdel
操作命令:groupdel 組賬號名
四、文件/目錄的權限和歸屬
4.1、查詢賬號信息
查詢用戶所屬組:groups 【用戶名】
查詢用戶身份標識:id 【用戶名】
查詢用戶賬號的登錄信息:finger 【用戶名】(注:需要先安裝finger軟件包)
查詢已登錄到主機用戶信息:w、who、users命令
此命令還可以查詢到cpu的負載情況等
4.2、文件/目錄的權限和歸屬
訪問權限
讀取r:允許查看文件內容、顯示目錄列表
寫入w:允許修改文件內容,允許在目錄中新建、移動、刪除文件或子目錄
可執行x:允許運行程序、切換目錄
歸屬(所有權)
屬主:擁有改文件或目錄的用戶賬號
屬組:擁有改文件或目錄的組賬號
注:文件默認權限是沒有x的,即文件的最大默認權限為666(-rw-rw-rw)
目錄默認有x權限,故目錄的最大默認權限為777(drwxrwxrwx)
這里的數值都是8進制數值
4.3、設置文件和目錄的默認權限umask
umask作用
控制新建的文件或目錄的權限
默認權限去除umask的權限為新建的文件或目錄的權限(默認權限666或777-umask值=新建文件或目錄的權限)
可以通過umask操作命令來查看或修改umask值,默認值為022
小實驗:設置umask值為111,創建名稱000的txt文件,查看其權限
根據默認權限666相減可得新建的文件權限為555,因文件默認沒有x權限,所以遇到單數111,333,555需向前進一位變成222,444,666
4.4、設置文件和目錄的權限chmod
chmod命令:chmod 【ugoa】 【+-=】 【rwx】 文件或目錄
u代表屬主、g代表屬組、o代表其他用戶、a代表所有用戶
+代表增加、-代表去除、=代表設置權限
r代表讀、w代表寫、x代表運行權限
或者是 chmod nnn 文件或目錄
nnn代表三個權限的八進制
常用選項-R:遞歸修改指定目錄下所有子項的權限
4.5、設置文件和目錄的歸屬chown
chown命令
修改屬主:chown 屬主 文件或目錄
修改屬組:chown :屬組 文件或目錄
修改屬主和屬組:chown 屬主:屬組 文件或目錄
常用選項-R:遞歸修改指定目錄下所有文件、子目錄的歸屬
例如將123.txt文件的屬主和屬組改為abc和111
chown abc:111 123.txt