1. 程式人生 > 其它 >賬號和許可權管理

賬號和許可權管理

賬號和許可權管理

一.管理使用者賬號和組賬號

二.管理目錄和檔案的屬性

三.總結

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

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

使用者賬號: 超級使用者 普通使用者 程式使用者

超級使用者:root使用者是Linux作業系統中預設的超級使用者賬號,對本主機擁有至高無上的許可權,類似於windows作業系統中的administrator使用者。只有當進行系統管理.維護任務時,才建議使用root使用者登入系統,日常事務處理建議只是用普通使用者賬號。Root擁有對系統的最高的管理許可權ID=0。

普通使用者:普通使用者賬號需要由root使用者或其他管理源使用者建立,擁有的許可權受到一定限制,一般只在使用者自己的宿主目錄中擁有完整許可權。

系統使用者UID:1-999(centos7 版本)1-499(centos6 版本)

UID:即每個使用者的身份標示,類似於每個人的身份證號碼。

程式使用者:在安裝Linux作業系統及部分應用程式應用程式時,會新增一些特定的低許可權使用者賬號,這些使用者一般不允許登入到系統,而僅用於維持系統或某個程式的正常執行,如bin.daemon.ftp.mail等,偽使用者一般不會用來登入系統的,他主要時用於維持某個服務的正常執行.如:ftp.apache

組賬號:基本組(私有組) 附加組(共有組)

基本組:基於某種特定聯絡(如都需要訪問FTP服務)將多個使用者集合在一起,即構成一個使用者組,表示該組內所有使用者的賬號稱為組賬號。每一個使用者賬號至少屬於一個組,這個組稱為該使用者基本組(或私有組)。

附加組:若該組使用者同時還包含其他的組中,則這些組稱為該使用者的附加組(或公共組)。

UID和GID

UID(User IDentity,使用者標識號)

GID(Group IDentify,組標識號)

UID:即每個使用者的身份標示,類似於每個人的身份證號碼.

管理員組:root,o

普通組:GID

系統組:1-499(centos6),1-999(centos7)

普通組:500+(centos6),1000+(centos7)

表示該賬號需要密碼才能登入,為空時,賬戶無須密碼即可登入

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

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

檔案位置:/etc/passwd

每一行對應一個使用者的賬號記錄

儲存使用者的密碼.賬號有效期等資訊

檔案位置:/etc/shadow

每一行對應一個使用者的密碼記錄

3.passwd 檔案賬號記錄詳細說明

root:x:0:0:root:/root:/bin/bash

詳細如下:

root:使用者名稱,使用者名稱僅是為了方便使用者記憶。Linux系統是通過UID來識別使用者身份,分配使用者許可權。

X:表示此使用者設有密碼,但不是真正的密碼,真正的密碼儲存在/etc/shadow檔案

Linux系統把真正的加密密碼串放置在/etc/shadow檔案中,此檔案只有root使用者可以瀏覽和操作,最大限度地保證了密碼的安全。

補充:

注意! ! !,雖然”X”並不表示真正的密碼,但也不能刪除,如果刪除了“X”,那麼系統會認為這個使用者沒有密碼,從而導致只輸入使用者名稱而不用輸入密碼就可以登陸(只能在使用五密碼登入,遠端是不可以)。

0:使用者賬號的UID號。

0:所屬基本組賬號的GID號

root:描述性資訊,此欄位只是用來解釋這個使用者的意義而已

/root:宿主目錄,即該使用者登入後所在的預設工作目錄

注:通常稱為使用者的主目錄。例如:root主目錄為/root。普通使用者odysee的主目錄為/home/odysee/bin/bash錄shell等資訊,使用者完成登陸後使用的

4.儲存使用者的密碼.賬號有效期等資訊

檔案位置:/etc/shadow (影子檔案)

每一行對應一個使用者的密碼記錄

/etc/shadow 檔案只有root

使用者擁有讀許可權,其他使用者沒有任何許可權,這樣就保證了使用者密碼的安全性

和/etc/passwd檔案一樣,檔案中每行代表一個使用者,同樣使用“:”

作為分隔符,不同之處在於,每行使用者資訊被劃分為9個欄位

第一列:賬戶名

第二列:存放真正加密的密碼,採用SHA512雜湊演算法,更加安全 加密原來用MD5或DES!!和*表示沒有密碼不能登入,新建立使用者也是!!,如果密碼前面顯示雙感嘆號表示該賬戶被鎖定了。

第三列:上一次修改密碼的時間,從1970年7月1日開始算的,因為1970年是linux的誕生日,date --d “1970-01-01 18983 days”可以檢視哪一天改過

第四列:多久之後才可以修改密碼,如果是0,則密碼可以隨時修改。最小修改間隔時間,也就是說該欄位規定了從第三個欄位(最後一次修改密碼的日期)起,多長時間之內不能修改密碼,如果是0則隨時修改密碼,如果是10,則代表密碼修改後10天之內不能再次修改密碼,此欄位是為了針對某些人頻繁更改賬號密碼而設計的。

第五列:密碼有效期,預設99999(273年),表示永久生效。

第六列:密碼到期前的第幾天發出告警資訊,預設是7天,每次登入系統都會向該賬戶發出“修改密碼”的警告資訊。

第七段:密碼過期的寬限天數,過期後幾天還是可以登陸的,如果過了寬限天數,系統將不再讓此賬戶登入,也不會提示賬戶過期,是完全禁用

比如說,此欄位規定的寬限天數是10,則代表密碼過期10天后失效:如果是0則代表密碼過期後立即失效;如果是-1則代表密碼永遠不會失效。

第八列:賬號失效時間,使用自1970年1月1日依賴的總天數作為賬戶的失效時間

第九列:保留,未使用。

5.Chage命令:用來修改賬號和密碼的有效期限,針對目前系統已經存在的使用者

Chage[選項]使用者名稱

命令

功能

-m

密碼可更改的最小天數。為零時代表任何時候都可以更改密碼

-M

密碼保持有效的最大天數。Chage -M 60 root

-w

使用者密碼到期前,提前收到警告資訊的天數

-E

賬號到期的日期。過了這天,此賬號將不可用

-d

上一次更改的日期

-i

停滯時期。如果一個密碼過期這些天,那麼此賬號將不可用

-l

列出當前的設定。由非特權使用者來確定他們的密碼或賬號何時過期

例:

Chage -E 2019-04-29 test 其中,test為使用者,使用者將在2019年4月29日失效(不可登入)

Chage -d 2019-06-30 test 設定test使用者最後一次修改密碼的日期為2019年6月30日

Chage -d 0 test 則代表該test使用者需立即修改密碼

Date -d “+45 days” -u 如果不知道時間可以用date檢視 -u:UTC時間

Chage -l root 檢視資訊

6.新增使用者賬號

Useradd 命令

Useradd[選項]……使用者名稱

常用選項

命令

功能

-u

指定使用者的UID號,要求該UID號碼未被其他使用者使用

-d

指定使用者的宿主目錄位置(當與-M一起使用時,不生效)

-e

指定使用者的賬戶失效時間,可使用YYYY-MM-DD的日期格式

-g

指定使用者的基本組名(或使用GID號)

-G

指定使用者的附加組名(或使用GID號)

-M

不建立宿主目錄,即使/etc/login.defs系統配置中已設定要建立宿主目錄

-s

指定使用者的登入shell(-s /sbin/nologin 使用者)

例:

useradd zhangsan

id zhagnsan

tail -1 /etc/passwd

tail -1 /etc/shadow

ls /home

建立一個輔助管理員賬號

admin,將其基本組指定為“wheel”,附加組指定為“root”,宿主目錄指定為“/admin”

useradd -d /admin -g wheel -G root admin

id admin

在賬號管理工作中,有時候會希望在新建賬號的同時指定該賬號的有效期限,或者要求新建的賬號不能登入系統(如僅用於訪問ftp服務),這時可以分別使用“-e”和“-s”選項。

例如,執行以下操作可以建立一個名 為lisi的ftp賬號(禁止中端登入),該賬號將於2021-12-31失效。useradd -e 2021-07-04 -s /sbin/nologin lisi

7.刪除使用者賬號userdel

Userdel命令

Userdel [-r] 使用者名稱

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

[root@localhost ~]# useradd stu01

[root@localhost ~]# ls -ld /homelstu01/

drwx------ 2 stu01 stu01 4096 09-09 12:38 /homelstu01/

[root@localhost ~]# userdel -r stu01 刪除使用者帳號stu01

[root@localhost ~]# ls -ld /homelstu01/

ls: /homelstu01/:沒有那個檔案或目錄

當用戶被刪除時卻顯示主目錄依然存在

[root@localhost ~]# useradd -u 1402 -g oinstall -G dba,asmdba oracle

useradd:警告:此主目錄已經存在。

不從 skel 目錄裡向其中複製任何檔案。

正在建立信箱檔案: 檔案已存在

解決:

[root@localhost ~]# userdel -rf grid

8.設定/更改使用者口令passwd

passwd命令

passwd [選項]... 使用者名稱

常用選項

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

-d:清空指定使用者的密碼,金使用使用者名稱即可登入系統

-l:鎖定使用者賬戶

-S:檢視使用者賬戶狀態(是否被鎖定)

-u:解鎖使用者賬戶

passwd -d zhang

passwd -l zhang

passwd -S zhang

passwd -u zhang

批量新增密碼

呼叫管道符,給zhangsan使用者設定密碼“123”,為了方便系統管理,passwd命令提供了 --stdin選項,用於批量給使用者設定初始密碼

echo “123” | passwd --stdin zhangsan

9.usermod命令修改使用者賬號的屬性

命令

功能

-l

更改使用者賬號的登入名稱(Login Name)

-L

鎖定使用者賬戶

-U

解鎖使用者賬戶

-u

修改使用者的UID

-d

修改使用者的宿主目錄位置

-e

修改使用者的賬戶失效時間,課使用YYYY-MM-DD的日期格式

-g

修改使用者的基本組名(或使用GID號)

-G

修改使用者的附加組名(或使用GID號)

-s

指定使用者的登陸shell

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

檔案來源

新建使用者賬戶時,從/etc/skel目錄中複製而來

主要的使用者初始配置檔案

~/.bash_profile

~/.bashrc

~/.bash_logout

新增一個新的使用者賬號後,useradd命令會在該使用者的宿主目錄中建立一些初始配置檔案。這些檔案來自於賬號模板目錄/etc/skel,幾倍呢上都是隱藏檔案,較常用的初始配置檔案包括“.bash_logout”、“.bash_profile”和".bashrc"。其中,“.bash_profile”檔案中的命令將在該使用者每次登入時被執行;“.bashrc”檔案中的命令會在每次載入“/bin/bash”程式(當然也包括登入系統)時執行;而“.bash_logout”檔案中的命令將在使用者每次退出登入時執行。理解這些檔案的作用,可以方便我們安排一些自動執行的後套管理任務。在“.bashrc”等檔案中,可以新增使用者自己的設定可執行語句(如linux命令列、指令碼控制語句等),以便自動完成相應的任務。

~/.bash_profile

示例程式碼中為使用者添加了2個環境變數(JAVA_HOME和CLASSPATH),並修改了已有環境變數PATH的值(PATH的查詢是從以前開始查詢,找到就返回)CLASSPATH環境變數的值實在JAVA執行時查詢載入類的預設CLASSPATH

.bashrc

例子中定義了路徑,語言,命令別名(使用rm刪除命令時總是加上-i引數需要使用者確認,使用ls命令列出檔案列表時加上顏色顯示)。每次修改.bashrc後,使用source ~/.bashrc(或者 . ~/ .bashrc)就可以立刻載入修改後的設定,使之生效。

一般會在.bash_profile檔案中顯示呼叫.bahsrc。登入linux啟動bash時首先會先去讀取~/ .bash_profile檔案,這樣~/ .bashrc也就得到執行了,你的個性化設定也就生效了

關於環境變數的讀取順序:

使用者登入 --> 載入~/ .bash_profile --> bash_profile中配置了首先時使~/ .bashrc生效

.bash_logout

用途:使用者登出時執行的命令

~/ .bash_logout

在當前使用者登出時,打印出Logout和當前的時間

echo "Logout,'data'"

例:

如果需要每個使用者登出時都清除輸入的命令歷史記錄,可以在/etc/skel/.bash_logout檔案中新增下面這行

rm -f $HOME/.bash_history

這樣,當用戶每次登出時,.bash_history檔案都會被刪除

組賬號檔案

與使用者賬號檔案相類似

/etc/group:儲存組賬號基本資訊

/etc/gshadow:儲存組賬號的密碼資訊

[root@localhost~]#grep"adm" /etc/group

sys:3:root,bin,adm

adm:x:4:root,adm,daemon

adm:組賬號名

daemon:組成員列表

與組賬號相關的配置檔案也有兩個,分別是/etc/group和/etc/gshadow。前者用於儲存組賬號名稱、GID號、組成員等基本資訊,後者用於儲存組賬號的加密密碼字串等資訊(但是很少使用到)。某一個組賬號包含哪些使用者成員,將會在group檔案內最後一個欄位中體現出來(基本組對應的使用者賬號預設可能不會列出),多個組成員之間使用“,”(逗號)分隔開。

grep "^root" /etc/group #//檢索root組包括那些使用者

grep "root" /etc/group #//檢索那些組包括root使用者

10.新增組賬號groupadd

groupadd命令

groupadd [-g GID] 組賬號名

示例

[root@localhost~]#groupadd -g 1000 market

[root@localhost~]#tail -1 /etc/group

market:x:1000:

11.刪除組賬號groupdel

groupdel命令

groupdel 組賬號名

示例:

[root@localhost~]#groupdel market #刪除組賬號market

[root@localhost~]#grep "market" /etc/gourp

查詢賬號資訊

finger命令

查詢使用者賬號的詳細資訊

finger [使用者名稱]

w、who、users命令

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

w、who、users #查詢已登入到主機的使用者資訊通常使用tty來簡稱各種型別的終端裝置,Centos7系統,tty1表示圖形介面,tty2-tty6表示文字介面,可以用Ctrl+Alt+F1-F6切換。

按ctrl+A1t+F2登陸,執行w命令,檢視使用的終端就是tty2

User:登入使用者名稱

TTY:登入後系統分配的終端號

From:遠端主機名,即從哪登入的login@:何時登入

IDLE:使用者空閒時間。這是個計時器,一旦使用者執行任何操作,改計時器就會被重置。

JCPU:和終端連線的所有程序佔用時間。包括當前正在執行的後臺作業佔用時間

PCPU:當前程序所佔用時間

WHAT:當前正在執行程序的命令列

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

12.設定/更改組gpasswd

gpasswd命令

設定組賬號密碼(極少用)、新增/刪除組成員

gpasswd [選項]... 組賬號名

常用選項

命令

功能

-a

新增使用者到組

-d

從組刪除使用者

-A

指定管理員

-M

指定組成員和-A的用途差不多

-r

刪除密碼

-R

限制使用者登入組,只有組中的成員才可以用newgrp加入組

例:

useradd mike

gpasswd -a mike root #確認mike使用者已加入root組

groups mike

二.管理目錄和檔案的屬性

1.檔案/目錄的許可權和歸屬

訪問許可權:

讀取r:允許檢視檔案內容、顯示i目錄列表

寫入w:允許修改檔案內容,允許在目錄中新建、移動刪除檔案或子目錄

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

歸屬(所有權)

屬主:擁有該檔案或目錄的使用者賬戶

屬組:擁有該檔案或目錄的組賬戶

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

[root@localhost~]#ls-l install.log

-rw-r--r-- 1 root root 34298 04-02 00:23 install.log

檔案型別、許可權 屬主 屬組

許可權項

執行

執行

執行

字元表示

r

w

x

r

w

x

r

w

x

數字表示

4

2

1

4

2

1

4

2

1

許可權分配

檔案所有者

檔案所屬組

其他使用者

root使用者、 root組

如"drwxr-xr-x”和"-rw-r--r--"。許可權欄位由四部分組成,各自的含義如下所述。

第1個字元:表示該檔案的型別,可以是 d(目錄)、b(塊裝置檔案)、c(字元裝置檔案)、"-”(普通檔案)、字母"l”(連結檔案)等。

第2~4個字元:表示該檔案的屬主使用者(User)對該檔案的訪問許可權。

第5~7個字元:表示該檔案的屬組內各成員使用者(Group)對該檔案的訪問許可權。

第8~10 個字元:表示其他任何使用者 (other)對該檔案的訪問許可權。

第11 個字元:這裡的"."與 SELinux有關,目前不必關注

2.設定檔案和目錄的許可權chmod

chmod命令

chmod [ugoa] [+ - =] [rwx] 檔案或目錄...

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

+ - =分別表示增加、去除、設定許可權

r、w、x分別表示讀、寫、執行許可權

chmod nnn 檔案或目錄...

nnn表示三位八進位制數

常用選項

-R:遞迴修改指定目錄下所有子項的許可權

上述格式中,字元組合"[ugoa...] [+-=] [rwx ]"或數字組合"nnn"的形式表示要設定的許可權模式。其中,"nnn"為需要設定的具體許可權值,如"755""644”等;而“[ugoa...] [+-=] [rwx]"的形式中,三個組成部分的含義及用法如下所述。

"ugoa"表示該許可權設定所針對的使用者類別。"u"代表檔案屬主,"g"代表檔案屬組內的使用者,"o"代表其他任何使用者,"a"代表所有使用者 (u、g、o 的總和)。

"+-="表示設定許可權的操作動作。"+"代表增加相應許可權,"-"代表減少相應許可權,"=”代表僅設定對應的許可權。

"rwx"是許可權的字元組合形式,也可以拆分使用,如"r""rx”等。

3.設定檔案和目錄的歸屬chown

chown命令

chown 屬主 檔案或目錄

chown :屬主 檔案或目錄

chown 屬主:屬主 檔案或目錄

常用選項

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

許可權掩碼umask

umask作用:

控制新建的檔案或者目錄的許可權

預設許可權去除umask的許可權為新建的檔案或者目錄的許可權

umask設定:umask 022

umask檢視:umask

示例

將umask設為000,新建目錄或者檔案,檢視許可權

將umask設為022,新建目錄或者檔案,再檢視許可權

[root@localhost ~] # umask 000

[root@localhost ~]# mkdir /umask1

[root@localhost ~]# ls -ld /umask1/

drwxrwxrwx 2 root root 4096 3 月13 17:02 /umask1/

[root@localhost ~] # umask 022

[root@localhost ~] # mkdir /umask2

[root@localhost ~]# ls -ld / umask2/

drwxr-xr-x 2 root root 40963月13 17:03 /umask2/

三.總結

1、使用者賬號管理:建立賬號,設定密碼,鎖定密碼,修改模式,鎖定賬號,解鎖賬號,修改登入方式,最後刪除使用者

2、組賬號管理:建立組賬號,新增使用者進入組賬號,新增組賬號,刪除組賬號

3、使用者賬號檔案與組賬號檔案:使用者賬號檔案和組賬號檔案放置位置passwd shadow grpup看看位置在哪 然後如何檢視

4、查詢賬號相關資訊的命令:檢視組賬號 檢視使用者 檢視使用者詳細資訊 檢視遠端使用者終端

5、設定目錄與檔案許可權:給使用者的每個目錄每個檔案修改其許可權 屬主/屬組

6、設定目錄與檔案歸屬:給整個檔案和目錄的歸屬 給他們一個大許可權 比如有些許可權只能張三使用者檢視 還有root賬戶可以檢視 root是最高許可權

1、2建立使用者和組並且對他們進行操作 3、4對前面的使用者和組的賬號進行檢視 5、6對前面的使用者和組進行一個許可權的修改