linux(centOS7)的基本操作(三) 用戶、組、權限管理


用戶和組

1.用戶、組、家目錄的概念

linux系統支持多用戶,除了管理員,其他用戶一般不應該使用root,而是應該向管理員申請一個賬號。組類似於角色,系統可以通過組對有共性的用戶進行統一管理。每個用戶應該至少屬於一個組,不能游離於組外;且在創建用戶時,系統會在/home目錄下自動生成一個目錄作為該用戶的“家目錄”,該用戶在登錄后會首先進入家目錄。家目錄可以在添加用戶時指定,如果不指定,默認會以用戶名來命名。例如,用戶bob的家目錄默認是/home/bob,他在登錄linux系統后,會首先進入/home/bob。

2.添加用戶

useradd username [-d homePath] [-g groupName]

其中,username為用戶名, homePath為家目錄(可選,不指定時默認為/home目錄下同用戶名),groupName為組名(可選,不指定時默認為同用戶名)。例如,要新建一個名為zhangsan的用戶,家目錄為/home/zhang3,屬於sales組,命令為:useradd zhangsan -d /home/zhang3 -g sales。

3.設置或修改用戶密碼

passwd username

其中,username為要設置或修改密碼的用戶名,回車之后,會要求輸入兩次新密碼。

4.刪除用戶

userdel [-r] username

其中,username為要刪除的用戶名,-r是可選項,表示同時刪除該用戶的家目錄。一般情況下刪除用戶時並不需要刪除他的家目錄。

5.查看用戶信息

id username

其中,username為要查看的用戶名,回車之后,會顯示用戶id、組id等信息。

6.切換用戶

su - newUsername

其中,newUsername為要切換的用戶名,如果是從高權限用戶切換到低權限用戶,例如從root切換到普通用戶,不需要密碼;反之則需要輸入密碼。經測試,切換到用戶本身時,從root到root不需要密碼,從普通用戶到他自己時需要密碼。

7.添加組

groupadd groupName

其中,groupName為要添加的組名,注意不能重復添加同名的組,如果groupName已經存在,會返回錯誤提示。

8.刪除組

groupdel groupName

其中,groupName為要添加的組名,注意如果這個組是一個或多個用戶的主組,則不能刪除。

9.修改用戶所屬的組

usermod -g groupname userName

其中,groupname為新組名,userName為要修改的用戶名。

10.修改用戶的家目錄

usermod -d homepath username

其中homepath為新的家目錄,username為要修改的用戶名。

11.與用戶、組相關的文件

/etc/passwd:用戶的配置文件,存放用戶信息;從左至右:用戶名,密碼(不顯示明文),用戶id,組id,家目錄,登錄shell。

/etc/shadow:口令的配置文件,用於存放加密口令、修改事件、失效時間等信息。

/etc/group:組配置文件,用於存放組名、組id。

12.文件與用戶、組的關系

一個用戶創建了一個文件,則這個用戶就自動成為這個文件的"所有者",這個用戶所在的組就成為文件的"所在組",除了所有者和所在組的用戶,系統中的其他用戶對於文件都是"其他組"的用戶。可以通過ls -l命令查看文件的所有者和所在組。但是文件的所有者和所在組並不是固定不變的,可以修改。

13.修改文件或目錄的所有者

chown [-R] username source

其中,username為修改后的用戶名,source為文件或目錄的路徑名稱,-R表示級聯修改目錄下面的子目錄和文件的所有者。

14.修改文件或目錄的所在組

chgrp [-R] groupname source

其中,groupname為修改后的組名,source為文件或目錄的路徑名稱,-R表示級聯修改目錄下面的子目錄和文件的所在組。注意修改文件的所有者和所在組是相互獨立的事件,互不影響。

15.同時修改文件或目錄的所有者和所在組

chown [-R] username:groupname source

其中,username為修改后的用戶名,groupname為修改后的組名,source為文件或目錄的路徑名稱,-R表示級聯修改目錄下面的子目錄和文件的所在組。這里的用戶和組沒有必然聯系,即username不一定要屬於groupname的那個組。

 

權限

1.文件和目錄的權限簡介

在目錄和文件管理一節中我們了解到,用ls -l命令可以以列表形式展示當前目錄下的子目錄和文件。但是這個列表到底展示了哪些信息,上一節並未詳細介紹。下面以一個例子來說明:

家目錄下有一個animal/目錄,還有一個description.txt文件,下面用不同顏色來划分列表字段。

drwxr-xr-x. 3 dubhlinn engineer 47 6月 19 22:26 animal

-rw-r--r--. 1 dubhlinn police 52 6月 19 22:25 description.txt

(1) 第一組只有1個字符,表示條目的類型:

-:普通文件

d:目錄

l:軟鏈接

c:字符設備,例如鍵盤、鼠標

b:塊文件,例如硬盤;

(2) 第二組有9個字符,每3個表達一個意思:

第1-3個表示文件所有者的權限,

第4-6個表示文件所在組的用戶的權限,

第7-9個表示文件其他組的權限。

那么這些字符代表什么意思呢?總的來說,r表示可讀,w表示可寫,x表示可執行,但是對於文件和目錄,表達的意思又不盡相同,下面分別描述。

  文件 目錄
- 無權限 無權限
r 可以用cat、more、less等命令查看文件內容 可以用ls命令查看目錄下的內容
w 可以用vi、vim編輯器修改文件,但不代表可刪除 可以在目錄內增加、刪除、重命名文件或子目錄
x 可執行 可以用cd命令進入該目錄

(3) 第三組是一個數字,對於文件來說是硬鏈接數,通常是1,對於目錄是其下的子目錄數量(包含隱藏子目錄)。

(4) 第四組表示文件的所有者。

(5) 第五組表示文件的所在組。

(6) 第六組是一個數字,表示其大小(KB)。

(7) 第七組是日期時間,表示文件或目錄的最后修改時間。

(8) 第八組是文件名或目錄的名字。

根據上這些理論知識,我們再來看上面的示例

drwxr-xr-x. 3 dubhlinn engineer 47 6月 19 22:26 animal

這是一個名為animal的目錄;其所有者有讀、寫、執行的權限,其所在組的用戶有讀、執行的權限,其他組有讀、執行的權限;它下面有3個子目錄;其所有者是dubhlinn,所在組是engineer;其大小為47KB,最后編輯時間是6月19日22:26。

2.修改文件或目錄的權限

(1) 使用權限代碼賦值

chmod role1=auth source

其中,role為角色代碼,可以設置其中的一個或多個,多個角色之間用逗號(,)分隔且不能有空格,其取值范圍如下:

u-文件或目錄的所有者;

g-文件或目錄所在組的用戶;

o-其他用戶;

a-所有用戶,包含u、g、o,只能單獨使用。

auth為權限碼組合,例如讀寫執行權限為rwx,讀和執行權限為rx,寫權限為w,根據需要選擇。

source為文件或目錄的路徑名稱。

下面是幾個實例:

chmod u=rwx,g=rx,o=rx /home/dubhlinn

chmod o=r /home/dubhlinn/description.txt

chmod a=rwx /home/public

(2) 使用加減號添加或減少權限

chmod role+auth source

chmod role-auth source

role、auth、source的含義同上,同樣可以設置一個或多個角色,以下是幾個實例:

chmod u-x,g+rw /home/dubhlinn/description.txt

chmod a+w /home/public

chmod u+rwx,g-x,o-x /home/dubhlinn

(3) 使用數字賦值

chmod xyz source

其中,x、y、z是三個數字,分別表示文件或目錄的所有者、所在組的用戶、其他組的用戶的"權限值"。

權限值是這樣計算的:

r=4

w=2

x=1

將這個用戶的權限代碼對應的數字加起來就是"權限值",所以其取值范圍可能是0、1、2、3、4、5、6、7。

例如,chmod 754 /home/void 等價於 chmod u=rwx,g=rx,o=r /home/void。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM