Linux賬號和許可權管理(理論配寫)

Gloom丿鬱發表於2020-11-25

一、使用者賬號和組賬號概述

1、Linux基於使用者身份對資源訪問進行控制

1、使用者帳號
超級使用者、普通使用者、程式使用者

2、組帳號
基本組(私有組)
附加組(公共組)

3、UID和GID
UID (User IDentity,使用者標識號)
GID (Group IDentify,組標識號)

2、使用者賬號

超級使用者: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

二、使用者賬號檔案

1、使用者賬號檔案 /etc/passwd

1、儲存使用者名稱稱、宿主目錄、登入Shell 等基本資訊
檔案位置:/etc/passwd
每一行對應一個使用者的帳號記錄
在這裡插入圖片描述

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中的內容

在這裡插入圖片描述

2、使用者賬號檔案 /etc/shadow

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的許可權是非常高的,不能進行讀取編輯與執行。

3、新增使用者賬號 useradd

1、useradd命令

useradd 【選項】...  使用者名稱

2、常用選項

-u、 -d、 -e、 -g、 -G、 -M、-s
host~

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 是建立的新的使用者名稱

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

4、設定/更改使用者口令passwd

1、passwd命令

passwd 【選項】...  使用者名稱

2、常用選項:

-d、-l、S、-u
-d:清空指定使用者的密碼,僅使用使用者名稱即可登入系統。
-l:鎖定使用者賬戶,鎖定的使用者賬號將無法再登入系統。
-S:檢視使用者賬戶的狀態(是否被鎖定)
-u:解鎖使用者賬戶。

不指定使用者名稱時,修改當前賬號的密碼

3、為使用者賬號設定密碼 passwd

root使用者可以指定使用者名稱作為引數,對指定賬號的密碼進行管理;不指定使用者名稱時,修改當前賬號的密碼。普通使用者卻只能執行單獨的"passwd"命令修改自己的密碼。

4、設定使用者密碼方法二:

echo “密碼” | passwd --stdin 使用者名稱

5、為之前建立的lisi使用者設定一個密碼。然後就可以在相應的虛擬中用密碼登陸lisi使用者的賬號了。

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

5、修改使用者賬號的屬性 usermod

1、usermod命令

usermod 【選項】...  使用者名稱

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 使用者名稱更改為zhengdeng,此時使用者名稱更改後,原來lisi 的UID和GID不會改變

usermod  -l  zhengdeng lisi

cat /etc/passwd

在這裡插入圖片描述

6、刪除使用者賬號userdel

1、userdel 命令

userdel 【-r】 使用者名稱

2、新增 -r 選項時,表示連使用者的宿主目錄一併刪除

在這裡插入圖片描述

7、使用者賬號的初始配置檔案

一、檔案來源**
1、useradd 命令新增一個新的使用者賬號後在該使用者的宿主目錄中建立一些初始配置檔案。這些檔案來自於賬號模板目錄/etc/skell,基本上都是隱藏檔案。

2、主要的使用者初始配置檔案
~/.bash_profile
~/.bashrc
~/.bash_logout

3、使用者宿主目錄下的初始配置檔案只對當前使用者有效(即 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 目錄下的指令碼。

三、組賬號檔案

1、與使用者帳號檔案相類似

/etc/group:儲存組帳號基本資訊
/etc/gshadow:儲存組帳號的密碼資訊
在這裡插入圖片描述

組賬號檔案:

grep "postfix"  /etc/group
mail:x:12:postfix
postfix:x:89:
欄位1:組帳號的名稱
欄位2:佔位符"x"
欄位3:組賬號的GID
欄位4:組賬號包含的使用者成員(一般不包括基本組對應的使用者帳號) ,多個成員之間以逗號","分隔

當需要查詢的組作為基本組的時候不顯示它的基本組的成員,只會顯示作為附加組的成員。
在這裡插入圖片描述

2、新增組賬號 groupadd

1、groupadd 命令

groupadd 【-g GID】 組賬號名

2、示例
在這裡插入圖片描述

3、新增組賬號groupadd
-g:指定GID號

3、新增刪除組成員 gpasswd

1、gpasswd命令
設定組帳號密碼(極少用)、新增刪除組成員

gpasswd 【選項】...  組賬號名

2、常用選項
-a:向組內新增一個使用者
-d:從組內刪除一個使用者成員
-M:定義組成員列表,以逗號分隔

刪除 admin5 的時候要加上它相應的組名zhangsan :
使用 -M命令進行組成員的覆蓋:
在這裡插入圖片描述

在這裡插入圖片描述

4、刪除組賬號 groupdel

1、groupdel命令

groupdel 組賬號名

2、示例

groupdel yumenge

grep “yumenge” /etc/group

四、查詢賬號資訊

1、groups 命令

查詢使用者所屬的組

groups 使用者名稱

查詢使用者身份標識

id 使用者名稱

使用groups查詢組賬號資訊(需要時可以加上grep進行篩選)
使用 id 查詢組資訊:
在這裡插入圖片描述

2、finger 命令

1、 查詢使用者賬號的登入屬性
注:需要先進行安裝finger軟體包(yum install -y finger 安裝finger軟體包)

finger 使用者名稱

安裝 finger 軟體包:
在這裡插入圖片描述

3、w、who、 users 命令

查詢已登入到主機的使用者資訊

補充:通常使用tty來簡稱各種型別的終端裝置,,Centos7系統, tty1表示圖形介面,,tty2-tty6表示文字介面,可以用ctrl+Alt+F1-F6切換。
按Ctrl+Alt+F2登陸,執行w命令,檢視使用的終端就是tty2

pts說明是用遠端工具連線的,比如xshell,後面的數字代表登入的時間順序,越小證明登入的越早

五、檔案目錄的許可權和歸屬

1、訪問許可權

讀取r:允許檢視檔案內容、顯示目錄列表
寫入w:允許修改檔案內容,允許在目錄中新建、移動、刪除檔案或子目錄
可執行x:允許執行程式、切換目錄

讀取寫入可執行
rwx-
4210

(s) setuid:該位是讓普通使用者可以以root使用者的角色執行只有root帳號才能執行的程式或命令

2、歸屬(所有權)

1、屬主:擁有該檔案或目錄的使用者帳號
2、屬組:擁有該檔案或目錄的組帳號

3、檢視檔案/目錄的許可權和歸屬

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

4、設定檔案和目錄的歸屬chown

1、chown命令

chown 屬主    檔案或目錄

chown :屬組   檔案或目錄

chown 屬主:屬組   檔案或目錄


2、常用選項

-R:遞迴修改指定目錄下所有檔案、子目錄的歸屬

3、舉例:修改lisi 的屬主為 yumenge

chown yumenge lisi/
在這裡插入圖片描述

5、設定檔案或目錄許可權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,新建目錄或者檔案,再檢視許可權

相關文章