本節介紹內容:
1、賬戶和組的概念
2、賬戶和組文件闡述與解析
3、管理賬戶和組(創建刪除和修改)
4、案例分析-用戶管理和組管理
5、暴力破解RHEL5 shadow
1、賬戶和組的概念
用戶和組的管理在linux中是通過UID和GID這種ID號來實現的,在登陸系統時用已知的系統中賬號名稱來登陸系統將默認轉換爲ID號碼,如同上述所說的UID就是用戶的ID,而GID就是組ID,例如UID爲0時,則系統爲認爲此用戶爲root賬戶,爲超級管理員賬戶,GID爲0時也就是超級管理員組,而用戶可以加入到組中,在RHEL或者centos中創建用戶的時候也就意味着系統會默認創建一個同樣名稱的組,組分爲基本組合附加組。創建用戶和組時需要有管理員權限,否則不會成功。
用戶的分類:
根據帳號的位置:本地帳號、遠程(域)帳號。 LDAP,NIS,
根據帳號的功能:超級用戶(root) UID:0
普通用戶
系統用戶 UID:1-499
本地用戶 UID:500+ #這就意味着你所創建的用戶的UID從500開始
組分類:
根據帳號的位置:本地組、遠程(域)組。 LDAP,NIS,
根據帳號的功能:超級用戶組(root) UID:0
普通用戶組
系統用戶組 UID:1-499
本地用戶 組 UID:500+
2、賬戶和組文件闡述與解析
關於系統用戶和組的相關配置文件
賬號信息密碼信息
用戶/etc/passwd/etc/shadow
組/etc/group/etc/gshadow
文件解析:
[root@pan-S ~]# cat /etc/passwd | grep root #以root用戶爲例
root:x:0:0:shudaipiaoling,beijing,88888888:/root:/bin/bash
字段作用從左到右依次爲:
用戶名:密碼佔位符:UID:GID:用戶描述:主目錄:登陸後的shell
[root@pan-S ~]# cat /etc/shadow | grep root
root:$1$42CKJVPe$kgayM5c0duo8z8V/4x35s.:16589:0:99999:7:::
字段作用從左到右依次爲:
第一位:用戶名
第二位:密碼被加密
第三位:最近更改密碼的日期:從19700101開始計算
第四位:密碼不能更改的天數,最近被改過之後,過多少天才能再次修改 此處是0表示隨時可以修改
第五位:密碼過期時間,即多少天之後必須再次修改
第六位:密碼需要到更改期限到來前7天發出警告
第七位:寬限天數,密碼過了多少天后還能改密碼
第八位:賬號過期時間
第九位:保留
[root@pan-S ~]# grep root /etc/group
root:x:0:root
字段從左到右依次爲:用戶名:密碼佔位符:GID:組成員
3、管理賬戶和組(創建刪除和修改)
賬戶管理:
(1)、useradd或者 adduser #用戶的創建命令
用法:useradd /adduser 【option】用戶名稱
Option:比較常用的有下列幾個
-u#自定義UID
-c #設置賬戶的暱稱
-d#設置home目錄#<登入目錄>#
-M#不設置home目錄
-g#缺省基本組設置
-G#缺省附加組設置
-e#設置用戶的實效時間例如:2015-07-15
-s#指定用戶登錄後使用的shell
-r#建立系統賬戶
案例分析1:創建一個系統用戶爲shudaipiaoling 指定UID爲105 暱稱爲system_user 登入目錄爲/home/shudaipiaoling 並查看是否創建成功。
[root@pan-S ~]# adduser -r shudaipiaoling -u 105 -c system_user -d /home/shudaipiaoling
[root@pan-S ~]# cat /etc/passwd | grep shudaipiaoling --color
shudaipiaoling:x:105:105:system_user:/home/shudaipiaoling:/bin/bash
[root@pan-S ~]# id shudaipiaoling #顯示賬戶及其所屬組的ID號
uid=105(shudaipiaoling) gid=105(shudaipiaoling) groups=105(shudaipiaoling)
[root@pan-S ~]#
(2)、id 命令# 不指定用戶則顯示當前用戶
用法:id [參數] [用戶名]
參數 :
-g 用戶所屬組的ID
-G 用戶附加組的ID
-u 用戶的ID
(3)、chfn 命令 #修改賬戶的信息保存到/etc/passwd中
用法:chfn [參數] [賬戶名稱]
參數:
-f 設置真實姓名
-p 設置phone
-o 設置辦公地址完全可以定義部門
(4)、finger命令 #用來查看chfn修改的賬戶信息的
[root@pan-S ~]# chfn -o beijing
案例分析2:結合上面的(3)(4)所做的例子
[root@pan-S ~]# chfn -p 88888888
Changing finger information for root.
Finger information changed.
[root@pan-S ~]# finger root
Login: root Name: shudaipiaoling
Directory: /root Shell: /bin/bash
Office: beijing, 88888888
On since Wed Jul 15 13:11 (CST) on tty1 from :0
On since Wed Jul 15 13:12 (CST) on pts/0 from :0.0
No mail.
No Plan.
[root@pan-S ~]# finger -s root
Login Name Tty Idle Login Time Office Office Phone
root shudaipiaoling tty1 Jul 15 13:11 (:0)
root shudaipiaoling pts/0 Jul 15 13:12 (:0.0)
(5)、passwd 命令 #爲新添加的賬戶設置密碼##如果不設置密碼無法登陸用戶
參數:S查看密碼狀態
-l 鎖定用戶使其失效
-u解鎖用戶
-d刪除密碼
-k密碼過期後才能更新
--stdin從文件或者管道讀取密碼
-
root@pan-S ~]# passwd shudaipiaoling
Changing password for user shudaipiaoling.
New password:
BAD PASSWORD: it is too simplistic/systematic
Retype new password:
passwd: all authentication tokens updated successfully.
[root@pan-S ~]# passwd -S shudaipiaoling
shudaipiaoling PS 2015-07-15 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@pan-S ~]# passwd -l shudaipiaoling
Locking password for user shudaipiaoling.
passwd: Success
[root@pan-S ~]# passwd -u shudaipiaoling
Unlocking password for user shudaipiaoling.
passwd: Success
(6)、usermod #修改用戶賬戶信息
Usermod 命令語法:
Usermod [參數][用戶賬戶]
-u#修改用戶的UID
-c#修改用戶的暱稱
-d#修改用戶的登入目錄
-g#修改基本組設置
-G#修改附加組設置
-e#修改用戶的實效時間例如:07/15/2015
-s#修改用戶登錄後使用的shell
-U#解除密碼鎖定
-p#修改用戶賬戶密碼
-l#修改用戶賬戶名稱
案例分析3、修改用戶shudaipiaoling的有效期限爲2015年09月10日
[root@pan-S ~]# usermod -e 09/10/2015 shudaipiaoling
(7)、userdel #刪除用戶
命令語法
Userdel [參數][用戶賬戶]
-r 刪除用戶賬戶的登錄目錄以及子目錄
(8)、w #顯示當前用戶信息 w命令解析:
[root@pan-S ~]# w
15:24:32 up 2:14, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 :0 13:11 ? 23.81s 23.81s /usr/bin/Xorg :0 -nr -verbose -audit 4 -auth /var
root pts/0 :0.0 13:12 1.00s 0.32s 0.04s w
第一行依次顯示 當前時間、系統持續運行時間 、登錄用戶數、最近1、5、15分鐘的系統平均負載
第二行依次顯示 每個用戶的用戶名、tty名、遠程主機、登錄時間、空閒時間、和終端連接的所有進程佔用的時間(包括當前後臺作業所佔用時間)、當前進程佔用的時間、當前進程命令
(9)、who命令#同樣是顯示當前用戶的詳細信息
-H 顯示欄目標題信息
-u 或-I 顯示閒置時間 登陸進程ID。 old爲超過24小時沒有任何動作了,之前1分鐘有則爲.
-q 僅顯示用戶名稱和用戶總數
-m 顯示本地主機主機和本地賬戶相關信息
案例分析:
[root@pan-S ~]# who -q
root root
# users=2
[root@pan-S ~]# who -m
root pts/0 2015-07-15 13:12 (:0.0)
[root@pan-S ~]# who -w
root + tty1 2015-07-15 13:11 (:0)
root + pts/0 2015-07-15 13:12 (:0.0)
[root@pan-S ~]# who -Hu
NAME LINE TIME IDLE PID COMMENT
root tty1 2015-07-15 13:11 old 12431 (:0)
root pts/0 2015-07-15 13:12 . 12906 (:0.0)
擴展命令:
(10)、ac 命令 #顯示用戶在線時間的統計信息。它是根據/var/log/wtmp文件中的用戶登陸和退出的時間推算出來的總的在線時間。
ac 命令語法:
ac [參數]
-d #顯示每天的在線時間是總時間,單位爲小時。
--f <filename>#指定從哪個文件中讀取信息,默認從wtmp讀取
--p <username>#指定用戶名的登陸時間,如果用戶名爲空顯示所有
案例分析:找到wtmp文件同時查看ac命令的格式如下所示:
[root@pan-S pan]# find / -iname wtmp
/var/log/wtmp
[root@pan-S pan]# ac -p
root 1889.49
total 1889.49
[root@pan-S pan]# ac
total 1889.50
[root@pan-S pan]# ac -d
Jun 3total 0.02
Jun 6total 35.35
Jun 12total 419.20
(11)、last命令 顯示最近登陸的用戶列表,這個命令同上一個ac命令的讀