天天看點

Linux基礎學習之檔案權限如何修改檔案屬性與權限目錄與檔案的權限意義Linux檔案種類與拓展名

檔案權限與目錄配置

  • 如何修改檔案屬性與權限
    • 修改檔案所屬使用者組 chgrp
    • 修改檔案擁有者 chown
    • 修改檔案權限 chmod
      • 數字類型修改檔案權限
      • 文字類型修改檔案權限
  • 目錄與檔案的權限意義
    • 對檔案的重要性
    • 對目錄的重要性
  • Linux檔案種類與拓展名
    • 檔案種類
    • Linux檔案名
    • Linux檔案名長度限制
    • Linux檔案名的限制

如何修改檔案屬性與權限

修改檔案所屬使用者組 chgrp

change group ==>chgrp

要修改的組名必須在/etc/group中存在,否則顯示錯誤。

[[email protected] ~ ]# chgrp  [-R]   dirname/filename
           

選項與參數 :

-R:進行遞歸(recursive)修改,亦連同子目錄下的所有檔案、目錄都更新成為這個使用者組之意,常常用在修改某一目錄内所有的檔案之情況。

範例:

[[email protected] ~ ]# chgrp  users initial-setup-ks.cfg
           

修改檔案擁有者 chown

change owner ==>chown

使用者必須是已經存在的賬号,也就是在/etc/passwd中有記錄的使用者名稱才可修改。

除了修改檔案擁有者外,還可順便直接修改使用者組的名稱。

[[email protected] ~ ] # chown [-R] 賬号名稱 檔案或目錄
[[email protected] ~ ] # chown [-R] 賬号名稱:使用者組名稱  檔案或目錄
           

範例:

[[email protected] ~ ] # chown root:root initial-setup-ks.cfg
           

修改檔案權限 chmod

更改模式==> chmod

數字類型修改檔案權限

R:4

W:2

X:1

owner= rwx = 4 + 2 + 1 = 7

group= rwx = 4 + 2 + 1 = 7

others= - - - = 0 + 0 + 0 = 0

[[email protected] ~]# chmod [-R] xyz

檔案或目錄選項與參數:

xyz:就是剛剛提到的數字類型的權限屬性,為rwx屬性數值的相加

-R:進行遞歸修改,亦連同子目錄下的所有檔案都會修改

[root @ study〜] #ls -al .bashrc -rw-r--r--。
1root 176 2013年12月29日.bashrc
[root @ study〜] #chmod 777 .bashrc 
[root @ study〜] #ls -al .bashrc -rwxrwxrwx。
1 root root 176 2013年12月29日.bashrc
           

文字類型修改檔案權限

chmod u / g / o / a + / - / = r / w / x 檔案或目錄
[[email protected] ~ ]#chmod  u=rwx,go=rx  .bashrc
           

注:u=rwx,go=rx 是連在一起的,中間沒有空格

[[email protected] ~ ]#chmod u+rx,go+x .bashrc
           

在+/-的狀态在,隻要是沒有指定到的項目,則該權限不會被變動

目錄與檔案的權限意義

對檔案的重要性

  1. 與Windows差別:檔案是否能被執行,借由是否有【x】這個權限來決定,與檔案名沒有絕對的關系。
  2. 當對一個檔案有【w】權限時,具有寫入、編輯、新增、修改檔案内容的權限,但并不具有删除該檔案本身的權限。

對目錄的重要性

  1. r(read contents in directory)表示具有讀取目錄結構清單的權限,是以當你具有讀取一個目錄的權限時,表示你可以查詢該目錄下的檔案名資料,是以你就可以利用ls這個指令将該目錄的内容清單顯示出來。
  2. w(modify contents of directory)表示具有修改該目錄結構清單的權限,也就是:

    (1)建立新的檔案和目錄;

    (2) 删除已經存在的檔案與目錄(無論該檔案的權限是什麼)

    (3)将已存在的檔案或目錄進行更名;

    (4)移動該目錄内的檔案、目錄位置

  3. x(access directory)表示使用者具有進入該目錄成為工作目錄的權限

工作目錄(work directory): 登入Linux時,所在的家目錄就是目前的工作目錄。

元件 内容 替代對象 r w x
檔案 詳細資料data 檔案夾 讀到檔案内容 修改檔案内容 執行檔案内容
目錄 檔案名 可分類抽屜 讀到檔案名 修改檔案名 進入該目錄的權限

示例:

假設有三個檔案名

  • /dir1/file1
  • /dir2
操作 /dir1 /dir1/file1 /dir2 重點
讀取file1内容 x r - 要能進入/dir1才能讀到裡面的檔案資料
修改file1内容 x rw - 要進入/dir1且修改file1
執行file1内容 x rx - 要進入/dir1且能運作file1
删除file1内容 wx - - 要進入/dir1且具有目錄修改的權限
将file1複制到/dir2 x r wx 要能讀file1且具有/dir2的修改權限

注:要開放的目錄通常具有rx這兩個權限

Linux檔案種類與拓展名

檔案種類

  • 正常檔案(regular file)

    就是一般我們在進行讀寫的類型的檔案,在由ls -al所顯示出來的屬性方面,第一個字元為[ - ],例如[- rwxrwxrwx]。

    • 純文字檔案(ASCII)

      幾乎隻要我們可以用來作為設定的檔案都屬于這一種檔案類型。

    • 二進制檔案(Binary)
    • 資料檔案(data)

      有些程式在運作的過程當中會讀取某些特定格式的檔案,那些特定格式的檔案,那些特定的檔案可以被稱為資料檔案(data file)。舉例來說,我們的Linux在使用者登入時,都會将登入的資料記錄在/var/log/wtmp這個檔案内,該檔案時一個資料檔案,它能夠通過last 這個指令讀出來。但是使用cat時,會讀出亂碼,因為它是屬于一種特殊格式的檔案。

  • 目錄(directory)

    第一個屬性為[d]

  • 連結檔案(link)

    第一個屬性為[l],類似windows系統下面的快捷方式

  • 裝置與裝置檔案(device)

    與系統周邊及存儲等相關的一些檔案,通常都集中在/dev這個目錄下

    • 區塊(block)裝置檔案

      就是一些存儲資料,以提供系統随機存取的接口裝置,舉例來說硬碟和軟碟就是。你可以随機地在硬碟的不同區塊讀寫,這種裝置就是塊裝置。通常在/dev/sda裡面,第一個屬性為[b]。

    • 字元(character)裝置檔案

      亦即是一些序列槽端口的接口裝置,例如滑鼠鍵盤等。這些裝置的特色就是一次性讀取,不能夠截斷輸出。舉例來說,你不可能讓滑鼠跳到另一個畫面,而是連續滑動到另一個地方,第一個屬性為[c]。

  • 資料接口檔案(sockets)

    通常用于在網絡上的資料交換,最常在/run或/tmp中看到這種檔案類型,第一個屬性為[s]。

  • 資料輸送檔案(FIFO,pipe)

    FIFO是先進先出(first-in-first-out)的縮寫,即管道,主要目的是解決多個程式同時讀寫一個檔案所造成的錯誤問題。第一個屬性為[p]。

Linux檔案名

一個Linux檔案能不能被執行,與它第一欄的十個屬性有關,與檔案名一點關系都沒有,隻要權限有x,就代表這個檔案具有可以被執行的能力。

但具有可以被執行的能力,能不能執行成功還是得看檔案内容。通常還是會以适當的拓展名來表示該檔案是什麼類型,下面有數種常用的拓展名:

  • *.sh:腳本或批處理檔案(scripts)
  • .Z、.tar、.tar.gz、.zip、.tgz:經過打包的壓縮檔案
  • .html、.php:網頁相關檔案

Linux檔案名長度限制

在Linux下面,使用傳統的ext2、ext3、ext4檔案系統以及近來被CentOS7當作預設檔案系統的xfs而言,針對檔案的檔案名長度限制為:

  • 單一檔案或目錄的最大容許檔案名為255位元組,以一個ASCII英文占用一個位元組來說,則大約可達255個字元長度。若是以每個漢字占用2個位元組來說,最大檔案名就是大約在128個漢字之間

Linux檔案名的限制

由于Linux在指令行模式下的一些指令操作關系,一般來說,你在設定Linux下面的檔案名時最好避免一些特殊的字元比較好,例如下面這些:

*  ?  >  <  ;  &  ![  ]  |  \  ‘  ”  `  (  )  {  }
           

繼續閱讀