『壹』 linux中多用戶以及許可權的理解
linux操作系統是多用戶管理系統,管理起來非常麻煩,所以用組的概念來管理用戶就變的簡單多了, 一個用戶可以屬於多個組,一個組可以有多個用戶,用戶和組是多對多的關系。
linux的多用戶多分組管理系統都是針對 文件 來說的, 每個文件都有所屬的用戶和所屬的分組。
linux系統是根據用戶UID來識別用戶的,並不是根據用戶名。linux用戶分為以下3種
每行數據為一個用戶,可以看到紅色部分為root超級用戶,藍色部分為系統用戶,綠色部分為普通用戶。
我們可以看到該文件屬於root用戶和root組。然後root用戶許可權是rw-,root組內成員的許可權是r--,而其他用戶的許可權是r--。由於其他用戶的許可權都是r--,所以任何用戶都是可以讀的。
在/etc/group文件中存儲著系統的所有組,查看文件內容,如下圖
大致分為4段
我們可以看到圖中mail分組的第4段有值為postfix,也就是postfix用戶應該有倆個分組,一個初始組和一個附屬組,我們執行以下命令驗證
用戶密碼文件shadow和組密碼文件gshadow的許可權都是000,所有其他用戶是不能查看的,只有root用戶才可以查看,root用戶也是不能修改該文件的。
使用 whoami 命令查看。
postfix用戶有倆個所屬組postfix和mail。由此可見, uid是指用戶id(用戶名稱),gid是指初始組id(初始組名稱),groups是指包括初始組在內的所有組id(所有組名稱)
我們知道了/etc/group文件的第四段為 組內成員 ,所有我們可以通過 grep 來匹配相關組。比如查詢mail組內的所有成員,命令如下, 可以看到mail組內有mail,postfix和tom3個用戶。
上面是一種方法,我們也可以直接使用命令來查看。
添加用戶只能root用戶來添加,普通用戶沒有許可權,添加用戶有倆種方式
在centos系統下,這倆種方式沒有區別, 都會在/home下自動創建與用戶名同名的用戶目錄,且都是需要使用 passwd userName 命令來設置用戶密碼的,只有設置完密碼後才可以正常登錄。
在unbantu系統下,這倆種方式是有區別的,使用 useradd userName命令 不會在/home下自動創建與用戶名同名的用戶目錄,且不會自動選擇shell版本,後續也是需要使用 passwd username來設置密碼的 。 而使用 adser userName 命令的話 是會在/home目錄下自動創建與用戶名同名的用戶目錄,也會自動選擇shell版本,且會自動提示輸入用戶密碼,對用戶比較友好,後續不需要在使用passwd來設置密碼。
刪除用戶,並不會刪除用戶相關的文件
刪除用戶且一起刪除家目錄
格式如下:
參數如下:
-g 指定組(只有root可以使用)
-a 指定用戶加入組
-d 從組中刪除該用戶
-p 從組中清楚所有成員
-l 顯示組成員列表
linux中每個文件都是有許可權的。 每個文件都有自己的所屬用戶和所屬組,且擁有所屬用戶許可權,所屬組許可權和其他許可權3種。
許可權一般分為讀,寫,執行3種,通過這樣的機制來限制哪些用戶或用戶組可以對特定文件進行相應的操作。
目錄有x許可權才可以cd進入該目錄。目錄有r許可權才能在該目錄中使用ll或者ls查看目錄。一個目錄中的文件能否被刪除或者創建取決於該目錄是否有w許可權。
執行ll命令後顯示如下,我們解讀一下
從左到右發現一共有7段
然後執行如下命令
test文件的許可權改為
常用的參數為 -R ,常用於修改目錄許可權,該參數表示為該目錄以及目錄下的所有子文件都修改為相同的許可權。
然後執行如下命令
再次查看test文件
常用的參數為 -R ,常用於修改目錄,該參數表示為該目錄以及目錄下的所有子文件都修改為相同的用戶及用戶組。
想切換到root用戶,直接使用su命令即可