linux用戶:Username/UID
linux內判斷身份是用ID號,每個用戶都有唯一的編號,即UID。創建用戶的名字會產生一個對應的UID,在用戶登錄的同時,計算機默認識別的是對應的UID數字。
管理員默認為root賬號,默認UID為0,判斷用戶是不是管理員,是判斷UID是否為0,如果root的UID改為非0,root就不再是管理員。UID決定了賬戶的身份,而不是名字決定了身份。
普通用戶的默認UID范圍為1~65535,在CentOS 6中1~499是為系統用戶預留的UID,個人登錄用戶的UID從500開始;CentOS 7的系統用戶預留的UID范圍為1~999,個人登錄用戶的UID從1000開始。系統用戶是預留給系統的服務進程所使用。
[root@yifeng ~]#id uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
linux組:Groupname/GID
組相當于多個用戶的集合,可以創建一個組,把多個賬戶加到這個組里,方便授權,組內用戶會繼承當前住的權限,不需要對賬戶單獨授權,其他賬戶加入組,同樣繼承組的授權。組不是必須的,是為了方便管理。
組的ID叫GID,用戶名和組名可以同名。在windows中用戶名和組名不允許同名。
-rw-------. 1 root(用戶名) root(所屬組) 1949 Jul 18 14:51 anaconda-ks.cfg
(一)、用戶的主要組:用戶有且只有一個主組,有且只有一個主組。附加組可有可無,可有多個。組名和用戶名相同,且只有一個用戶的組叫私有組。
(二)、用戶的附加組:一個用戶可以屬于零個或多個輔助組
對用戶授權代表一個人,對組授權代表一個集合。
用戶最終能不能訪問某個文件,和使用的工具無關,和訪問者的身份(權限)有關。
linux用戶和組的主要配置文件
用戶及其屬性信息(名稱、UID、主組ID等) /etc/passwd
由于老版本系統中普通用戶同樣有查看密碼文件的權限,在新版本系統中passwd中的密碼口令由x代替,可用pwunconv回歸傳統顯方式,普通用戶不具備pwunconv權限
passwd文件格式
用戶名:口令:UID:GID:用戶全名:用戶組全名:用戶默認使用的shell
[root@yifeng ~]#cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ......
pwunconv 回歸傳統,把密碼從/etc/shadow放回/etc/passwd
pwconv 還原
[root@yifeng ~]#cat /etc/passwd //查看密碼文件 root:
x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin
[root@yifeng ~]#pwunconv //執行pwunconv命令
[root@yifeng ~]#cat /etc/passwd //再次查看密碼文件 root:
$6$.QGA7WPFQ.aHgKTu$54TgRYOiCHBSi/uZmnA8A3rHIuI0eQfWjZXJBgZxexJAtJCzElpqC.NGTlZKc7LiUq8NDG7aC2Ux24qNRQDTT.:0:0:root:/root:/bin/bash bin:*:1:1:bin:/bin:/sbin/nologin
[root@yifeng ~]#pwconv //還原 [root@yifeng ~]#cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin
修改登錄用戶的UID為0,該用戶將具備管理員的權限
[root@yifeng ~]#nano /etc/passwd //編輯密碼文檔 root:x:10:0:root:/root:/bin/bash //修改管理員root的UID為非零 feng:x:0:1000:feng:/home/feng:/bin/bash //修改用戶UID為0 [root@yifeng /]#su feng //登錄用戶feng [feng@yifeng /]# //#代表管理員權限
組及其屬性信息 /etc/group
group文件格式
群組名稱:群組密碼:GID:以當前組為附加組的用戶列表(用逗號分隔)
[root@yifeng ~]#cat /etc/group root:x:0:gentoo bin:x:1:gentoo daemon:x:2: sys:x:3: adm:x:4: tty:x:5: ......
用戶密碼及其相關屬性 /etc/shadow
**shadow文件格式 **
登錄用名:
用戶密碼:一般用sha512加密:
從1970年1月1日起到密碼最近一次被更改的時間:
密碼再過幾天可以被變更(0表示隨時可被變更):
密碼再過幾天必須被變更(99999表示永不過期):
密碼過期前幾天系統提醒用戶(默認為一周):
密碼過期幾天后帳號會被鎖定:
從1970年1月1日算起,多少天后帳號失效
[root@yifeng ~]#cat /etc/shadow root:$6$.QGA7WPFQ.aHgKTu$54TgRYOiCHBSi/uZmnA8A3rHIuI0eQfWjZXJBgZxexJAtJCzElpqC.NGTlZKc7LiUq8NDG7aC2Ux24qNRQDTT.:17372:0:99999:7::: bin:*:17372:0:99999:7::: daemon:*:17372:0:99999:7::: adm:*:17372:0:99999:7::: ......
組密碼及其相關屬性 /etc/gshadow
gshadow文件格式
群組名稱:群組密碼:組管理員列表:以當前組為附加組的用戶列表(用逗號分隔)
[root@yifeng ~]#cat /etc/gshadow root:::gentoo bin:::gentoo daemon::: sys::: ......
用戶管理命令
useradd 添加用戶
-g GID:指明用戶所屬基本組
-c "COMMENT":用戶的注釋信息
-s SHELL: 指明用戶的默認shell程序
[root@yifeng home]#useradd test1 -g feng -c "ceshi" -s /bin/bash //添加text賬戶,注釋ceshi,使用bash程序
usermod 用戶屬性修改
-s SHELL:新的默認SHELL
-c 'COMMENT':新的注釋信息
-u UID: 新UID
-g GID: 新主組
userdel 刪除用戶
-r: 刪除用戶家目錄
[root@yifeng home]#userdel -r text //刪除test用戶的家目錄
id
-u: 顯示UID
[root@yifeng home]#id -u test1 1002
-g: 顯示GID
[root@yifeng home]#id -g test1 1000
-G: 顯示用戶所屬的組的ID
[root@yifeng home]#id -G test1 1000
-n: 顯示名稱,需配合ugG使用
[root@yifeng home]#id -nu test1 test1
組賬戶命令
groupadd 創建組
-g GID: 指明GID號
-r: 創建系統組
groupmod 修改組
-n group_name: 新名字
-g GID: 新的GID
groupdel 刪除組
gpasswd 組密碼
-a user: 將user添加至指定組中
-d user: 從指定組中移除用戶user
newgrp命令:臨時切換主組
如果用戶本不屬于此組,則需要組密碼