tft每日頭條

 > 科技

 > linux中的文件權限的簡介

linux中的文件權限的簡介

科技 更新时间:2024-10-05 10:00:01
linux chmod命令

linux中的文件權限的簡介(命令幹貨4個Linux文件權限設置相關命令講解)1

chmod命令用于改變linux系統文件或目錄的訪問權限。用它控制文件或目錄的訪問權限。該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。

Linux系統中的每個文件和目錄都有訪問許可權限,用它來确定誰可以通過何種方式對文件和目錄進行訪問和操作。  文件或目錄的訪問權限分為隻讀,隻寫和可執行三種。以文件為例,隻讀權限表示隻允許讀其内容,而禁止對其做任何的更改操作。可執行權限表示允許将該文件作為一個程序執行。文件被創建時,文件所有者自動擁有對該文件的讀、寫和可執行權限,以便于對文件的閱讀和修改。用戶也可根據需要把訪問權限設置為需要的任何組合。  有三種不同類型的用戶可對文件或目錄進行訪問:文件所有者,同組用戶、其他用戶。所有者一般是文件的創建者。所有者可以允許同組用戶有權訪問文件,還可以将文件的訪問權限賦予系統中的其他用戶。在這種情況下,系統中每一位用戶都能訪問該用戶擁有的文件或目錄。  每一文件或目錄的訪問權限都有三組,每組用三位表示,分别為文件屬主的讀、寫和執行權限;與屬主同組的用戶的讀、寫和執行權限;系統中其他用戶的讀、寫和執行權限。當用ls -l命令顯示文件或目錄的詳細信息時,最左邊的一列為文件的訪問權限。 例如:

命令:

ls -al

輸出:

[root@localhosttest]#ll-al 總計316lrwxrwxrwx1rootroot1111-2206:58linklog.log->log2012.log -rw-r--r--1rootroot30210811-1306:03log2012.log -rw-r--r--1rootroot6111-1306:03log2013.log -rw-r--r--1rootroot011-1306:03log2014.log -rw-r--r--1rootroot011-1306:06log2015.log -rw-r--r--1rootroot011-1614:41log2016.log -rw-r--r--1rootroot011-1614:43log2017.log

我們以log2012.log為例:

-rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log

第一列共有10個位置,第一個字符指定了文件類型。在通常意義上,一個目錄也是一個文件。如果第一個字符是橫線,表示是一個非目錄的文件。如果是d,表示是一個目錄。從第二個字符開始到第十個共9個字符,3個字符一組,分别表示了3組用戶對文件或者目錄的權限。權限字符用橫線代表空許可,r代表隻讀,w代表寫,x代表可執行。

例如:- rw- r-- r--  表示log2012.log是一個普通文件;log2012.log的屬主有讀寫權限;與log2012.log屬主同組的用戶隻有讀權限;其他用戶也隻有讀權限。  确定了一個文件的訪問權限後,用戶可以利用Linux系統提供的chmod命令來重新設定不同的訪問權限。也可以利用chown命令來更改某個文件或目錄的所有者。利用chgrp命令來更改某個文件或目錄的用戶組。

chmod命令是非常重要的,用于改變文件或目錄的訪問權限。用戶用它控制文件或目錄的訪問權限。chmod命令詳細情況如下。

1. 命令格式:

chmod [-cfvR] [--help] [--version] mode file

2. 命令功能:

用于改變文件或目錄的訪問權限,用它控制文件或目錄的訪問權限。

3. 命令參數:

必要參數:

-c 當發生改變時,報告處理信息

-f 錯誤信息不輸出

-R 處理指定目錄以及其子目錄下的所有文件

-v 運行時顯示詳細處理信息選擇參數:

--reference=<目錄或者文件> 設置成具有指定目錄或者文件具有相同的權限

--version 顯示版本信息

<權限範圍> <權限設置> 使權限範圍内的目錄或者文件具有指定的權限

<權限範圍>-<權限設置> 删除權限範圍的目錄或者文件的指定權限

<權限範圍>=<權限設置> 設置權限範圍内的目錄或者文件的權限為指定的值

權限範圍:

u :目錄或者文件的當前的用戶

g :目錄或者文件的當前的群組

o :除了目錄或者文件的當前用戶或群組之外的用戶或者群組

a :所有的用戶及群組權限代号:r :讀權限,用數字4表示

w :寫權限,用數字2表示

x :執行權限,用數字1表示

- :删除權限,用數字0表示

s :特殊權限

該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。  1). 文字設定法: chmod [who] [ | - | =] [mode] 文件名2). 數字設定法  我們必須首先了解用數字表示的屬性的含義:0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,然後将其相加。所以數字屬性的格式應為3個從0到7的八進制數,其順序是(u)(g)(o)。  例如,如果想讓某個文件的屬主有“讀/寫”二種權限,需要把4(可讀) 2(可寫)=6(讀/寫)。  數字設定法的一般形式為: chmod [mode] 文件名

數字與字符對應關系如下:

r=4,w=2,x=1若要rwx屬性則4 2 1=7若要rw-屬性則4 2=6;若要r-x屬性則4 1=7。

4. 使用實例:實例1:增加文件所有用戶組可執行權限

命令:

chmod a x log2012.log

輸出:

[root@localhosttest]#ls-allog2012.log -rw-r--r--1rootroot30210811-1306:03log2012.log [root@localhosttest]#chmoda xlog2012.log [root@localhosttest]#ls-allog2012.log -rwxr-xr-x1rootroot30210811-1306:03log2012.log [root@localhosttest]#

說明:  即設定文件log2012.log的屬性為:文件屬主(u) 增加執行權限;與文件屬主同組用戶(g) 增加執行權限;其他用戶(o) 增加執行權限。

實例2:同時修改不同用戶權限

命令:

chmod ug w,o-x log2012.log

輸出:

[root@localhosttest]#ls-allog2012.log -rwxr-xr-x1rootroot30210811-1306:03log2012.log [root@localhosttest]#chmodug w,o-xlog2012.log [root@localhosttest]#ls-allog2012.log -rwxrwxr--1rootroot30210811-1306:03log2012.log

說明:  即設定文件text的屬性為:文件屬主(u) 增加寫權限;與文件屬主同組用戶(g) 增加寫權限;其他用戶(o) 删除執行權限

實例3:删除文件權限

命令:

chmod a-x log2012.log

輸出:

[root@localhosttest]#ls-allog2012.log -rwxrwxr--1rootroot30210811-1306:03log2012.log [root@localhosttest]#chmoda-xlog2012.log [root@localhosttest]#ls-allog2012.log -rw-rw-r--1rootroot30210811-1306:03log2012.log

說明: 删除所有用戶的可執行權限

實例4:使用“=”設置權限

命令:

chmod u=x log2012.log

輸出:

[root@localhosttest]#ls-allog2012.log -rw-rw-r--1rootroot30210811-1306:03log2012.log [root@localhosttest]#chmodu=xlog2012.log [root@localhosttest]#ls-allog2012.log ---xrw-r--1rootroot30210811-1306:03log2012.log

說明:

撤銷原來所有的權限,然後使擁有者具有可讀權限

實例5:對一個目錄及其子目錄所有文件添加權限

命令:

chmod -R u x test4

輸出:

[root@localhosttest]#cdtest4 [root@localhosttest4]#ls-al 總計312drwxrwxr-x2rootroot409611-1305:50. drwxr-xr-x5rootroot409611-2206:58.. -rw-r--r--1rootroot30210811-1222:54log2012.log -rw-r--r--1rootroot6111-1222:54log2013.log -rw-r--r--1rootroot011-1222:54log2014.log [root@localhosttest4]#cd.. [root@localhosttest]#chmod-Ru xtest4 [root@localhosttest]#cdtest4 [root@localhosttest4]#ls-al 總計312drwxrwxr-x2rootroot409611-1305:50. drwxr-xr-x5rootroot409611-2206:58.. -rwxr--r--1rootroot30210811-1222:54log2012.log -rwxr--r--1rootroot6111-1222:54log2013.log -rwxr--r--1rootroot011-1222:54log2014.log

說明:

遞歸地給test4目錄下所有文件和子目錄的屬主分配權限

其他一些實例:

1).

命令:

chmod 751 file

說明:

給file的屬主分配讀、寫、執行(7)的權限,給file的所在組分配讀、執行(5)的權限,給其他用戶分配執行(1)的權限

2).

命令:

chmod u=rwx,g=rx,o=x file

說明:

上例的另一種形式

3).

命令

chmod =r file

說明:

為所有用戶分配讀權限

3).

命令:

chmod 444 file

說明:

同上例

4).

命令:

chmod a-wx,a r file

說明:

同上例

- - - - - - - - - - -

chgrp命令

在lunix系統裡,文件或目錄的權限的掌控以擁有者及所訴群組來管理。可以使用chgrp指令取變更文件與目錄所屬群組,這種方式采用群組名稱或群組識别碼都可以。Chgrp命令就是change group的縮寫!要被改變的組名必須要在/etc/group文件内存在才行。

1.命令格式:

chgrp [選項] [組] [文件]

2.命令功能:

chgrp命令可采用群組名稱或群組識别碼的方式改變文件或目錄的所屬群組。使用權限是超級用戶。

3.命令參數:

必要參數:

-c 當發生改變時輸出調試信息

-f 不顯示錯誤信息

-R 處理指定目錄以及其子目錄下的所有文件

-v 運行時顯示詳細的處理信息

--dereference 作用于符号鍊接的指向,而不是符号鍊接本身

--no-dereference 作用于符号鍊接本身

選擇參數:

--reference=<文件或者目錄>

--help 顯示幫助信息

--version 顯示版本信息

4.使用實例:

實例1:改變文件的群組屬性

命令:

chgrp -v bin log2012.log

輸出:

[root@localhosttest]#ll ---xrw-r--1rootroot30210811-1306:03log2012.log [root@localhosttest]#chgrp-vbinlog2012.log “log2012.log”的所屬組已更改為bin [root@localhosttest]#ll ---xrw-r--1rootbin30210811-1306:03log2012.log

說明:

将log2012.log文件由root群組改為bin群組

實例2:根據指定文件改變文件的群組屬性

命令:

chgrp --reference=log2012.log log2013.log

輸出:

[root@localhosttest]#ll ---xrw-r--1rootbin30210811-1306:03log2012.log -rw-r--r--1rootroot6111-1306:03log2013.log [root@localhosttest]#chgrp--reference=log2012.loglog2013.log [root@localhosttest]#ll ---xrw-r--1rootbin30210811-1306:03log2012.log -rw-r--r--1rootbin6111-1306:03log2013.log

說明:

改變文件log2013.log 的群組屬性,使得文件log2013.log的群組屬性和參考文件log2012.log的群組屬性相同

實例3:改變指定目錄以及其子目錄下的所有文件的群組屬性

命令:

輸出:

[root@localhosttest]#ll drwxr-xr-x2rootroot409611-3008:39test6 [root@localhosttest]#cdtest6 [root@localhosttest6]#ll ---xr--r--1rootroot30210811-3008:39linklog.log ---xr--r--1rootroot30210811-3008:39log2012.log -rw-r--r--1rootroot6111-3008:39log2013.log -rw-r--r--1rootroot011-3008:39log2014.log -rw-r--r--1rootroot011-3008:39log2015.log -rw-r--r--1rootroot011-3008:39log2016.log -rw-r--r--1rootroot011-3008:39log2017.log [root@localhosttest6]#cd.. [root@localhosttest]#chgrp-Rbintest6 [root@localhosttest]#cdtest6 [root@localhosttest6]#ll ---xr--r--1rootbin30210811-3008:39linklog.log ---xr--r--1rootbin30210811-3008:39log2012.log -rw-r--r--1rootbin6111-3008:39log2013.log -rw-r--r--1rootbin011-3008:39log2014.log -rw-r--r--1rootbin011-3008:39log2015.log -rw-r--r--1rootbin011-3008:39log2016.log -rw-r--r--1rootbin011-3008:39log2017.log [root@localhosttest6]#cd.. [root@localhosttest]#ll drwxr-xr-x2rootbin409611-3008:39test6 [root@localhosttest]#

說明:

改變指定目錄以及其子目錄下的所有文件的群組屬性

實例4:通過群組識别碼改變文件群組屬性

命令:

chgrp -R 100 test6

輸出:

[root@localhosttest]#chgrp-R100test6 [root@localhosttest]#ll drwxr-xr-x2rootusers409611-3008:39test6 [root@localhosttest]#cdtest6 [root@localhosttest6]#ll ---xr--r--1rootusers30210811-3008:39linklog.log ---xr--r--1rootusers30210811-3008:39log2012.log -rw-r--r--1rootusers6111-3008:39log2013.log -rw-r--r--1rootusers011-3008:39log2014.log -rw-r--r--1rootusers011-3008:39log2015.log -rw-r--r--1rootusers011-3008:39log2016.log -rw-r--r--1rootusers011-3008:39log2017.log [root@localhosttest6]#

說明:

通過群組識别碼改變文件群組屬性,100為users群組的識别碼,具體群組和群組識别碼可以去/etc/group文件中查看

- - - - - - - - - - -

chown命令

chown将指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶ID;組可以是組名或者組ID;文件是以空格分開的要改變權限的文件列表,支持通配符。系統管理員經常使用chown命令,在将文件拷貝到另一個用戶的名錄下之後,讓用戶擁有使用該文件的權限。

1.命令格式:

chown [選項]... [所有者][:[組]] 文件...

2.命令功能:

    通過chown改變文件的擁有者和群組。在更改文件的所有者或所屬群組時,可以使用用戶名稱和用戶識别碼設置。普通用戶不能将自己的文件改變成其他的擁有者。其操作權限一般為管理員。

  3.命令參數:

  必要參數:

-c 顯示更改的部分的信息

-f 忽略錯誤信息

-h 修複符号鍊接

-R 處理指定目錄以及其子目錄下的所有文件

-v 顯示詳細的處理信息

-deference 作用于符号鍊接的指向,而不是鍊接文件本身

  選擇參數:

--reference=<目錄或文件> 把指定的目錄/文件作為參考,把操作的文件/目錄設置成參考文件/目錄相同擁有者和群組

--from=<當前用戶:當前群組> 隻有當前用戶和群組跟指定的用戶和群組相同時才進行改變

--help 顯示幫助信息

--version 顯示版本信息

4.使用實例:

  實例1:改變擁有者和群組

  命令:

chown mail:mail log2012.log

  輸出:  

[root@localhosttest6]#ll ---xr--r--1rootusers30210811-3008:39linklog.log ---xr--r--1rootusers30210811-3008:39log2012.log -rw-r--r--1rootusers6111-3008:39log2013.log -rw-r--r--1rootusers011-3008:39log2014.log -rw-r--r--1rootusers011-3008:39log2015.log -rw-r--r--1rootusers011-3008:39log2016.log -rw-r--r--1rootusers011-3008:39log2017.log [root@localhosttest6]#chownmail:maillog2012.log [root@localhosttest6]#ll ---xr--r--1rootusers30210811-3008:39linklog.log ---xr--r--1mailmail30210811-3008:39log2012.log -rw-r--r--1rootusers6111-3008:39log2013.log -rw-r--r--1rootusers011-3008:39log2014.log -rw-r--r--1rootusers011-3008:39log2015.log -rw-r--r--1rootusers011-3008:39log2016.log -rw-r--r--1rootusers011-3008:39log2017.log [root@localhosttest6]#

  說明:

  實例2:改變文件擁有者和群組

  命令:

chown root: log2012.log

  輸出:    

[root@localhosttest6]#ll 總計604 ---xr--r--1rootusers30210811-3008:39linklog.log ---xr--r--1mailmail30210811-3008:39log2012.log -rw-r--r--1rootusers6111-3008:39log2013.log -rw-r--r--1rootusers011-3008:39log2014.log -rw-r--r--1rootusers011-3008:39log2015.log -rw-r--r--1rootusers011-3008:39log2016.log -rw-r--r--1rootusers011-3008:39log2017.log [root@localhosttest6]#chownroot:log2012.log [root@localhosttest6]#ll 總計604 ---xr--r--1rootusers30210811-3008:39linklog.log ---xr--r--1rootroot30210811-3008:39log2012.log -rw-r--r--1rootusers6111-3008:39log2013.log -rw-r--r--1rootusers011-3008:39log2014.log -rw-r--r--1rootusers011-3008:39log2015.log -rw-r--r--1rootusers011-3008:39log2016.log -rw-r--r--1rootusers011-3008:39log2017.log [root@localhosttest6]#

  說明:

  實例3:改變文件群組

  命令:

chown :mail log2012.log

  輸出:  

[root@localhosttest6]#ll 總計604 ---xr--r--1rootusers30210811-3008:39linklog.log ---xr--r--1rootroot30210811-3008:39log2012.log -rw-r--r--1rootusers6111-3008:39log2013.log -rw-r--r--1rootusers011-3008:39log2014.log -rw-r--r--1rootusers011-3008:39log2015.log -rw-r--r--1rootusers011-3008:39log2016.log -rw-r--r--1rootusers011-3008:39log2017.log [root@localhosttest6]#chown:maillog2012.log [root@localhosttest6]#ll 總計604 ---xr--r--1rootusers30210811-3008:39linklog.log ---xr--r--1rootmail30210811-3008:39log2012.log -rw-r--r--1rootusers6111-3008:39log2013.log -rw-r--r--1rootusers011-3008:39log2014.log -rw-r--r--1rootusers011-3008:39log2015.log -rw-r--r--1rootusers011-3008:39log2016.log -rw-r--r--1rootusers011-3008:39log2017.log

  說明:

  實例4:改變指定目錄以及其子目錄下的所有文件的擁有者和群組

  命令:

chown -R -v root:mail test6

  輸出:  

[root@localhosttest]#ll drwxr-xr-x2rootusers409611-3008:39test6 [root@localhosttest]#chown-R-vroot:mailtest6 “test6/log2014.log”的所有者已更改為root:mail “test6/linklog.log”的所有者已更改為root:mail “test6/log2015.log”的所有者已更改為root:mail “test6/log2013.log”的所有者已更改為root:mail “test6/log2012.log”的所有者已保留為root:mail “test6/log2017.log”的所有者已更改為root:mail “test6/log2016.log”的所有者已更改為root:mail “test6”的所有者已更改為root:mail [root@localhosttest]#ll drwxr-xr-x2rootmail409611-3008:39test6 [root@localhosttest]#cdtest6 [root@localhosttest6]#ll 總計604 ---xr--r--1rootmail30210811-3008:39linklog.log ---xr--r--1rootmail30210811-3008:39log2012.log -rw-r--r--1rootmail6111-3008:39log2013.log -rw-r--r--1rootmail011-3008:39log2014.log -rw-r--r--1rootmail011-3008:39log2015.log -rw-r--r--1rootmail011-3008:39log2016.log -rw-r--r--1rootmail011-3008:39log2017.log

  說明:

- - - - - - - - - - -

/etc/group文件詳解

Linux /etc/group文件與/etc/passwd和/etc/shadow文件都是有關于系統管理員對用戶和用戶組管理時相關的文件。linux /etc/group文件是有關于系統管理員對用戶和用戶組管理的文件,linux用戶組的所有信息都存放在/etc/group文件中。具有某種共同特征的用戶集合起來就是用戶組(Group)。用戶組(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件。

将用戶分組是Linux系統中對用戶進行管理及控制訪問權限的一種手段。每個用戶都屬于某個用戶組;一個組中可以有多個用戶,一個用戶也可以屬于不 同的組。當一個用戶同時是多個組中的成員時,在/etc/passwd文件中記錄的是用戶所屬的主組,也就是登錄時所屬的默認組,而其他組稱為附加組。

用戶組的所有信息都存放在/etc/group文件中。此文件的格式是由冒号(:)隔開若幹個字段,這些字段具體如下:

組名:口令:組标識号:組内用戶列表

具體解釋:

組名:

組名是用戶組的名稱,由字母或數字構成。與/etc/passwd中的登錄名一樣,組名不應重複。

口令:

口令字段存放的是用戶組加密後的口令字。一般Linux系統的用戶組都沒有口令,即這個字段一般為空,或者是*。

組标識号:

組标識号與用戶标識号類似,也是一個整數,被系統内部用來标識組。别稱GID.

組内用戶列表:

是屬于這個組的所有用戶的列表,不同用戶之間用逗号(,)分隔。這個用戶組可能是用戶的主組,也可能是附加組。

使用實例:

輸出:

[root@localhosttest6]#cat/etc/group root:x:0:root,linuxsir bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin

說明:

我們以root:x:0:root,linuxsir 為例: 用戶組root,x是密碼段,表示沒有設置密碼,GID是0,root用戶組下包括root、linuxsir以及GID為0的其它用戶。

最後,希望這篇文章對大家有所幫助~喜歡的話就轉發到朋友圈吧~

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved