linux 用户 组区别吗,Linux系统的用户和用户组有什么区别
1.用戶和用戶組的概念
Linux是一個多用戶系統,要使用系統資源就必須在系統內擁有合法的用戶賬號, Linux系統可以存在多個用戶,但是需要使用唯一的用戶名來區分不同的用戶,同時所有非系統用戶都需要設置密碼才可以登錄到系統。
和人類不同, Linux系統只能使用數字來記錄用戶。在實現上,Linux系統采用一個32位的整數來記錄用戶,這意味著在一套 Linux系統中最多可以記錄40億個不同的用戶。這個用來區分不同用戶的數字被稱為 user id,簡稱UID。
在 Linux系統中,有三類用戶,分別是系統用戶、普通用戶和根用戶。普通用戶是 Linux的真實用戶,這類用戶可以通過用戶名和密碼登錄到系統中,通常普通用戶的UD大于500;系統用戶是系統運行時的一些特殊用戶,這類用戶往往不能登錄到系統中,但是一些進程需要使用這類用戶運行,比如系統中的htpd進程就是使用用戶 apache運行的;根用戶又叫root,它的UID為0,也是系統中的超級用戶,擁有至高無上的權限。
除了用戶之外, Linux系統中還存在用戶組,而用戶組也是用數字來區分的,即 Group ID,簡稱為GID。
UID和GID之間存在某些關系。比如 Centos系統在創建用戶時,系統會在創建這個用戶的同時,創建一個同名的用戶組。而在內部,系統在分配給該用戶一個UID的同時會創建一個用戶組(這個用戶組也會得到一個唯一的GID),并且默認情況下UID的值等于GID,創建出來的這個用戶默認屬于這個用戶組。用戶組除了在創建用戶時被創建,也可以獨立創建出來。
上面的解釋似乎有點晦澀,這里舉個例子:在學校里,每個學生都會被分配到一個學號,這個學號一定是唯一的,所以才能區分不同的學生我們可以拿學號類比一個UID;同時,每個學生都可以自己創建自己的興越小組,這個興趣小組的編號類比于系統中的GID,為了保證唯一,創建的這個興趣小組的編號的數值可以簡單地等于UID,這樣可以保證GID也是唯一的。當然,默認情況下,一開始每個興趣小組的成員都只有一個。當某個學生對其他某個興趣小組感興趣時,他可以隨時加入其他的小組這時該學生就屬于兩個組了,而他加入其他小組的個數越多,他從屬于的組就越多, Linux中也是一樣,一個用戶在創建后,至少屬于一個組,而且后期隨時可以加入、退出不同的組。
2新增和刪除用戶
在 Centos中新増和刪除用戶可以分別使用 useradd和 userdel命令完成。比如現在想要添加一個用戶名為john的用戶:
{root@localhost-}#useradd john
需要注意的是,如果僅使用 useradd添加用戶,該用戶并不能登錄到系統,必須給該用戶設置密碼后才可以。同時請記住,新増一個用戶的操作,也就默認新増了一個同名的用戶組(在這里意味著同時新増了一個名為 john的用戶組)。
{root@localhost-}# passwd john
Changing password for user john
New password
Retype new password:
passwd: all authentication tokens updated successfully
刪除用戶
{root@localhost-}#userdel john
在一個賬號使用一段時間后,該用戶往往會在個人家目錄中留下不少個人文件,使用上面的命令刪除用戶,這些文件還會得以保留。如果確認該用戶的文件需要在刪除用戶時也一并徹底刪除,可使用以下命令完成:
{root@localhost-}#userdel -r john
3.新增和刪除用戶組
也可以使用 groupadd/ groupdel單獨創建/刪除用戶組。示例如下:
{root@localhost-}#groupadd groupl
{root@localhost-}# groupdel groupl
4.用戶切換
很多情況下需要切換用戶,比如原先使用了一個普通用戶登錄系統后來由于權限問題需要切換為root執行相關命令。或是需要從普通用戶1切換為普通用戶2,或是從root切換為普通用戶等。切換用戶的命令為su。
root由于擁有至高無上的權限,所以,root用戶可以隨時切換為任意的用戶,比如下面的例子中,root用戶切換為john,注意用戶切換成功后,命令提示行中的用戶變為用戶john了:
{root@localhost-}# su-john
{john@localhost-}$
但是,從普通用戶切換至root,是必須要知道root的密碼的,下面的例子中第一次故意輸入了一個錯誤的密碼,系統會拒絕這次用戶切換第二次輸入正確的密碼后,就可以正確切換為root了。
{john@localhost-}$ su-root
password:
su: incorrect passwd
{john@localhost-}$
{john@localhost-}$ su-root
password:
{root@localhost-}#
最后,從一個普通用戶切換為另一個普通用戶的操作,也需要知道被切換的用戶的密碼,原因應該很好理解。當然,這里也存在一個很明顯的問題:用戶1切換為用戶2的前提是用戶1必須知道用戶2的密碼,這似乎給密碼安全帶來了一些問題。那么有沒有方法可以解決這個問題呢?答案是肯定的。感興趣的讀者可以搜索查看一下sudo命令。
總結
以上是生活随笔為你收集整理的linux 用户 组区别吗,Linux系统的用户和用户组有什么区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows server 2008
- 下一篇: Linux挂载多个文件夹读不出,FTP不