Linux 目錄與文件許可權分析

来源:http://www.cnblogs.com/longhsu91/archive/2017/12/04/7880585.html
-Advertisement-
Play Games

如果說在Java世界中,萬物皆對象,那麼在Linux世界中,可以說萬物皆文件。Linux文件一般分為兩種,一般文件和目錄文件。文件許可權對於數據安全至關重要,有必要清楚的知道一般文件許可權和目錄文件許可權的意義。 許可權對文件的重要性 文件是實際含有數據的地方,包括一般文本文件、資料庫內容檔、二進位可可執行 ...


  如果說在Java世界中,萬物皆對象,那麼在Linux世界中,可以說萬物皆文件。Linux文件一般分為兩種,一般文件和目錄文件。文件許可權對於數據安全至關重要,有必要清楚的知道一般文件許可權和目錄文件許可權的意義。

  • 許可權對文件的重要性

  文件是實際含有數據的地方,包括一般文本文件、資料庫內容檔、二進位可可執行文件(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):

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

    • 創建新的文件與目錄;
    • 刪除已經存在的文件與目錄(不論該文件的許可權為何!)
    • 將已存在的文件或目錄進行更名;
    • 搬移該目錄內的文件、目錄位置。 總之,目錄的w許可權就與該目錄下麵的文件名異動有關就對了啦!

     x (access directory):

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

  現在假設“文件是一堆文件數據夾”,所以你可能可以在上面寫/改一些數據。而“目錄是一堆抽屜”,因此你可以將數據夾分類放置到不同的抽屜去。 因此抽屜最大的目的是拿出/放入數據夾喔!現在讓我們彙整一下數據:

元件 內容       疊代物件 r w x
文件 詳細數據data 文件數據夾 讀取文件內容 修改文件內容 執行文件內容
目錄 文件名 可分類抽屜 讀到文件名 修改文件名 進入該目錄的許可權(key)

    

 

 

  

  根據上面的分析,可以看到,對一般文件來說,rwx 主要是針對“文件的內容”來設計許可權,對目錄來說,rwx則是針對“目錄內的文件名列表”來設計許可權。 其中最有趣的大概就屬目錄的x 許可權了!“文件名怎麼執行”?沒道理嘛!其實,這個 x 許可權設計,就相當於“該目錄,也就是該抽屜的 "鑰匙" ”啦! 沒有鑰匙你怎麼能夠打開抽屜呢?對吧!

  • 具體實例

  例1:有個目錄的許可權如下所示:

  drwxr--r-- 3 root root 4096 Jun 25 08:35 test

  系統有個帳號名稱為hah,這個帳號並沒有支持root群組,請問hah對這個目錄有何許可權?是否可切換到此目錄中?答:hah對此目錄僅具有r的許可權,因此hah可以查詢此目錄下的文件名列表。因為hah不具有x的許可權,亦即 hah沒有這個抽屜的鑰匙啦! 因此hah並不能切換到此目錄內! 

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

  例2:假設有個帳號名稱為xixi,他的主文件夾在/home/xixi/,xixi對此目錄具有[rwx]的許可權。 若在此目錄下有個名為the_root.data的文件,該文件的許可權如下:

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

  請問xixi對此文件的許可權為何?可否刪除此文件?答:如上所示,由於xixi對此文件來說是“others”的身份,因此這個文件他無法讀、無法編輯也無法執行, 也就是說,他無法變動這個文件的內容就是了。但是由於這個文件在他的主文件夾下, 他在此目錄下具有rwx的完整許可權,因此對於the_root.data這個“文件名”來說,他是能夠“刪除”的! 結論就是,xixi這個用戶能夠刪除the_root.data這個文件! 

  上述的例子解釋是這樣的,假設有個莫名其妙的人,拿著一個完全密封的數據夾放到你的辦公室抽屜中,因為完全密封你也打不開、看不到這個數據夾的內部數據(對文件來說,你沒有許可權)。 但是因為這個數據夾是放在你的抽屜中,你當然可以拿出/放入任何數據在這個抽屜中(對目錄來說,你具有所有許可權)。 所以,情況就是:你打開抽屜、拿出這個沒辦法看到的數據夾、將他丟到走廊上的垃圾桶!搞定了 (順利刪除!)!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • swap空間有兩種形式:一是交換分區,二是交換文件。總之對它的讀寫都是磁碟操作。 linux記憶體通過 virtual memory 虛擬記憶體來管理整個記憶體, 虛擬記憶體管理著物理記憶體,也管理著swap交換空間。 Swap分區,即交換區,Swap空間的作用可簡單描述為:當系統的物理記憶體不夠用的時候,就需 ...
  • 前提條件: 伺服器要開啟寫入許可權; 本地和伺服器都要安裝有 scp 包; 如何傳輸: 1. 從伺服器上下載文件; scp username@servername:遠程目錄/文件名 本地目錄 例:scp [email protected]:/var/www/test.txt /var/www/lo ...
  • 1.1 什麼是Mybatis MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,並且改名為MyBatis 。iBATIS一詞來源於“internet”和“abatis”的組合,是一個 ...
  • 上一篇簡單的介紹了怎麼搭建Zabbix監控服務端,接下來給大家介紹怎麼在windows和Centos7上安裝zabbix_agent客戶端。 Zabbix是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。 Zabbix由2部分構成,zabbix server(監控端)與 ...
  • 結論:win記事本使用的格式有別於linux,二者不可混用。linux使用一個叫vi的編輯器。 解決辦法:使用vi命令建立文件,在其中敲shell。命令:vi > filename (敲完用ctrl +c 就可以保存) 。 驗證命令:sh filename 具體分析(你可以忽略): win是micr ...
  • 一、添加監控主機及設置 1.創建主機 Agent可以乾一些SNMP無法乾的事情,例如自定義監控項 snmp相關文章:http://www.abcdocker.com/abcdocker/1376 這裡我們先不著急點add,還需要設置其他選項 點擊監控模板 zabbix監控是由監控項組成(cpu使用率 ...
  • 命令行下中英文翻譯工具(Chinese and English translation tools in the command line) ...
  • 重新安裝了一遍Win10,但是不知怎的無法安裝.net framework 3.5,即便是下載離線安裝包也沒法用。 網上有人說需要使用win10的ISO文件,個人感覺太麻煩,在這裡分享一個很方便的操作。 首先,你需要下載cab版的.net3.5文件: "點擊下載" 下載好知乎將文件直接複製到C盤的W ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...