iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0
自我挑戰組

30 天不間斷-資工隨筆大雜燴系列 第 3

[Day 3] Linux 檔案、目錄屬性權限(1)

前言

在接觸 Linux 系統時總是需要透過指令來操作檔案及目錄,瞭解檔案的權限觀念能夠更理解目前系統的動向,例如這個檔案爲什麼不能執行、爲什麼權限不足、剛剛到底被誰偷改了。

以下整理一些檔案與權限的觀念重點。

檔案的種類

注意[]中的字元,待會會提到

  • [-] 正規檔案(regular file)
    • 純文字檔(ASCII)
      • cat 純文字檔可以看到內容
    • 二進位檔(binary)
    • 資料格式檔
      • cat data檔會出現亂碼
  • [d] 目錄(directory)
  • [l] 連結檔(link)
  • 設備與裝置檔(device)
    • [b] 區塊設備檔
      • 可以隨機在硬碟不同區塊讀寫儲存的資料
      • /dev/sd*
    • [c] 字元設備檔
      • 序列埠週邊設備(鍵盤、滑鼠)
      • 一次性讀取、連續滑動
  • [s] 資料接口檔(sockets)
    • 讓 clien,server 端進行資料的溝通
    • /run,/tmp
  • [p] 資料輸送檔(FIFO,pipe)
    • 解決多個程序存取一個檔案的錯誤
    • first-in-first-out

目錄與檔案的權限

內容 r w x
檔案 檔案資料 讀取 寫入 執行
目錄 檔名 讀取檔案結構(該目錄下的檔案) 建立、刪除、更名、移動目錄與檔案 進入目錄(cd)

權限分數

權限 r w x
分數 4 2 1

舉個例:

drwxr-xr-x 這十個字元總共分爲以下架構:

檔案類型/擁有者/群組/其他使用者

  • 檔案類型:

    • 一個字元(見檔案的種類)
    • 此例爲 d ,代表目錄。
  • 擁有者:

    • 第2~4個字元
    • r(4)+w(2)+x(1) = 7
    • 可讀可寫可執行
  • 群組:

    • 第5~7個字元
    • r(4)+x(1)=5
  • 其他使用者:

    • 第8~10個字元
    • r(4)+x(1)=5

我們對照檔案和目錄的權限,來判斷各種使用者能夠怎麽操作。
像是針對擁有者我們就知道對於這個目錄,他掌握所有的權限,和 root 一樣,而群組和其他使用者的部分我們知道他們能夠讀取目錄結構、cd 進去,但是不能刪除檔案、變更位置以及等等變更目錄結構的行爲。

應用

  • 刪除檔案

    • 進入資料夾並修改目錄結構(把檔名刪除)
      • 對資料夾增加 wx 權限
    • 不是修改檔案權限屬性
  • 判斷可執行檔

    • Windows 依照副檔名判斷
    • Linux 依照權限屬性 x 判斷
  • 判斷檔案類型

    • Windows 再度依照副檔名判斷
    • Linux
      • 先依照權限屬性的第一個[]中的字元判斷
      • 有些檔案必須要有對應的副檔名
        • 例如利用 gcc 編譯 c語言,附檔名必須爲 .c
  • 命名

    • 避免特殊字元,例如 "-" 可能會和一些選項衝突到行爲

參考資料

http://linux.vbird.org/linux_basic/0210filepermission.php


上一篇
[Day 2] 在 Ubuntu 18.04 下打造自己的 Python 開發環境
下一篇
[Day 4] Linux 檔案、目錄屬性權限(2)
系列文
30 天不間斷-資工隨筆大雜燴30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言