国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - 詳解Linux系統中的文件名和文件種類以及文件權限

詳解Linux系統中的文件名和文件種類以及文件權限

2019-07-01 08:19linux愛好者 Linux

這篇文章主要介紹了Linux系統中的文件名和文件種類以及文件權限,Linux作為Unix系統的仿制品,某種說法上也繼承了Unix一切皆文件的思想,需要的朋友可以參考下

Linux文件種類與副文件名

一直強調一個概念,那就是:任何裝置在Linux底下都是文件, 不僅如此,連資料溝通的介面也有專屬的文件在負責~所以,你會瞭解到,Linux的文件種類真的很多~ 除了前面提到的一般文件(-)與目錄文件(d)之外,還有哪些種類的文件呢?

    * 文件種類:

我們在剛剛提到使用‘ls -l’觀察到第一欄那十個字元中,第一個字元為文件的類型。 除了常見的一般文件(-)與目錄文件(d)之外,還有哪些種類的文件類型呢?

    * 正規文件(regular file ):
      就是一般我們在進行存取的類型的文件,在由 ls -al 所顯示出來的屬性方面,第一個字元為 [ - ],例如 [-rwxrwxrwx ]。另外,依照文件的內容,又大略可以分為:

          o 純文字文件(ASCII):這是Linux系統中最多的一種文件類型啰, 稱為純文字文件是因為內容為我們人類可以直接讀到的資料,例如數字、字母等等。 幾乎只要我們可以用來做為設定的文件都屬于這一種文件類型。 舉例來說,你可以下達‘ cat ~/.bashrc ’就可以看到該文件的內容。 (cat 是將一個文件內容讀出來的指令)

          o 二進位文件(binary):還記得我們在‘ 第零章、計算機概論 ’里面的軟體程式的運作中提過, 我們的系統其實僅認識且可以執行二進位文件(binary file)吧?沒錯~ 你的Linux當中的可執行文件(scripts, 文字型批次文件不算)就是這種格式的啦~ 舉例來說,剛剛下達的指令cat就是一個binary file。

          o 資料格式文件(data): 有些程式在運作的過程當中會讀取某些特定格式的文件,那些特定格式的文件可以被稱為資料文件 (data file)。舉例來說,我們的Linux在使用者登入時,都會將登錄的資料記錄在 /var/log/wtmp那個文件內,該文件是一個data file,他能夠透過last這個指令讀出來! 但是使用cat時,會讀出亂碼~因為他是屬于一種特殊格式的文件。瞭乎?

    * 目錄(directory):
      就是目錄啰~第一個屬性為 [ d ],例如 [drwxrwxrwx]。

    * 連結文件(link):
      就是類似Windows系統底下的捷徑啦! 第一個屬性為 [ l ](英文L的小寫),例如 [lrwxrwxrwx] ;

    * 設備與裝置文件(device):
      與系統周邊及儲存等相關的一些文件, 通常都集中在/dev這個目錄之下!通常又分為兩種:

          o 區塊(block)設備文件 :就是一些儲存資料, 以提供系統隨機存取的周邊設備,舉例來說,硬碟與軟碟等就是啦! 你可以隨機的在硬碟的不同區塊讀寫,這種裝置就是區塊裝置啰!你可以自行查一下/dev/sda看看, 會發現第一個屬性為[ b ]喔!

          o 字元(character)設備文件:亦即是一些序列埠的周邊設備, 例如鍵盤、滑鼠等等!這些設備的特色就是‘一次性讀取’的,不能夠截斷輸出。 舉例來說,你不可能讓滑鼠‘跳到’另一個畫面,而是‘滑動’到另一個地方??!第一個屬性為 [ c ]。

    * 資料接口文件(sockets):
      既然被稱為資料接口文件, 想當然爾,這種類型的文件通常被用在網路上的資料承接了。我們可以啟動一個程式來監聽用戶端的要求, 而用戶端就可以透過這個socket來進行資料的溝通了。第一個屬性為 [ s ], 最常在/var/run這個目錄中看到這種文件類型了。

    * 資料輸送文件(FIFO, pipe):
      FIFO也是一種特殊的文件類型,他主要的目的在解決多個程序同時存取一個文件所造成的錯誤問題。 FIFO是first-in-first-out的縮寫。第一個屬性為[p] 。

除了設備文件是我們系統中很重要的文件,最好不要隨意修改之外(通常他也不會讓你修改的啦!), 另一個比較有趣的文件就是連結文件。如果你常常將應用程式捉到桌面來的話,你就應該知道在 Windows底下有所謂的‘捷徑’。同樣的,你可以將 linux下的連結文件簡單的視為一個文件或目錄的捷徑。 至于socket與FIFO文件比較難理解,因為這兩個咚咚與程序(process)比較有關系, 這個等到未來你瞭解process之后,再回來查閱吧!此外, 你也可以透過man fifo及man socket來查閱系統上的說明!

    * Linux文件副文件名:

基本上,Linux的文件是沒有所謂的‘副文件名’的,我們剛剛就談過,一個Linux文件能不能被執行,與他的第一欄的十個屬性有關, 與文件名根本一點關系也沒有。這個觀念跟Windows的情況不相同喔!在Windows底下, 能被執行的文件副文件名通常是 .com .exe .bat等等,而在Linux底下,只要你的權限當中具有x的話,例如[ -rwx-r-xr-x ] 即代表這個文件可以被執行喔!

不過,可以被執行跟可以執行成功是不一樣的~舉例來說,在root家目錄下的install.log 是一個純文字文件,如果經由修改權限成為 -rwxrwxrwx 后,這個文件能夠真的執行成功嗎? 當然不行~因為他的內容根本就沒有可以執行的資料。所以說,這個x代表這個文件具有可執行的能力, 但是能不能執行成功,當然就得要看該文件的內容啰~

雖然如此,不過我們仍然希望可以藉由副文件名來瞭解該文件是什么東西,所以, 通常我們還是會以適當的副文件名來表示該文件是什么種類的。底下有數種常用的副文件名:

    * *.sh : 批次文件( scripts ),因為批次文件為使用shell寫成的,所以副文件名就編成 .sh 啰;

    * *Z, *.tar, *.tar.gz, *.zip, *.tgz: 經過打包的壓縮文件。這是因為壓縮軟體分別為 gunzip, tar 等等的,由于不同的壓縮軟體,而取其相關的副文件名啰!

    * *.html, *.php:網頁相關文件,分別代表 HTML 語法與 PHP 語法的網頁文件啰! .html 的文件可使用網頁瀏覽器來直接開啟,至于 .php 的文件, 則可以透過 client 端的瀏覽器來 server 端瀏覽,以得到運算后的網頁結果呢!

基本上,Linux系統上的文件名真的只是讓你瞭解該文件可能的用途而已, 真正的執行與否仍然需要權限的規范才行!例如雖然有一個文件為可執行文件, 如常見的/bin/ls這個顯示文件屬性的指令,不過,如果這個文件的權限被修改成無法執行時, 那么ls就變成不能執行啰!

上述的這種問題最常發生在文件傳送的過程中。例如你在網路上下載一個可執行文件,但是偏偏在你的 Linux系統中就是無法執行!呵呵!那么就是可能文件的屬性被改變了!不要懷疑,從網路上傳送到你的 Linux系統中,文件的屬性與權限確實是會被改變的喔!

    * Linux文件長度限制:

在Linux底下,使用預設的Ext2/Ext3文件系統時,針對文件的文件名長度限制為:

    * 單一文件或目錄的最大容許文件名為 255 個字元;
    * 包含完整路徑名稱及目錄 (/) 之完整文件名為 4096 個字元。

是相當長的文件名喔!我們希望Linux的文件名稱可以一看就知道該文件在干嘛的, 所以文件名通常是很長很長!而用慣了Windows的人可能會受不了,因為文件名稱通常真的都很長, 對于用慣Windows而導致打字速度不快的朋友來說,嗯!真的是很困擾.....不過,只得勸你好好的加強打字的訓練啰!

   * Linux文件名稱的限制:

由于Linux在文字介面下的一些指令操作關系,一般來說,你在設定Linux底下的文件名稱時, 最好可以避免一些特殊字元比較好!例如底下這些:

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

因為這些符號在文字介面下,是有特殊意義的!另外,文件名稱的開頭為小數點‘.’時, 代表這個文件為‘隱藏文件’喔!同時,由于指令下達當中,常常會使用到 -option 之類的選項, 所以你最好也避免將文件文件名的開頭以 - 或 + 來命名??!

目錄與文件權限
現在我們知道了Linux系統內文件的三種身份(擁有者、群組與其他人),知道每種身份都有三種權限(rwx), 已知道能夠使用chown, chgrp, chmod去修改這些權限與屬性,當然,利用ls -l去觀察文件也沒問題。 前兩小節也談到了這些文件權限對于資料安全的重要性。那么,這些文件權限對于一般文件與目錄文件有何不同呢? 有大大的不同??!底下就讓鳥哥來說清楚,講明白!

* 權限對文件的重要性

文件是實際含有資料的地方,包括一般文字文件、資料庫內容文件、二進位可執行文件(binary program)等等。 因此,權限對于文件來說,他的意義是這樣的:

* r (read):可讀取此一文件的實際內容,如讀取文字文件的文字內容等;
* w (write):可以編輯、新增或者是修改該文件的內容(但不含刪除該文件);
* x (eXecute):該文件具有可以被系統執行的權限。

那個可讀(r)代表讀取文件內容是還好瞭解,那么可執行(x)呢?這里你就必須要小心啦! 因為在Windows底下一個文件是否具有執行的能力是藉由‘ 副文件名 ’來判斷的, 例如:.exe, .bat, .com 等等,但是在Linux底下,我們的文件是否能被執行,則是藉由是否具有‘x’這個權限來決定的!跟文件名是沒有絕對的關系的!

至于最后一個w這個權限呢?當你對一個文件具有w權限時,你可以具有寫入/編輯/新增/修改文件的內容的權限, 但并不具備有刪除該文件本身的權限!對于文件的rwx來說, 主要都是針對‘文件的內容’而言,與文件文件名的存在與否沒有關系喔!因為文件記錄的是實際的資料嘛!

* 權限對目錄的重要性

文件是存放實際資料的所在,那么目錄主要是儲存啥玩意???目錄主要的內容在記錄文件名清單,文件名與目錄有強烈的關連啦! 所以如果是針對目錄時,那個 r, w, x 對目錄是什么意義呢?

* r (read contents in directory):

   表示具有讀取目錄結構清單的權限,所以當你具有讀取(r)一個目錄的權限時,表示你可以查詢該目錄下的文件名資料。 所以你就可以利用 ls 這個指令將該目錄的內容列表顯示出來!

* w (modify contents of directory):

   這個可寫入的權限對目錄來說,是很了不起的! 因為他表示你具有移動該目錄結構清單的權限,也就是底下這些權限:

          o 建立新的文件與目錄;
          o 刪除已經存在的文件與目錄(不論該文件的權限為何!)
          o 將已存在的文件或目錄進行更名;
          o 搬移該目錄內的文件、目錄位置。

      總之,目錄的w權限就與該目錄底下的文件名移動有關就對了啦!

* x (access directory):

      咦!目錄的執行權限有啥用途啊?目錄只是記錄文件名而已,總不能拿來執行吧?沒錯!目錄不可以被執行,目錄的x代表的是使用者能否進入該目錄成為工作目錄的用途! 所謂的工作目錄(work directory)就是你目前所在的目錄啦!舉例來說,當你登入Linux時, 你所在的家目錄就是你當下的工作目錄。而變換目錄的指令是‘cd’(change directory)啰!

目錄的x權限決定用戶是否可以進入該目錄。

大致的目錄權限概念是這樣,底下我們來看幾個范例,讓你瞭解一下啥是目錄的權限啰!

例題:
有個目錄的權限如下所示:
 

復制代碼
代碼如下:

drwxr--r-- 3 root root 4096 Jun 25 08:35 .ssh

系統有個帳號名稱為vbird,這個帳號并沒有支援root群組,請問vbird對這個目錄有何權限?是否可切換到此目錄中?
答:
vbird對此目錄僅具有r的權限,因此vbird可以查詢此目錄下的文件名列表。因為vbird不具有x的權限,因此vbird并不能切換到此目錄內!(相當重要的概念!)

 

上面這個例題中因為vbird具有r的權限,因為是r乍看之下好像就具有可以進入此目錄的權限,其實那是錯的。 能不能進入某一個目錄,只與該目錄的x權限有關啦!此外, 工作目錄對于指令的執行是非常重要的,如果你在某目錄下不具有x的權限, 那么你就無法切換到該目錄下,也就無法執行該目錄下的任何指令,即使你具有該目錄的r的權限。

很多朋友在架設網站的時候都會卡在一些權限的設定上,他們開放目錄資料給網際網路的任何人來瀏覽, 卻只開放r的權限,如上面的范例所示那樣,那樣的結果就是導致網站伺服器軟體無法到該目錄下讀取文件(最多只能看到文件名), 最終用戶總是無法正確的查閱到文件的內容(顯示權限不足啊!)。要注意:要開放目錄給任何人瀏覽時,應該至少也要給予r及x的權限,但w權限不可隨便給! 為什么w不能隨便給,我們來看下一個例子:

例題:
假設有個帳號名稱為dmtsai,他的家目錄在/home/dmtsai/,dmtsai對此目錄具有[rwx]的權限。若在此目錄下有個名為the_root.data的文件,該文件的權限如下:
 

復制代碼
代碼如下:

-rwx------ 1 root root 4365 Sep 19 23:20 the_root.data

請問dmtsai對此文件的權限為何?可否刪除此文件?
答:
如上所示,由于dmtsai對此文件來說是‘others’的身份,因此這個文件他無法讀、無法編輯也無法執行,也就是說,他無法變動這個文件的內容就是了。

 

但是由于這個文件在他的家目錄下,他在此目錄下具有rwx的完整權限,因此對于the_root.data這個‘文件名’來說,他是能夠‘刪除’的!結論就是,dmtsai這個用戶能夠刪除the_root.data這個文件!

還是看不太懂?有聽沒有懂喔!沒關系~我們底下就來設計一個練習, 讓你實際玩玩看,應該就能夠比較近入狀況啦!不過,由于很多指令我們還沒有教, 所以底下的指令有的先瞭解即可,詳細的指令用法我們會在后面繼續介紹的。

    * 先用root的身份建立所需要的文件與目錄環境

我們用root的身份在所有人都可以工作的/tmp目錄中建立一個名為testing的目錄, 該目錄的權限為744且目錄擁有者為root。另外,在testing目錄下在建立一個空的文件, 文件名亦為testing。建立目錄可用mkdir(make directory),建立空文件可用touch(下一章會說明)來處理。 所以過程如下所示:
 

復制代碼
代碼如下:

[root@www ~]# cd /tmp <==切換工作目錄到/tmp
[root@www tmp]# mkdir testing <==建立新目錄
[root@www tmp]# chmod 744 testing <==變更權限
[root@www tmp]# touch testing/testing <==建立空的文件
[root@www tmp]# chmod 600 testing/testing <==變更權限
[root@www tmp]# ls -ald testing testing/testing
drwxr--r-- 2 root root 4096 Sep 19 16:01 testing
-rw------- 1 root root 0 Sep 19 16:01 testing/testing

# 仔細看一下,目錄的權限是 744 ,且所屬群組與使用者均是 root 喔!
# 那么在這樣的情況底下,一般身份使用者對這個目錄/文件的權限為何?

 

* 一般用戶的讀寫權限為何?觀察中

在上面的例子中,雖然目錄是744的權限設定,一般用戶應該能有 r 的權限, 但這樣的權限使用者能做啥事呢?假設鳥哥的系統中含有一個帳號名為 vbird 的, 我們可以透過‘ su - vbird ’這個指令來變換身份喔!看看底下的操作先!
 

復制代碼
代碼如下:

[root@www tmp]# su - vbird <==切換身份成為 vbird 啰!
[vbird@www ~]$ cd /tmp <==看一下,身份變了喔!提示字元也變成 $ 了!
[vbird@www tmp]$ ls -l testing/
?--------- ? ? ? ? ? testing
# 因為具有 r 的權限可以查詢文件名。不過權限不足(沒有x),所以會有一堆問號。
[vbird@www tmp]$ cd testing/
-bash: cd: testing/: Permission denied
# 因為不具有 x ,所以當然沒有進入的權限啦!有沒有呼應前面的權限說明?。?lt;/p> <p>* 如果該目錄屬于用戶本身,會有什么狀況?

上面的練習我們知道了只有r確實可以讓使用者讀取目錄的文件名列表,不過詳細的資訊卻還是讀不到的, 同時也不能將該目錄變成工作目錄(用 cd 進入該目錄之意)。那如果我們讓該目錄變成使用者的, 那么使用者在這個目錄底下是否能夠刪除文件呢?底下的練習做看看:

復制代碼
代碼如下:

[vbird@www tmp]$ exit <==讓 vbird 變回原本的 root 身份喔!
[root@www tmp]# chown vbird testing <==修改權限,讓vbird擁有此目錄
[root@www tmp]# su - vbird <==再次變成vbird來操作
[vbird@www ~]$ cd /tmp/testing <==可以進入目錄了呢!
[vbird@www testing]$ ls -l
-rw------- 1 root root 0 Sep 19 16:01 testing <==文件不是vbird的!
[vbird@www testing]$ rm testing <==嘗試殺掉這個文件看看!
rm: remove write-protected regular empty file `testing'? y
# 竟然可以刪除!這樣理解了嗎?!

透過上面這個簡單的步驟,你就可以清楚的知道, x 在目錄當中是與‘能否進入該目錄’有關, 至于那個 w 則具有相當重要的權限,因為他可以讓使用者刪除、更新、新建文件或目錄, 是個很重要的參數啊!這樣可以理解了嗎?! ^_^

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日本一区二区不卡在线观看 | www.44181com| 久久中文字幕一区二区三区 | 日日干天天干 | 毛片免费在线 | 精品一区二区三区中文字幕 | 国产日日夜夜操 | 自拍偷拍视频网站 | 中国毛片基地 | 亚洲日韩中文字幕一区 | 久久国产精品免费一区二区三区 | 日本中文字幕视频 | 色婷婷综合久久久中字幕精品久久 | 欧美a级成人淫片免费看 | 成人高清视频在线观看 | 中文字幕精品一区久久久久 | 欧美国产日韩一区 | 中文字幕一区二区三区四区 | 久久99精品久久久久久久青青日本 | 91国内精品久久 | 99久久精品一区二区成人 | 成人综合视频网 | 中文字幕一区二区三区在线观看 | 精品无人乱码一区二区三区 | 欧美日韩久 | 久久精品国产视频 | 亚洲一区二区免费视频 | 欧美一区二区三区在线观看视频 | 精品国产乱码一区二区三区 | 午夜影院网站 | 精品在线一区二区 | 自拍偷拍一区 | 久久中文字幕精品 | 精品免费视频 | 免费观看av| 日韩在线免费视频 | 久久久一区二区三区 | 69国产精品成人96视频色 | www.久久精品 | 日韩精品一区在线 | 久久久99精品免费观看 |