用戶組存在的原因主要還是方便分配權限。而用戶本身和權限的差別不是很大,各個用戶之間主要的不同是:是否擁有密碼;home目錄(普通用戶可以有一個以自己用戶名命名的home目錄,存放的地址是/home/username,root用戶的home目錄是:/root);shell。
像nobody這樣用來執(zhí)行Nginx的工作進程的用戶,一般不分配密碼和shell,甚至連home目錄都沒有。為什么不分配密碼?如果設置了密碼,程序無法自動使用。由于不會有人使用這個用戶登錄系統(tǒng),所以就沒有必要分配shell。(備注:其實嚴格上說是有分配shell,只是分配的shell是/sbin/nologin這個特殊的shell,沒有任何其他功能,主要功能是防止你登陸。)
所有用戶都可以通過查看/etc/passwd查看。文件的每一行代表著一個用戶,每一行由冒號“:”分割成7個字段,其結構如下:
UID:UID 0 root用戶;UID 1~999 是占坑用戶,即一寫無法登錄的用戶(以前是系統(tǒng)是1~499,最近剛改);UID 1000 以上是正常的可登錄用戶。
GID:前面說了一個用戶可以屬于多個用戶組,但這里只有一個,表示的是專職用戶組,即一個用戶只有一個專職用戶組,其屬于其他用戶組的關聯(lián)關系存儲在/etc/group 文件中。
其中比較特殊的是密碼字段,統(tǒng)一由x代替了,看/etc/passwd就知道一開始Linux是將密碼存在這個文件里的,由于考慮到/etc/passwd可以被所有人查看,所以將統(tǒng)一存儲到/etc/shadow文件(只有root權限可以訪問)中。
其結構如下:
再來看看/etc/group文件,其結構如下:
正常的使用中很少會用到用戶組密碼,其存儲在/etc/gshadow中。用戶組文件比較特特殊的是“”用戶組內(nèi)的用戶名”,其實就是這個組下的用戶列表,每個用戶之間用逗號“,”分割;本字段可以為空;如果字段為空表示用戶組為GID的用戶名普通用戶的權限非常的低,就連在系統(tǒng)里安裝軟件的權限都沒有,很多時候可以臨時給普通用戶以特權,就是sudo(在命令前添加sudo)。
最后來學習下常用的shell命令:
useradd命令用于Linux中創(chuàng)建的新的系統(tǒng)用戶。useradd可用來建立用戶帳號。帳號建好之后,再用passwd設定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實際上是保存在/etc/passwd文本文件中。語法 : useradd(選項)(參數(shù))
上一個教程:Linux文件權限命令的軟硬連接區(qū)別
下一個教程:這五個問題搞明白,Linux學習就會變簡單?