### :-: UID 和 GID
Linux 是一個支持多用戶的操作系統,每個用戶都有 User ID(UID) 和 Group ID(GID),UID 是對一個用戶的單一身份標識,而 GID 則對應多個 UID。知道某個用戶的 UID 和 GID 是非常有用的,一些程序可能就需要 UID/GID 來運行。可以使用?id?命令來查看:
```
$ id root
uid=0(root) gid=0(root) groups=0(root)
$ id wzhrdx
uid=1000(wzhrdx) gid=1000(wzhrdx) groups=1000(wzhrdx),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),114(netdev)
```
UID 為 0 的 root 用戶類似于系統管理員,它具有系統的完全訪問權。我自己新建的用戶 wzhrdx,其 UID 為 1000,是一個普通用戶。GID 的關系存儲在?/etc/group?文件中:
```
$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
......
```
所有用戶的信息(除了密碼)都保存在?/etc/passwd?文件中,而為了安全起見,加密過的用戶密碼保存在?/etc/shadow?文件中,此文件只有 root 權限可以訪問。
`$ sudo cat /etc/shadow`
由于普通用戶的權限比較低,這里使用?sudo?命令可以讓普通用戶以 root 用戶的身份運行某一命令。使用?su?命令則可以切換到一個不同的用戶:
```
$ whoami
wzhrdx
$ su root
$ whoami
root
```
whoami?用于打印當前有效的用戶名稱,shell 中普通用戶以?$?開頭,root 用戶以?#?開頭。在輸入密碼后,我們已經從 wzhrdx 用戶轉換到 root 用戶了。