Linux 用戶&文件權限

在linux中的每一個文件或目錄都包含有訪問權限,這些訪問權限決定了誰能訪問和如何訪問這些文件和目錄。用戶可以利用Linux系統提供的chmod命令來重新設定不同的訪問權限。也可以利用chown命令來更改某個文件或目錄的所有者。利用chgrp命令來更改某個文件或目錄的用戶組。

可以通過以下三種方式限制方位權限:

  • 只用戶自己訪問:
  • 允許一個預先指定的用戶組中的用戶訪問
  • 允許系統中的任何用戶訪問

同時,用戶能夠控制一個文件或目錄的訪問程度,一個文件或目錄可能有讀、寫以及執行權限;當創建一個文件時,系統會自動賦予文件的所有者讀和寫的權限,這樣可以允許所有者能夠顯示文件內容和修改文件。文件所有者可以將這些權限改變爲任何他想指定的權限。

每一個用戶都有它自身的讀、寫和執行權限。

  • 第一套權限控制訪問自己的文件權限,即所有者權限。
  • 第二套權限控制用戶組訪問其中一個用戶的文件的權限。
  • 第三套權限控制其他所有用戶訪問一個用戶的文件的權限,這三套權限賦予用戶不同類型(即所有者、用戶組和其他用戶)的讀、寫及執行權限就構成了一個有9種類型的權限組。

有三種不同類型的用戶可對文件或目錄進行訪問:文件所有者,同組用戶、其他用戶。

所有者一般是文件的創建者。所有者可以允許同組用戶有權訪問文件,還可以將文件的訪問權限賦予系統中的其他用戶。在這種情況下,系統中每一位用戶都能訪問該用戶擁有的文件或目錄。

查看文件權限:ls -l file

bash-3.2# ls -l test.html 
-rw-r--r--  1 tongkun  staff  208 12 26 21:18 test.html

說明:

  • 橫線代表空許可
  • r代表只讀
  • w代表寫
  • x代表可執行

注意這裏有10個位置,第一個字符制定文件類型。如果第一個字符是橫線,表示一個非目錄文件,如果是d,表示是一個目錄。

-rw-r–r– 說明:

test.html是一個普通文件,對屬主有讀寫權限,對屬同組用戶有隻讀權限,對其他用戶有隻讀權限。

二、使用chmod的字母和數字改變文件或目錄的訪問權限

  • chmod命令用於改變文件活目錄的訪問權限
  • chmod有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
  • 文字設定法

    chmod [who] [+ | - | =] [mode] 文件名

命令中各選項的含義是:

  • u 表示用戶(user),即文件和目錄的所有者
  • g 表示同組用戶(group),即與文件屬主有相同id的所有用戶
  • o 表示其他用戶
  • a 表示所有用戶,他是系統的默認值

操作符:

  • + 添加某個權限
  • - 取消某個權限
  • = 賦予給定權限並取消其他所有權限(如果有的話)

mode所表示的權限可用於下注字符的任意組合:

  • r 可讀
  • w 可寫
  • x 可執行
  • X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
  • s 在文件執行時把進程的屬主或組ID置爲該文件的文件屬主。方式“u+s”設置文件的用戶ID位,“g+s”設置組ID位。
  • t 保存程序的文本到交換設備上。
  • u 與文件屬主擁有一樣的權限。
  • g 與和文件屬主同組的用戶擁有一樣的權限。
  • o 與其他用戶擁有一樣的權限。

文件名:以空格分開的要改變權限的文件列表,支持通配符。

在一個命令行中可給出多個權限方式,其間用逗號隔開。例如:chmod g+r,o+r example

數字設定法

用數字表示的屬性的含義:0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,然後將其相加。所以數字屬性的格式應爲3個從0到7的八進制數,其順序是(u)(g)(o)。

例如,如果想讓某個文件的屬主有“讀/寫”二種權限,需要把4(可讀)+2(可寫)=6(讀/寫)。

數字設定法的一般形式爲:

chmod [mode] 文件名¼

文件和目錄的權限表示,是用rwx這三個字符來代表所有者、用戶組和其他用戶的權限。有時候,字符似乎過於麻煩,因此還有另外一種方法是以數字來表示權限,而且僅需三個數字。

  • r:對應數值4
  • w:對應數值2
  • x:對應數值1
  • -:對應數值0

只是包rwx看成二進制數。有則1表示,無則0表示。所以 -rwx r-x r–則表示爲111 101 100 十進制數爲754

自己 同組用戶 其他用戶
可讀 是 是 是
可寫 是 是
可執行

那麼,我們先根據上表得到權限串爲:rw-rw-r–,那麼轉換成二進制數就是110 110 100,再每三位轉換成爲一個十進制數,就得到664,因此我 們執行命令:

例如,我們想讓a.txt這個文件的權限爲:

自己 同組用戶 其他用戶
可讀 是 是 是
可寫 是 是
可執行

那麼,我們先根據上表得到權限串爲:rw-rw-r–,那麼轉換成二進制數就是110 110 100,再每三位轉換成爲一個十進制數,就得到664,因此我 們執行命令:

chmod 644 a.txt

如果一個文件的權限全部放開,則權限數字即爲 777

chmod 777 a.txt

如果想一次修改某個目錄下所有文件的權限,包括子目錄中的文件權限也要修改,要使用參數-R表示啓動遞歸處理。

chomd -R 777 /Hexo

則Hexo目錄下所有文件對所有用戶授予讀寫和執行的權限。

三、是用chown更改文件的擁有者權限

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

命令說明

命令格式:

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

命令功能:

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

命令參數:

必要參數:

  • -c 顯示更改的部分的信息
  • -f 忽略錯誤信息
  • -h 修復符號鏈接
  • -R 處理指定目錄以及其子目錄下的所有文件
  • -v 顯示詳細的處理信息
  • -deference 作用於符號鏈接的指向,而不是鏈接文件本身

選擇參數:

  • --reference=<目錄或文件> 把指定的目錄/文件作爲參考,把操作的文件/目錄設置成參考文件/目錄相同擁有者和羣組
  • --from=<當前用戶:當前羣組> 只有當前用戶和羣組跟指定的用戶和羣組相同時才進行改變
  • --help 顯示幫助信息
  • --version 顯示版本信息

命令實例

實例1. 改變擁有者和羣組

命令:chown tongkun:everyone Mysql日誌分析.md
說明:更改擁有者爲tongkun, 羣組爲everyone羣組

實例2. 更改目錄的擁有者和羣組

命令:chown -R tongkun:everyone dir
說明:更改目錄以及子目錄子文件的擁有者和羣組

參考:

http://www.cnblogs.com/avril/archive/2010/03/23/1692809.html

http://blog.chinaunix.net/uid-25052030-id-174343.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章