1. 程式人生 > 實用技巧 >Linux_使用者、組及許可權管理

Linux_使用者、組及許可權管理

Linux系統是一個多使用者、多工的作業系統!所謂的多使用者是指多人同時使用系統資源、多工則是指同時執行多個程式。

使用者分為管理員和普通使用者,普通使用者又分為系統使用者和登入使用者。其中管理員的許可權是最大的,管理員具有在有限資源的情況下給不同使用者分配資源,以及對不同使用者的監控、管理。系統使用者僅執行服務程式,而登入使用者是系統資源的正常使用者

在不同的CentOS版本上每個使用者的使用者標識(UID)也是不一樣的。具有一定的限制。而管理員的UID是"0"。

如在,CentOS 5,6版本上 系統使用者的UID是1-499 普通使用者的UID是500+

CentOS 7.0版本上 系統使用者的UID是1-999 普通使用者的UID的1000+


實現使用者賬號的管理,要完成的工作主要有:使用者賬號的新增、修改、刪除、密碼管理、使用者組的管理……等等,下面將會介紹到這些!

一、使用者管理

使用者賬號的管理工作主要涉及到賬號的新增、修改和刪除。

1、新增新的使用者賬號使用"useradd"命令,常規選項如下。

-g:指定使用者的使用者組 -G:指定使用者的附加組

-c:註釋資訊 -d:指定使用者的家目錄

-m:強制建立家目錄 -s:使用者登入的Shell名

例:

wKiom1bgDfCivuTmAAATqyQXP2w208.png

如上圖所示,新建一個使用者"lweim",其登入Shell名是"bin/ksh"

,主目錄是"/home/lweim";另一個新建使用者"slackware",其登入Shell是"/bin/bash",主目錄是"/usr/slackware"

注意:新建使用者"useradd"後面加"-d"和不加"-d"或加"-s"和不加"-s"是不同的。不加"-d"則是系統預設的家目錄"/home/lweim"。加了"-d"則是指定的家目錄"/usr/slackware"

不加"-s"則是系統預設的登入Shell,加"-s"則是指定的登入Shell

2、如過一個賬號不在使用,可以從系統中刪除掉,刪除一個賬號要使用到"userdel"命令,常規選項如下。

-r:一併刪除家目錄

例:

wKioL1bgFL-Sq7XeAAAogq2dO-g388.png

由圖可知。在刪除使用者"wangtc"時沒有加"-r",其還有家目錄。

在刪除使用者"wangzix"時加了"-r",其家目錄一併刪除。


3.使用者的修改。就是修改使用者的相關屬性。如家目錄、使用者組、登入Shell……等等,使用者修改要使用"usermod"命令,常規選項如下。

-c:註釋資訊 d-:修改家目錄的位置

-s:修改登入Shell名

例:

wKioL1bgFqTxIKoMAAAPfOMs_VQ996.png

使用"usermod"命令後,使用者"lweim"的家目錄從"/home/lweim"變更成"/usr/lweim"。登入Shell名從"/bin/ksh"變更成"/bin/bash"


4.密碼管理;

使用者管理的一項重要內容就是密碼管理,超級使用者(管理員)可以改變自己和其他使用者的密碼,普通使用者只能修改自己的密碼。其修改密碼需要用到"passwd"命令,常規選項如下;

-l:鎖定密碼 -u:解鎖密碼

-d:清除密碼

例:

wKiom1bgGgrDBbAkAAApBwTQjdw701.png



二、使用者組管理

每一個使用者都有一個使用者組,也可以擁有多個附加組(即額外組)。使用者組的管理涉及到使用者組的新增、修改和刪除。

1、增加一個新的使用者組使用"groupadd"命令,常規選項如下;

-g:指定新使用者組的組標識號 -r:建立一個系統組

例:

wKiom1bgHCTQA-FHAAAQWSof4wY198.png

第一條命令是建立了一個名為"group1"的使用者組,其組標識號為1001;

第二條命令是建立了一個名為"group2"的系統組,其組標識號為986;


2、修改使用者組的屬性使用"groupmod"命令,常規選項如下;

-g:為使用者組指定一個新的組標識號 -n:為使用者組改一個新名字

例:

wKioL1bgIBLgAPssAAATJ0ItfFA339.png

此命令是將使用者組"group4"命名為新的名字"group5",且使用者組標識號從"2223"變更成"3333"。


3、如果要刪除一個已有的使用者組,要使用"groupdel"命令。

例:

wKioL1bgITXSE_wqAAAVSvCRATE960.png

此使用者的命令是將使用者組"group5"刪除。


三、許可權管理

Linux是一種典型的多使用者系統,不同的使用者處於不同的地位,也就具有不同的許可權。每位使用者訪問同一檔案或目錄的許可權也就不同。

我們可以使用命令"ll""ls -l"來顯示一個檔案或目錄的屬性及所屬的使用者和組。常規選項如下;

例:

wKiom1bgJSKhIGTiAAA9XDl40Wc051.png

例項中,目錄"etc"檔案的第一個屬性用"d"來表示,"d"在Linux中代表該檔案是一個目錄檔案。其他屬性如下;

[-]:表示檔案

[l]:表示為連結文件

[b]:表示為裝置檔案裡面的可供儲存的介面裝置(可隨機存取裝置)

[c]:表示為裝置檔案裡面的串列埠裝置,例如鍵盤、滑鼠。

"wKioL1bgJkbRUzgkAAABNr1pI6k584.png",除去第一個字元"d",接下來的字元中,以三位為一組,左三位是屬主的訪問許可權(user)、中三位是屬組的所有使用者的訪問許可權(group)、右三位是其他使用者的訪問許可權(others)。且均為[rwx]的三個引數組合。其中"r"代表可讀許可權、"w"代表可寫許可權、"x"代表可執行許可權。"-"代表沒有任何許可權。

注意:這三個許可權的位置不會改變,且存在兩種狀態“要麼有許可權(用1表示)、要麼沒許可權(用0表示)”。八進位制的數都是由三位二進位制的陣列成,如下;

---:000 0

--x:001 1

-w-:010 2

-wx:011 3

r--:100 4

r-x:101 5

rw-:110 6

rwx:111 7

例:wKiom1bgKhnS6y92AAAEejhPkOg775.png

目錄"etc"的許可權是[rwxr-xr-x]

user=rwx=5 group=r-x=5 others=r-x=5

即目錄"etc"的許可權可表示為"755"


1、想要變更許可權,有三種方法。都需要使用"chmod"命令,常規選項如下;

-R:進行遞迴的變更,即目錄本身和目錄以下的檔案的許可權會一同改變。

(方法1):使用"u=,g=,o=或ug=等等"的方法來改變許可權!

例:

wKiom1bgL0_wZgtmAAAxYbVAIP4056.png

上圖所示,此命令使"etc"的許可權從[rwxrwxr-x]變更成[rw-rw--x]。但是沒有更改目錄下的檔案。想要更改連同目錄下檔案的屬性一起更改,需要使用"-R"選項。如下圖

wKioL1bgMcuDWwnMAABFxU9Xa64685.png

(方法二):使用"u+,g+,o+或ug+等等"的方法來改變許可權!

例:由(方法1)中的圖所知目錄"etc"的許可權是[drw-rw---x],現在想要變更許可權為[drwxrwxr-x],方法如下:

例:

wKioL1bgM96xrEVVAAAPSeSR8Hk646.png

由上圖可得,目錄本身即目錄下檔案的許可權都變更為[drwxrwxr-x]


(方法三):上面說到,每一個許可權都可以表達成一個八進位制的數。例如"775"可表示許可權為[drwxrwxr-x]、664可表示許可權為[drw-rw-r--]。所以我們可以依據這個來改變目錄及檔案的許可權。如果想把檔案及目錄的許可權改為770(drwxrwx---),則方法如下;

例:

wKioL1bgNYKy4mtlAAAQh4OxY2Q030.png

圖中顯示目錄及目錄下的檔案的許可權都改變為770.即[drwxrwx---];


注意:方法一和方法二中的"u="和"u+"是不同的。

"u="是某一組中的三位許可權同時改變

"u+"是改變某一組中某一位的許可權

例如:許可權為"r-x-wx---"

"u=r"則顯示為[r---wx---]

"u+w"則顯示為[rwx-wx---]




2、更改目錄或檔案的屬組需要用到"chgrp"命令,常規選項如下。

-R:目錄下的所有檔案的屬組一同改變。

例:

wKioL1bgydvx0nFQAAAtweoZOfM174.png

圖中顯示,目錄"etc"及目錄下所有檔案的屬組都從"root"變更成"mageedu"


3、更改目錄或檔案的屬主需要用到"chowm"命令,也可以同時更改目錄或檔案的屬組。常規選項如下;

-R:目錄下的所有檔案的屬組一同改變。

例:

wKiom1bgy8XDVlGNAAAwnzWjoas478.png

圖中目錄"etc"及目錄下所有檔案的屬主都從"root"變更成"wtc",屬組都從"mageedu"變更成"lweimin"

轉載於:https://blog.51cto.com/wangtianci/1749443