普通用戶切換root用戶「linux用戶許可權管理命令」

Ubuntu 是一個多用戶系統,我們可以給不同的使用者創建不同的用戶賬號,每個用戶使用各自的賬號登陸,使用用戶賬號的目的一是方便系統管理員管理,控制不同用戶對系統的訪問許可權,另一方面是為用戶提供安全性保護。

我們前面在安裝 Ubuntu 系統的時候被要求創建一個賬戶,當我們創建好賬號以後,系統會在目錄/home 下以該用戶名創建一個文件夾,所有與該用戶有關的文件都會被存儲在這個文件文件夾中。同樣的,創建其它用戶賬號的時候也會在目錄/home 下生成一個文件夾來存儲該用戶的文件,下圖就是「zuozhongkai」這個賬戶的文件夾。Linux用戶許可權管理及用戶許可權管理命令操作

用戶賬號根目錄

裝系統的時候創建的用戶其許可權比後面創建的用戶大一點,但是沒有 root 用戶許可權大,Ubuntu 下用戶類型分為以下 3 類:

● 初次創建的用戶,此用戶可以完成比普通用戶更多的功能。

● root 用戶,系統管理員,系統中的玉皇大帝,擁有至高無上的權利。

● 普通用戶,安裝完操作系統以後被創建的用戶。

以上三種用戶,每個用戶都有一個 ID 號,稱為 UID,操作系統通過 UID 來識別是哪個用戶,用戶相關信息可以在文件/etc/passwd 中查看到,如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

password文件內容

從配置文件 passwd 中可以看到,每個用戶名後面都有兩個數字,比如用戶「zuozhongkai」後面「1000:1000」,第一個數字是用戶的 ID,另一個是用戶的 GID,也就是用戶組 ID。Ubunut裡面每個用戶都屬於一個用戶組裡面,用戶組就是一組有相同屬性的用戶集合。

在使用Windows 的時候我們很少接觸到用戶許可權,最多就是打開某個軟體出問題的時候會選擇以「管理員身份」打開。Ubuntu 下我們會常跟用戶許可權打交道,許可權就是用戶對於系統資源的使用限制情況,root 用戶擁有最大的許可權,可以為所欲為,裝系統的時候創建的用戶擁有root 用戶的部分許可權,其它普通用戶的許可權最低。對於我們做嵌入式開發的人一般不關注用戶的許可權問題,因為嵌入式基本是單用戶,做嵌入式開發重點關注的是文件的許可權問題。

對於一個文件通常有三種許可權:讀(r)、寫(w)和執行(x),使用命令「ls -l」可以查看某個目錄下所有文件的許可權信息,如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

文件許可權信息

在圖中我們以文件test.c 為例講解,文件 test.c 文件信息如下:

-rw-rw-r-- 1 zuozhongkai zuozhongkai 0 12 月 25 20:44 test.c

其中「-rw-rw-r–」表示文件許可權與用戶和用戶組之間的關係,第一位表示文件類型。剩下的 9 位以 3 位為一組,分別表示文件擁有者的許可權,文件擁有者所在用戶組的許可權以及其它用戶許可權。後面的「zuozhongkai zuozhongkai」分別代表文件擁有者(用戶)和該用戶所在的用戶組,因此文件 test.c 的許可權情況如下:

①、文件 test.c 的擁有者是用戶 zuozhongkai,其對文件 tesst.c 的許可權是「rw-」,也就是對該文件擁有讀和寫兩種許可權。

②、用戶 zuozhongkai 所在的用戶組也叫做 zuozhongkai,其組內用戶對於文件 test.c 的許可權是「rw-」,也是擁有讀和寫這兩種許可權。

③、其它用戶對於文件 test.c 的許可權是「r–」,也就是只讀許可權。

對於文件,可讀許可權表示可以打開查看文件內容,可寫許可權表示可以對文件進行修改,可執行許可權就是可以運行此文件(如果是軟體的話)。對於文件夾,擁有可讀許可權才可以使用命令ls查看文件夾中的內容,擁有可執行許可權才能進入到文件夾內部。

如果某個用戶對某個文件不具有相應的許可權的話就不能進行相應的操作,比如根目錄「/」下的文件只有root 用戶才有許可權進行修改,如果以普通用戶去修改的話就會提示沒有許可權。比如我們要在根目錄「/」 創建一個文件 mytest,使用命令「touch mytest」,結果如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

創建文件

在圖中,我以用戶「zuozhongkai」在根目錄「/」創建文件 mytest,結果提示我無法創建「mytest」,因為許可權不夠,因為只有 root 用戶才能在根目錄「/」下創建文件。我們可以使用命令「sudo」命令暫時切換到 root 用戶,這樣就可以在根目錄「/」下創建文件 mytest 了,如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

使用sudo命令創建文件

在圖中我們使用命令「sduo」以後就可以在根目錄「/」創建文件 mytest,在進行其它的操作的時候,遇到提示許可權不夠的時候都可以使用 sudo 命令暫時以 root 用戶身份去執行。上面我們講了,文件的許可權有三種:讀(r)、寫(w)和執行(x),除了用 r、w 和 x 表示以外,我們也可以使用二進位數表示,三種許可權就可以使用 3 位二進位數來表示,一種許可權對應一個二進位位,如果該位為 1 就表示具備此許可權,如果該位為 0 就表示沒不具備此許可權,如表所示:Linux用戶許可權管理及用戶許可權管理命令操作

文件許可權數字表示方法

如果做過單片機開發的話,就會發現和單片機裡面的寄存器位一樣,將三種許可權 r、w 和x進行不同的組合,即可得到不同的二進位數和八進位數,3 位許可權可以組出 8 種不同的許可權組合,如表所示:Linux用戶許可權管理及用戶許可權管理命令操作

文件所有許可權組合

中許可權所對應的八進位數字就是每個許可權對應的位相加,比如許可權 rwx 就是4+2+1=7。前面的文件 test.c 其許可權為「rw-rw-r–」,因此其十進位表示就是:664。

表中許可權所對應的八進位數字就是每個許可權對應的位相加,比如許可權 rwx 就是

4+2+1=7。前面的文件 test.c 其許可權為「rw-rw-r–」,因此其十進位表示就是:664。

另外我們也開始使用 a、u、g 和 o 表示文件的歸屬關係,用=、+和-表示文件許可權的變化,如表所示:Linux用戶許可權管理及用戶許可權管理命令操作

許可權修改字母表示方式

對於文件 test.c,我們想要修改其歸屬用戶(zuozhongkai)對其擁有可執行許可權,那麼就可以使用:u+x。如果希望設置歸屬用戶及其所在的用戶組都對其擁有可執行許可權就可以使用:gu+x。

我們也可以使用 Shell 來操作文件的許可權管理,主要用到「chmod」和「chown」這兩個命令,我們一個一個來看。

1、許可權修改命令 chmod

命令「chmod」用於修改文件或者文件夾的許可權,許可權可以使用前面講的數字表示也可以使用字母表示,命令格式如下:

 chmod [參數] [文件名/目錄名] 

主要參數如下:

-c 效果類似「-v」參數,但僅回顯更改的部分。

-f 不顯示錯誤信息。

-R 遞歸處理,指定目錄下的所有文件及其子文件目錄一起處理。

-v 顯示指令的執行過程。

我們先來學習以下如何使用命令「chmod」修改一個文件的許可權,在用戶根目錄下創建一個文件 test,然後查看其默認許可權,操作如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

創建文件test

在圖中我們創建了一個文件:test,這個文件的默認許可權為「rw-rw-r–」,我們將其許可權改為「rwxrw-rw」,對應數字就是 766,操作如下:Linux用戶許可權管理及用戶許可權管理命令操作

修改許可權

在圖中,我們修改文件 test 的許可權為 766,修改完成以後的 test 文件許可權為「rwxrw-rw-」,和我們設置的一樣,說明許可權修改成功。

上面我們是通過數字來修改許可權的,我們接下來使用字母來修改許可權,操作如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

使用字母修改文件許可權

上面兩個例子都是修改文件的許可權,接下來我們修改文件夾的許可權,新建一個 test 文件夾,在文件夾 test 裡面創建 a.c、b.c 和 c.c 三個文件,如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

test文件夾

在圖中 test 文件夾下的文件 a.c、b.c 和 c.c 的許可權均為「rw-rw-r–」,我們將 test 文件夾下的所有文件許可權都改為「rwxrwxrwx」,也就是數字 777,操作如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

遞歸修改文件夾許可權

2、文件歸屬者修改命令 chown

命令 chown 用來修改某個文件或者目錄的歸屬者用戶或者用戶組,命令格式如下:

 chown [參數] [用戶名.<組名>] [文件名/目錄] 

其中[用戶名.<組名>]表示要將文件或者目錄改為哪一個用戶或者用戶組,用戶名和組名用 「.」隔開,其中用戶名和組名中的任何一個都可以省略,命令主要參數如下:

-c 效果同-v 類似,但僅回報更改的部分。

-f 不顯示錯誤信息。

-h 只對符號連接的文件做修改,不改動其它任何相關的文件。

-R 遞歸處理,將指定的目錄下的所有文件和子目錄一起處理。

-v 顯示處理過程。

在用戶根目錄下創建一個 test 文件,查看其文件夾所屬用戶和用戶組,如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

test文件信息查詢

從圖中可以看出,文件 test 的歸屬用戶為zuozhongkai,所屬的用戶組為 zuozhongkai,將文件 test 歸屬用戶改為 root 用戶,所屬的用戶組也改為 root,操作如圖所示:Linux用戶許可權管理及用戶許可權管理命令操作

修改文件歸屬用戶和歸屬用戶組

命令 shown 同樣也可以遞歸處理來修改文件夾的歸屬用戶和用戶組,用法和命令 chown 一樣,這裡就不演示了。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/273433.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-17 14:06
下一篇 2024-12-17 14:06

相關推薦

發表回復

登錄後才能評論