linux下的許可權控制

來源:互聯網
上載者:User

標籤:

終於還是要弄伺服器了,這是多年前用fedora的時候整理的,也貼出來,順便也再複習一下。

 

先來瞭解一下檔案屬性,
在shell環境裡輸入:ls -l 可以查看目前的目錄檔案。如:
drwxr-xr-x. 14 root root  4096 Apr  5 18:26 usr
分別對應的是:
檔案屬性 串連數 檔案擁有者 所屬群組 檔案大小 檔案修改時間 檔案名稱
這裡r是可讀,w可寫,x 可執行,其中檔案屬性分為四段,---- --- --- 10個位置
例如:
  d   rwx   r-x  r-x
第一個字元指定了檔案類型。在通常意義上,一個目錄也是一個檔案。如果第一個字元是橫線,表示是一個非目錄的檔案。如果是d,表示是一個目錄。
第二段是檔案擁有者的屬性,
第三段是檔案所屬群組的屬性,
第四段是對於其它使用者的屬性,
如上面檔案夾“usr” 的存取權限,表示檔案夾“usr” 是一個目錄檔案;檔案夾“usr” 的屬主有讀寫可執行許可權;與檔案夾“usr” 屬主同組的使用者只有讀和可執行許可權;其他使用者也有讀和可執行許可權。

確定了一個檔案的存取權限後,使用者可以利用Linux系統提供的chmod命令來重新設定不同的存取權限。也可以利用chown命令來更改某個檔案或目錄的所有者。利用chgrp命令來更改某個檔案或目錄的使用者組。


chmod 命令
  功能:chmod命令是非常重要的,用於改變檔案或目錄的存取權限.使用者用它控制檔案或目錄的存取權限.
  文法:該命令有兩種用法。一種是包含字母和操作符運算式的文字設定法;另一種是包含數位數字設定法。
  1. 文字設定法
  chmod [who] [+ | - | =] [mode] 檔案名稱?
  參數:
  操作對象who可是下述字母中的任一個或者它們的組合:
  u 表示“使用者(user)”,即檔案或目錄的所有者。
  g 表示“同組(group)使用者”,即與檔案屬主有相同組ID的所有使用者。
  o 表示“其他(others)使用者”。
  a 表示“所有(all)使用者”。它是系統預設值。
  操作符號可以是:
  + 添加某個許可權。
  - 取消某個許可權。
  = 賦予給定許可權並取消其他所有許可權(如果有的話)。

  設定mode所表示的許可權可用下述字母的任意組合:
  r 可讀。
  w 可寫。
  x 可執行。
  X 只有目標檔案對某些使用者是可執行檔或該目標檔案是目錄時才追加x 屬性。
  s 在檔案執行時把進程的屬主或組ID置為該檔案的檔案屬主。方式“u+s”設定檔案的用 戶ID位,“g+s”設定組ID位。
  t 儲存程式的文本到交換裝置上。
  u 與檔案屬主擁有一樣的許可權。
  g 與和檔案屬主同組的使用者擁有一樣的許可權。
  o 與其他使用者擁有一樣的許可權。
  檔案名稱:以空格分開的要改變許可權的檔案清單,支援萬用字元。
  在一個命令列中可給出多個許可權方式,其間用逗號隔開。例如:chmod g+r,o+r example
  使同組和其他使用者對檔案example 有讀許可權。


chgrp命令
  功能:改變檔案或目錄所屬的組。
  文法:chgrp [選項] group filename?
  該命令改變指定指定檔案所屬的使用者組。其中group可以是使用者組ID,也可以是/etc/group檔案中使用者組的組名。檔案名稱是以空格分開的要改變屬組的檔案清單,支援萬用字元。如果使用者不是該檔案的屬主或超級使用者,則不能改變該檔案的組。
  參數:
  - R 遞迴式地改變指定目錄及其下的所有子目錄和檔案的屬組。
  例1:$ chgrp - R book /opt/local /book
  改變/opt/local /book/及其子目錄下的所有檔案的屬組為book。


chown 命令
  功能:更改某個檔案或目錄的屬主和屬組。這個命令也很常用。例如root使用者把自己的一個檔案拷貝給使用者xu,為了讓使用者xu能夠存取這個檔案,root使用者應該把這個檔案的        屬主設為xu,否則,使用者xu無法存取這個檔案。
  文法:chown [選項] 使用者或組 檔案
  說明:chown將指定檔案的擁有者改為指定的使用者或組。使用者可以是使用者名稱或使用者ID。組可以是組名或組ID。檔案是以空格分開的要改變許可權的檔案清單,支援萬用字元。
  參數:
  - R 遞迴式地改變指定目錄及其下的所有子目錄和檔案的擁有者。
  - v 顯示chown命令所做的工作。
  例1:把檔案test.c的所有者改為ice。
  $ chown ice test.c
  例2:把目錄/testdir及其下的所有檔案和子目錄的屬主改成ice,屬組改成users。
  $ chown - R ice.users /testdir

Linux的檔案許可權是linux能有如此安全效能的最大的保障之一,有朋友可能會知道,很多攻擊windows的方法都是通過漏洞擷取到建立使用者 的許可權從而達到控制電腦的目的,在linux下,Root帳戶有最大的許可權,可以幹任何事情,其他使用者只能擁有自己的檔案的所有許可權和該改群組成員賦予的 檔案的許可權,下面開始對檔案許可權的一個說明。
讀許可權R。簡單的說就是開啟檔案查看內容的許可權,在web伺服器中,若檔案沒有開啟許可權,則web伺服器則視為該檔案不存在,發送404 file not found錯誤,用數字4表示。
寫入權限W。一個檔案若沒有寫的許可權,那麼該檔案則無法更改,檔案夾若沒有寫入權限,則該檔案夾下無法建立新檔案,用數字2表示。
執行許可權X。程式檔案若要執行,必須有執行許可權,否則無法執行。開啟一個檔案夾也是執行,所以檔案夾若沒有執行許可權,則無法被開啟。用數字1表示。

誰擁有這個許可權可讀=4可寫=2可執行=1實際許可權,縱向相加
檔案所有者0000
組內使用者    0000
公用使用者    0000

公用使用者為所有者和組內使用者之外的使用者,比如訪問web時候,linux可能用公用的使用者去讀取檔案,這裡不妨理解成是訪客所能操作的那個使用者。
下面舉例(再次提醒,檔案夾和檔案不一樣):
檔案所有使用者可寫: 666 (3類使用者均可讀寫)
誰擁有這個許可權可讀=4可寫=2可執行=1實際許可權,縱向相加
檔案所有者4206
組內使用者    4206
公用使用者    4206

接上面的,假設我們吧檔案夾設定成0666會怎麼樣,結果很明顯,因為該檔案夾沒有執行許可權,無法被開啟,所以設定成0666則無法被訪問到。
檔案夾只可檔案所有者有全部許可權,組內使用者、公用使用者可讀和執行(755)。一般web根目錄檔案夾都要這樣設定,才安全。再次提示:檔案夾沒有執行許可權,則該使用者無法開啟。正常的伺服器,若根目錄許可權也為0777,則會出現500錯誤
誰擁有這個許可權可讀=4可寫=2可執行=1實際許可權,縱向相加
檔案所有者4217
組內使用者    5015
公用使用者    4015

如果需要在某檔案夾下建立檔案,請把該檔案的許可權全部設定:即可都可寫和可執行777
誰擁有這個許可權可讀=4可寫=2可執行=1實際許可權,縱向相加
檔案所有者4217
組內使用者    4217
公用使用者    4217

為了安全起見,正常web的檔案應該設定成:所有者可讀可寫,組使用者可讀,公用使用者可讀 644
誰擁有這個許可權可讀=4可寫=2可執行=1實際許可權,縱向相加
檔案所有者4206
組內使用者    4004
公用使用者    4004

其他許可權,請大家自行思考。
所以請不要想都不想就把檔案的使用權限設定成777好嗎。。。


一般配置許可權的命令:chmod -R 777 /xx/xx/xx

 

參考自:linuxidc

 

linux下的許可權控制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.