Linux第四講課件、使用者和組管理
Linux作業系統是一個多使用者多工的作業系統,允許多個使用者同時登入到系統,使用系統資源。
Linux系統下的使用者帳戶分為三種
- 普通使用者帳戶
- 超級使用者帳戶:又稱為根使用者或管理員賬戶,可以對普通使用者和整個系統進行管理。一般命名為root
- 系統使用者賬戶:也被稱之為偽使用者或假使用者,這類使用者不具有登入系統的能力,但卻是系統執行不可缺少的使用者,比如bin、daemon、adm、ftp、mail等;這類使用者都系統自身擁有的,而非後來新增的。
使用者和組概述
使用者帳戶:是使用者的身份標識,使用者通過使用者帳戶可以登入到系統,並且訪問已經被授權的資源。
組:是具有相同特性的使用者的邏輯集合
- 在為資源授權時可以把許可權賦予某個組,組中的成員即可自動獲得這種許可權。
- 一個使用者賬戶至少屬於一個使用者組,當是多個組的成員時,其中某個組是該使用者的主組(私有組),其他組是該使用者的附屬組(標準組)。
使用者名稱 |
用來標識使用者的名稱,可以是字母、數字組成的字串,區分大小寫 |
密碼 |
用於驗證使用者身份的特殊驗證碼 |
使用者標識(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