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

賬號和許可權管理

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

1.概念:使用者:包含一個名和密碼,人在計算機中的體現方式,包含root、普通使用者、程式使用者;

   組:使用者的集合,批量管理使用者群許可權,包含基本組、附加組(一個使用者只能屬於一個基本組,但是可以屬於多個附加組);

   許可權:限制使用者訪問資源(檔案、app、程序、硬體等);

   UID:每個使用者賬號都有一個數字標識(身份證),root(0)、普通使用者(500-60000)、程式使用者(1-499);

   GID:每個組賬號的唯一身份標識;root(0)、普通組賬號(500-60000)、程式組賬號(1-499);

2.使用者和組的檔案;

  /etc/passwd ##賬號檔案

  /etc/shadow ##密碼檔案

  /etc/group ##組賬號檔案

  /etc/gshadow ##組密碼檔案,很少使用

3.使用者賬號檔案格式:/etc/passwd

     使用者名稱:密碼佔位符:UID:GID:全名:家目錄:登陸shell直譯器

密碼佔位符:可能是以密文的字串代表或者X密碼佔位符;

登陸shell直譯器:使用者預設的的直譯器,預設情況使用者使用/bin/bash作為shell,若修改為/sbin/nologin(禁止登陸),

4.使用者密碼檔案格式;/etc/shadow

  使用者名稱:MD5加密的密碼字串資訊:上次修改密碼到現在的時間:密碼最短有效天數:密碼最長有效天數:提前幾天警 告使用者密碼將要過期:在密碼過期多少天后禁用賬戶:賬號失效時間(預設為空,表示永久);保留欄位

密碼字串資訊:

  !!:未初始化密碼,新建使用者的預設狀態

  密碼字串:修改密碼後的狀態

  !!加密字串或*加密字串:密碼被鎖定,不能登陸

  空:登陸不需要密碼,只能本地登入(無需密碼)

5.組賬號檔案:/etc/group

  組名:密碼佔位符:GID:成員列表

二、使用者及組賬號的管理;

1.使用者的管理:

  增:useradd 選項 使用者名稱

   選項:-d ##指定家目錄 -M   ##不指定家目錄

  -s ##指定使用者的登陸shell

  -g   ##指定使用者的基本組

  -G   ##指定使用者的附加組(可指定GID)

  刪:userdel -r 使用者名稱

刪除使用者的同時也將家目錄一併刪除

  改:usermod 選項 使用者名稱

 選項:包含建立使用者的所有選項

    passwd 使用者名稱 ##為使用者設定密碼

 passwd 選項 使用者名稱

  選項:-d ##清空使用者的密碼(不用密碼登入)

   -l ##鎖定使用者

   -u ##解鎖使用者

   -S ##檢視使用者鎖定狀態

 chsh -s 直譯器目錄 使用者名稱 ##更改使用者的shell直譯器

  查:

 grep 使用者名稱 /etc/passwd ##檢視賬號資訊

 id 使用者名稱 ##顯示使用者UID和所屬組

 w ##檢視當前主機的登陸情況

2.組的管理:

  增:groupadd 組名

選項-g可指定GID;

  刪:groupdel 組名

  改:gpasswd 選項 使用者名稱 組名

選項:-a ##將單個使用者新增到某個組

 -M  ##將多個使用者新增到某個組,使用者之間用逗號隔開

 -d  ##將某個使用者在某個組中刪除

  查:

groups 使用者名稱 ##檢視使用者屬於哪個組

grep 組名 /etc/group ##檢視組資訊

三、管理目錄及檔案的屬性;

1.概念:

  訪問許可權:讀取(r)、寫入(w)、執行(x)

  歸屬:屬主:擁有該檔案的使用者

   屬組:擁有該檔案的組賬號

2.檢視檔案或目錄的屬性:

  ls -ld 目錄或檔案位置

  格式:檔案型別、許可權、inode數量、屬主、屬組、大小、日期、檔名

  許可權列表:

第一個字元:檔案型別,d目錄、b塊裝置檔案、c字元裝置檔案、l連結檔案、-普通檔案;

第2-4個字元:屬主對檔案的許可權;

第5-7個字元:屬組對檔案的許可權;

第8-10個字元:任何使用者對檔案的許可權;

  許可權的表示:

r:讀取,檢視內容,也可以用4表示;

w:寫入,寫入(刪除、更改、移動等)內容,也可用2表示;

x:執行,執行此檔案或cd到此目錄,也可用1表示;

  3.設定檔案或目錄的許可權;

語法:chmod [ugoa] [+-=] [rwx] 檔案或目錄

舉例:chmod g-x, o-r 檔案或目錄

選項:-R 表示遞迴許可權,目錄下的子目錄子檔案繼承父級目錄的許可權;

語法:chmod 775 檔案或目錄

.4.設定目錄或檔案的歸屬;

語法:chown 屬主 檔案或目錄 ##設定其屬主

 chown :屬組 檔案或目錄 ##設定其屬組

 chown 屬主:屬組 檔案或目錄 ##設定其屬主和屬組

注:選項-R 遞迴可將其子目錄子檔案繼承父級目錄的歸屬;

四、擴充套件:

1.umask檔案反許可權:

  umask ##檢視系統的預設許可權反掩碼值,檔案最大許可權為666,目錄最大許可權為777

  umask ### ##手動更改檔案許可權的反掩碼值,更改後建立檔案或目錄驗證反掩碼值

2.chattr鎖定檔案:

  chattr +i 檔案路徑 ##鎖定檔案,不得移動刪除等

  chattr -i 檔案路徑 ##解鎖檔案

3.特殊許可權之setuid 許可權和 setgid 許可權;

 語法:  chmod u+s 檔案或目錄位置  # 設定setuid許可權

chmod g+s 檔案或目錄位置  # 設定setgid許可權

  /etc/passwd的許可權為 -rw-r--r--。也就是說:該檔案的所有者擁有讀寫的許可權,而使用者組成員和其它成員只有檢視的許可權。我們知道,在系統中我們要修改一個使用者的密碼,root使用者和普通使用者均可以用“/usr/bin/passwd 使用者名稱” 這個命令來修改這個/etc/passwd這個檔案,root使用者本身擁有對/etc/passwd的寫許可權,可以理解;那普通使用者沒有寫許可權,那他怎麼也能修改呢?這裡就用到了setuid,setuid的作用是讓執行該命令的使用者以該命令擁有者的許可權去執行,就是普通使用者執行passwd時會擁有root的許可權,這樣就可以修改/etc/passwd這個檔案了。它的標誌為:s,會出現在x的地方,例:-rwsr-xr-x  。而setgid的意思和它是一樣的,即讓執行檔案的使用者以該檔案所屬組的許可權去執行。

4.特殊許可權之stick bit(粘滯位)許可權;

 語法:  chmod o+t xxx #設定stick bit許可權,針對目錄

  我們知道/tmp是系統的臨時檔案目錄,所有的使用者在該目錄下擁有所有的許可權,也就是說在該目錄下可以任意建立、修改、刪除檔案,那如果使用者A在該目錄下建立了一個檔案,使用者B將該檔案刪除了,這種情況我們是不能允許的。為了達到該目的,就出現了stick  bit(粘滯位)的概念。它是針對目錄來說的,如果該目錄設定了stick  bit(粘滯位),則該目錄下的檔案除了該檔案的建立者和root使用者可以刪除和修改/tmp目錄下的stuff,別的使用者均不能動別人的,這就是粘滯位的作用。

5.特殊許可權之facl(檔案的訪問控制列表)的設定;

  在不改變檔案或目錄的歸屬的情況下,使除屬主屬組外的使用者對檔案或目錄有許可權。

  語法:setfacl -m u:使用者名稱:rwx 檔案或目錄

 setfacl -d -m u:使用者名稱:rwx 目錄 ##設定目錄的預設facl並目錄下所有子檔案子目錄都使用父目錄的預設facl

 getfacl 目錄或檔案 ##檢視目標檔案或目錄的acl規則

      setfacl -b 檔案或目錄 ##刪除檔案所有的acl規則

 setfacl -x u:root 檔案或目錄 ##刪除檔案的一條acl規則

 setfacl  -m  m:w    /mnt/test ##設定有效許可權mask,有效許可權(mask) 即使用者或組所設定的許可權必須要存在於mask的許可權設定範圍內才會生效