1. 程式人生 > >Linux第四講課件、使用者和組管理

Linux第四講課件、使用者和組管理

Linux作業系統是一個多使用者多工的作業系統,允許多個使用者同時登入到系統,使用系統資源。

Linux系統下的使用者帳戶分為三種

  1. 普通使用者帳戶
  2. 超級使用者帳戶:又稱為根使用者或管理員賬戶,可以對普通使用者和整個系統進行管理。一般命名為root
  3. 系統使用者賬戶:也被稱之為偽使用者或假使用者,這類使用者不具有登入系統的能力,但卻是系統執行不可缺少的使用者,比如bin、daemon、adm、ftp、mail等;這類使用者都系統自身擁有的,而非後來新增的。

使用者和組概述

使用者帳戶:是使用者的身份標識,使用者通過使用者帳戶可以登入到系統,並且訪問已經被授權的資源。

組:是具有相同特性的使用者的邏輯集合

  1. 在為資源授權時可以把許可權賦予某個組,組中的成員即可自動獲得這種許可權。
  2. 一個使用者賬戶至少屬於一個使用者組,當是多個組的成員時,其中某個組是該使用者的主組(私有組),其他組是該使用者的附屬組(標準組)。

使用者名稱

用來標識使用者的名稱,可以是字母、數字組成的字串,區分大小寫

密碼

用於驗證使用者身份的特殊驗證碼

使用者標識(UID)

用來表示使用者的數字識別符號

使用者主目錄

使用者的私人目錄,也是使用者登入系統後預設所在的目錄

登入Shell

使用者登入後預設使用的Shell程式,預設為/bin/bash

具有相同屬性的使用者屬於同一個組

組標識(GID)

用來表示組群的數字識別符號

1、每一個使用者都有一個唯一的身份標識,稱為使用者ID(UID);每一個使用者組也有一個唯一的身份標識,稱為使用者組ID(GID)。

2、root使用者的UID為0。

3、普通使用者的UID可以在建立時由管理員指定,如果不指定,使用者的UID在RedHat Linux中預設從500開始順序編號,而在Ubuntu Linux中預設從1000開始順序編號。

4、系統使用者的UID為1—499

使用者和組配置檔案

1、使用者帳戶檔案

/etc/passwd檔案:使用者帳戶資訊

    • Vi /etc/passwd;每行用“:”分隔為7個域
    • 使用者名稱:加密口令:UID:GID:使用者描述資訊:使用者主目錄:命令直譯器
    • 真正的密碼儲存在shadow檔案中

/etc/shadow檔案:使用者口令

    • sudo Vi /etc/shadow;
    • 所有使用者對passwd檔案均可讀取,只有root使用者對shadow檔案可讀,因此密碼存放在shadow檔案中更安全。
    • 使用者名稱:密碼(已加密):上次修改口令的時間:兩次修改口令間隔最少的天數:兩次修改口令間隔最多的天數:提前多少天警告使用者口令過期:略~

2、組檔案:

/etc/group檔案:組帳戶資訊

    • Vi /etc/group;
    • 使用者的組賬戶的資訊存放在group檔案中,任何使用者都可以讀取,用“:”分隔為4個域。
    • 組名稱:組口令(一般為空):GID:組成員列表

/etc/gshadow檔案:組口令、管理員等管理資訊

    • sudo Vi /etc/gshadow;
    • gshadow檔案用於存放組的加密口令、組管理員等資訊,只有root使用者可讀,用“:”分隔成4個域
    • 使用者組:使用者組密碼:使用者組管理者:組成員

3、/etc/login.defs檔案

    • 建立使用者帳戶時根據/etc/login.defs檔案的配置設定使用者帳戶的某些選項。

使用者賬戶的建立和管理

1、新建使用者

  • 命令:useradd或adduser
  • 格式:useradd  [引數]  <username>
  • 例如:建立test使用者:sudo useradd test
  • useradd命令的引數含義如下:

-c comment

使用者的註釋性資訊

-d home_dir  

指定使用者的主目錄

-e expire_date

禁用帳號的日期,格式為:YYYY-MM-DD

-f inactive_days

設定帳戶過期多少天后,使用者帳戶被禁用

-u  UID           

指定使用者的UID

-g initial_group 

使用者所屬主組的組名稱或者GID

-G group-list      

使用者所屬的附屬組列表

-m            

若使用者主目錄不存在則建立它

-M        

不要建立使用者主目錄

-n          

不要為使用者建立使用者私人組

-p          

passwd  加密的口令

-r 

建立UID小於500的不帶主目錄的系統帳號

-s  shell

指定使用者的登入Shell,預設為/bin/bash

  • 例如:新建使用者user01,UID為1010,指定其所屬的私有組為test(test組的識別符號為1001),使用者的主目錄為/home/user01,使用者的Shell為/bin/bash,使用者的密碼為123456,帳戶永不過期。

答案:sudo useradd -u 1010 -g 1001 -d /home/user01/ -s /bin/bash -p 123456 -f -1 user01

2、設定使用者帳戶口令

  • 新建使用者後,要為使用者設定口令,未設定口令的使用者不能登陸系統,如(用ctrl+alt+F1切換至tty1嘗試用未設定密碼的root使用者登入)
  • 指定和修改使用者帳戶口令:passwd  <使用者名稱>
  • 修改使用者密碼時效:chage  <使用者名稱>

passwd命令格式及引數含義:

  • 格式: passwd  [引數]  <使用者名稱>
  • passwd命令的引數含義如下:

-l   

鎖定(停用)使用者帳戶

-u   

口令解鎖

-d  

將使用者口令設定為空,這與未設定口令的帳戶不同。未設定口令的帳戶無法登入系統,而口令為空的帳戶可以。

-f   

強迫使用者下次登入時必須修改口令

-n    

指定口令的最短存活期

-x  

指定口令的最長存活期

-w   

口令要到期前提前警告的天數

-I     

口令過期後多少天停用帳戶

-S    

顯示帳戶口令的簡短狀態資訊

  • ps:普通使用者修改口令時,passwd命令會首先詢問原來的口令,只有驗證通過才可以修改。但root使用者例外,在root使用者的shell中可以直接輸入新密碼無需驗證老密碼。故一般使用root使用者時要特別小心,儘量用sudo臨時提升許可權,不隨意使用root登陸,或做完必要的工作必須切換至普通使用者狀態貨登出root使用者登入。

chage命令格式及引數含義:

  • 格式: chage  [引數]  <使用者名稱>
  • chage命令的引數含義如下:

-l

列出帳戶口令屬性的各個數值

-m  

指定口令最短存活期

-M    

指定口令最長存活期

-W  

口令要到期前提前警告的天數

-I    

口令過期後多少天停用帳戶

-E    

使用者帳戶到期作廢的日期

-d  

設定口令上一次修改的日期

  • 例如:設定user1使用者的最短口令存活期為6天,最長口令存活期為60天,口令到期前5天提醒使用者修改口令。

答案:sudo chage -m 6 -M 60 -W 5 user01

  • 設定完成後檢視各屬性值。

答案:sudo chage -l user01

3、使用者賬戶的維護

1)修改使用者賬戶

  • 命令:usermod
  • 格式:usermod  [引數]  <username>
  • 例如:修改使用者user01的主目錄為/var/user01,把啟動Shell修改為/bin/tcsh,並檢視修改後的結果。

答案:sudo usermod -d /var/user01 -s /bin/tcsh user01;tail -l /etc/passwd

2)禁用和恢復使用者賬戶

  • passwd命令

1、禁用user01使用者賬戶,命令:sudo passwd -l user01

2、檢視user01使用者賬戶(被鎖定的使用者密碼欄前面會加上!),命令:sudo tail -l /etc/shadow

3、解除user01使用者鎖定,,命令:sudo passwd -u user01

  • usermod命令

1、禁用user01使用者賬戶,命令:sudo usermod -L user01

2、解除user01使用者鎖定,命令:sudo usermod -U user01

  • 直接修改/etc/passwd或/etc/shadow檔案

1、可將/etc/passwd檔案或/etc/shadow檔案中關於user1帳戶的passwd域的第一個字元前面加上一個“*”,達到禁用帳戶的目的,在需要恢復的時候只要刪除字元“*”即可。

2、如果只是禁止使用者帳戶登入系統,可以將其啟動Shell設定為/bin/false或者/dev/null。

3)刪除使用者賬戶

  • 直接編輯/etc/passwd和/etc/shadow檔案,刪除使用者所對應的行
  • 用userdel命令刪除,格式:userdel [-r] <username>
  • 例如:刪除使用者user01,保留使用者主目錄

答案:sudo userdel user01

組管理

  • 使用不帶任何引數的useradd命令建立使用者時,會同時建立一個和使用者帳戶同名的組,稱為主組。
  • 當一個組中必須包含多個使用者時則需要使用附屬組。
  • 在附屬組中增加、刪除使用者都用gpasswd命令,該命令只有root使用者和組管理員才能夠使用。

1、維護組賬戶

建立組:

  • 命令:groupadd或addgroup
  • 例如:建立一個新的組,組名為testgroup

答案:sudo groupadd testgroup

修改組:

  • 命令:groupmod
  • 格式:groupmod  [引數] 〈groupname〉
  • groupmod命令的引數含義如下:

-g 

gid 把組的GID改成gid

-n  

group-name 把組的名稱改為name

-o  

強制接受更改的組的GID為重複的號碼

  • 例如:修改gid;修改組名稱;刪除組;

答案:sudo groupmod -g 1010 testgroup;sudo groupmod -n grouptest testgroup;sudo groupdel grouptest

2、為組新增使用者

  • 命令:gpasswd
  • 格式:gpasswd [引數] [使用者] [組]
  • gpasswd命令的引數含義如下:

-a

把使用者加入組

-d

把使用者從組中刪除

-r

取消組的密碼

-A

給組指派管理員

  • 例如:新建組testgroup,把test使用者加入testgroup組,並指派test為管理員 。

答案:sudo -i;groupadd testgroup;gpasswd -a test testgroup;gpasswd -A test testgroup;logout

ps:其中sudo –i是因為有大量需要用管理員許可權的命令,為了減少輸入sudo的麻煩,但最後記得用logout命令登出管理員登陸。

常見的賬戶管理命令

1、vipw、vigr

2、pwck

3、grpck

4、id

5、finger、chfn、chsh

6、whoami

7、su

8、newgrp