天天看點

Linux中的賬号權限管理

一、使用者賬号群組賬号概述

Linux基于使用者身份對資源通路進行控制

超級使用者:root 使用者是 Linux 作業系統中預設的超級使用者賬号,對本主機擁有最高的權限。系統中超級使用者是唯一的。

普通使用者:由root使用者或其他管理者使用者建立,擁有的權限會受到限制,一般隻在使用者自己的宿主目錄中擁有完整權限。

程式使用者∶在安裝Linux作業系統及部分應用程式時,會添加一些特定的低權限使用者賬号,這些使用者一般不允許登入到系統,僅用于維持系統或某個程式的正常運作,如 bin、daemon、ftp、mail 等。

基本組 (私有組)∶基本組賬号隻有一個,一般為建立使用者時指定的組。在/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

二、使用者賬号設定操作

儲存使用者名稱、宿主目錄、登入Shell等基本資訊

檔案位置在/etc/passwd中,每一行對應一個使用者的賬号記錄,多項操作指令都可進行檢視,我們以vim /etc/passwd為例

字段分析:

Linux中的賬号權限管理

字段一(root):使用者賬号的名稱

字段二(x):使用者密碼占位符“x”

字段三(0):使用者賬号的UID号

字段四(0):所屬基本組賬号的GID号

字段五(root):使用者全名

字段六(/root):宿主目錄(家目錄)

字段七(/bin/bash):登入shell資訊(/bin/bash為可登入系統,/sbin/nologin和/bin/false為禁止使用者登入系統)

儲存使用者的密碼、賬号有效期等資訊

檔案位置在/etc/shadow,每一行對應一個使用者的密碼記錄,多項操作指令都可進行檢視,我們以vim /etc/shadow為例

Linux中的賬号權限管理

字段一(root):使用者帳号的名稱

字段二(密碼):使用MD5加密的密碼字串資訊,當為"*"或"!!"時表示此使用者不能登入到系統。若該字段内容為空,則該使用者無須密碼即可登入系統

字段三:上次修改密碼的時間,表示從1970年01月01日算起到最近一次修改密碼時間隔的天數

字段四(0):密碼的最短有效天數,自本次修改密碼後,必須至少經過該天數才能再次修改密碼。預設值為0,表示不進行限制

字段五(99999):密碼的最長有效天數,自本次修改密碼後,經過該天數以後必須再次修改密碼。預設值為99999,表示不進行限制

字段六(7):提前多少天警告使用者密碼将過期,預設值為7

字段七:在密碼過期之後多少天禁用此使用者

字段八:帳号失效時間,此字段指定了使用者廢棄的天數(從1970年01月01日起計算),預設值為空,表示賬号永久可用

字段九:保留字段(未使用)

添加使用者賬号 useradd 或者 adduser,在/etc/passwd 檔案和/etc/shadow 檔案的末尾增加該使用者賬号的記錄。

若未明确指定使用者的宿主目錄,則在/home目錄下自動建立與該使用者賬号同名的宿主目錄,并在該目錄中建立使用者的各種初始配置檔案。若沒有明确指定使用者所屬的組,則自動建立與該使用者賬号同名的基本組賬号,組賬号的記錄資訊将儲存到/etc/qroup 和/etc/qshadow檔案中。

Linux中的賬号權限管理

例如我想建立一個名稱為abc,UID号為3000,基本組GID号為1000,失效時間在今年年底,且可以登入系統的賬戶

操作指令應該為:useradd -d /home/abc -u 3000 -g 1000 -e 2021-12-31 -s /bin/bash abc

Linux中的賬号權限管理
Linux中的賬号權限管理

注:此時還不能登入作業系統,還需配置密碼才可

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

Linux中的賬号權限管理

例如上面建立的abc使用者,如果進行passwd—l操作就會鎖定賬戶,登入界面就不會顯現

Linux中的賬号權限管理

-u -d -e -g -G -s選項意義和useradd選項意義相同

-U與passwd-u意義相同

-L與passwd-l意義相同

例如将abc使用者登入名改為123,操作指令應該是:usermod -l 123 abc

userdel +使用者名 隻删除使用者名

userdel -r +使用者名 表示連使用者的宿主目錄一起删除

useradd指令添加一個新的使用者賬号後會在該使用者的宿主目錄中建立一些初始配置檔案,一般為隐藏檔案

這些檔案來自于賬号模闆目錄/etc/skel/,基本上都是隐藏檔案

主要的使用者初始配置檔案有:~/.bash-profile     ~/.bashrc      ~/.bash-plogout

使用者宿主目錄下的初始配置檔案 隻對目前使用者有效

Linux中的賬号權限管理

~/.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:儲存組賬号的密碼資訊

Linux中的賬号權限管理

字段一(root):組賬号的名稱

字段二(x):占位符“x”

字段三(0):組賬号的GID号

字段四:組賬号包含的使用者成員(一般不包括基本組對應的使用者賬号,包含的是附加組成員),多個成員之間用逗号分割

goupadd    [-g GID]     組賬号名

例如添加一個GID号為1234,名字為111的組賬号:groupadd -g 1234 111

gpasswd指令:設定組賬号密碼(極少用)、添加/删除組成員

Linux中的賬号權限管理

例如将abc使用者添加到111組内:gpasswd -a abc 111

Linux中的賬号權限管理

操作指令:groupdel   組賬号名

四、檔案/目錄的權限和歸屬

查詢使用者所屬組:groups 【使用者名】

查詢使用者身份辨別:id  【使用者名】

Linux中的賬号權限管理

查詢使用者賬号的登入資訊:finger  【使用者名】(注:需要先安裝finger軟體包)

Linux中的賬号權限管理

查詢已登入到主機使用者資訊:w、who、users指令

此指令還可以查詢到cpu的負載情況等

通路權限

讀取r:允許檢視檔案内容、顯示目錄清單

寫入w:允許修改檔案内容,允許在目錄中建立、移動、删除檔案或子目錄

可執行x:允許運作程式、切換目錄

歸屬(所有權)

屬主:擁有改檔案或目錄的使用者賬号

屬組:擁有改檔案或目錄的組賬号

Linux中的賬号權限管理

注:檔案預設權限是沒有x的,即檔案的最大預設權限為666(-rw-rw-rw)

目錄預設有x權限,故目錄的最大預設權限為777(drwxrwxrwx)

這裡的數值都是8進制數值

umask作用

控制建立的檔案或目錄的權限

預設權限去除umask的權限為建立的檔案或目錄的權限(預設權限666或777-umask值=建立檔案或目錄的權限)

可以通過umask操作指令來檢視或修改umask值,預設值為022

Linux中的賬号權限管理

小實驗:設定umask值為111,建立名稱000的txt檔案,檢視其權限

根據預設權限666相減可得建立的檔案權限為555,因檔案預設沒有x權限,是以遇到單數111,333,555需向前進一位變成222,444,666

Linux中的賬号權限管理

chmod指令:chmod   【ugoa】    【+-=】    【rwx】    檔案或目錄

u代表屬主、g代表屬組、o代表其他使用者、a代表所有使用者

+代表增加、-代表去除、=代表設定權限

r代表讀、w代表寫、x代表運作權限

或者是 chmod     nnn    檔案或目錄

nnn代表三個權限的八進制

常用選項-R:遞歸修改指定目錄下所有子項的權限

chown命mob604756f19185令

修改屬主:chown   屬主   檔案或目錄

修改屬組:chown   :屬組   檔案或目錄

修改屬主和屬組:chown   屬主:屬組   檔案或目錄

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

例如将123.txt檔案的屬主和屬組改為abc和111

Linux中的賬号權限管理

chown abc:111 123.txt

Linux中的賬号權限管理

繼續閱讀