邁向 RHCE 之路 (Day04) - 權限-擁有權、檔案-目錄、文字-圖形介面、相對-絕對路徑

1、前言

本文將說明權限、擁有權、檔案、目錄、文字介面、圖形介面、相對路徑、絕對路徑...等,相關資訊。



文章目錄

1、前言
2、權限 (Permission)、擁有權 (OwnerShip)
3、檔案 (File)、目錄 (Folder)
4、檔案及目錄的所有權 (OwnerShip)
5、檔案及目錄的權限 (Permission)
6、登入 Linux 系統
7、文字介面 vs 圖形介面
8、相對路徑 vs 絕對路徑



2、權限 (Permission)、擁有權 (OwnerShip)

Linux 中有關檔案及目錄透過 使用者、群組、其它人 等三種關係來訂定其存取權限,您可透過指令 stat 來查詢檔案或目錄有關 UID、GID...等相關資訊。
stat /root/anaconda-ks.cfg
  File: `/root/anaconda-ks.cfg'
  Size: 1477            Blocks: 8          IO Block: 4096   regular file
  Device: fd00h/64768d    Inode: 27393       Links: 1
  Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
  Access: 2011-10-07 17:44:37.911951088 +0800
  Modify: 2011-10-07 09:35:12.120362571 +0800
  Change: 2011-10-07 09:35:12.366370099 +0800




3、檔案 (File)、目錄 (Folder)

有關於 讀取 (r)、寫入 (w)、執行 (x) 對於檔案及目錄的說明如下:

檔案 (File):

  • 讀取 (r): 可 讀取 檔案內容。
  • 寫入 (w): 可 寫入 內容於檔案。
  • 執行 (x): 可 執行 該檔案。

目錄 (Folder):

  • 讀取 (r): 目錄 內容預覽 (例如: ls) 若該目錄無讀取權限則連補位 (Tab) 功能也將失效。
  • 寫入 (w): 對於該目錄及其子目錄 (含檔案) 具有 建立、刪除 的權限,因此即使該子目錄或檔案及擁有者為 root 也可輕易刪除之。
  • 執行 (x): 可 進入 該目錄 (例如: cd)。



4、檔案及目錄的所有權 (OwnerShip)

擁有者 (Owner): 

除了該檔案的建立者之外僅 root 能改變該檔案的擁有者 (owner),可以使用 chown 指令來修改檔案及目錄的擁有者,使用 -R 參數可一次套用設定至所有子目錄及檔案,使用 -v 參數可於指令執行後立即顯示執行結果。

群組 (Group): 

除了該檔案的建立者 (且必須擁有該 GID) 之外僅 root 能改變該檔案的群組 (group),可以使用 chgrp 指令來修改檔案及目錄的郡組。



5、檔案及目錄的權限 (Permission)

每個檔案及目錄均透過 10 個字符 (Ten-Character) 4 組數字來表示其權限:
  • 第 1 個字符: 特殊權限 (Suid、Sgid、Sticky)
  • 第 2 ~ 4 個字符: 使用者權限 (User Permission)
  • 第 5 ~ 7 個字符: 群組權限 (Group Permission)
  • 第 8 ~ 10 個字符: 其它人權限 (Other Permission)

讀取 (r)、寫入 (w)、執行 (x) 權限其數字表示方式如下:
  • 執行 (x): 為 2 的 0 次方其數值為 1
  • 寫入 (w): 為 2 的 1 次方其數值為 2
  • 讀取 (r): 為 2 的 2 次方其數值為 4

可透過 chmod 指令並配合上述數字方式來快速指令檔案及目錄權限,如下列二個範例來進行說明:

chmod 664 file

  • 擁有者有 (rw-) 權限,也就是有讀取、寫入的權限
  • 群組有 (rw-) 權限,也就是有讀取、寫入的權限
  • 其它人有 (r--) 權限,也就是有讀取的權限

chmod 755 dir

  • 擁有者有 (rwx) 權限,也就是有讀取、寫入、執行的權限
  • 群組有 (rwx) 權限,也就是有讀取、寫入、執行的權限
  • 其它人有 (r-x) 權限,也就是有讀取、執行的權限



6、登入 Linux 系統

該如何登入 Linux 系統? Liunx 系統支援二種方式登入其系統 文字介面、圖形介面 以下為功能及常用熱鍵說明。

Virtual Consoles (text-based): 文字介面

  • 切換介面: Ctrl + Alt + F1 ~ F6
  • 登出: Ctrl + d
  • 功能鍵 (捲頁): Shift + PageUp / PageDown (可捲動的頁面 Buffer 跟主機的顯示卡 Memory 有關)
  • 執行序 (終止): Ctrl + c
  • 執行序 (暫停): Ctrl + z

Graphical Logins (called display managers): 圖形介面 (GUI)

  • 預設採用 Gnome 環境
  • 切換介面: Ctrl + Alt + F7 (startx in virtual consoles)
  • 登出:Ctrl + Alt + BackSpace (僅適用於當機時,否則將遺失某些東西 Missing Something)
  • 功能鍵 (目錄): Alt + F1
  • 功能鍵 (切換): Alt + Tab



7、文字介面 vs 圖形介面

簡單來說圖形介面操作優勢為容易操作使用 (上手度高) 而文字介面為彈性大 (上手度相對較低),舉例來說使用圖形介面來建立 Linux 使用者帳號可以非常快速且方便的建立,但若要一次建立 10 個使用者帳號時就必須操作 10 次,然而若使用文字介面則僅使用一行指令即可完成,所以各有各的好處及優缺點請依個人喜好自行選擇。

下列指令為在文字模式下利用迴圈方式建立 10 個使用者帳號 (user1 ~ user10),且密碼同使用者帳號。
for u in $(seq 1 1 10); do useradd user${u}; echo user${u} | passwd --stdin user${u}; done
  Changing password for user user1.
  passwd: all authentication tokens updated successfully.
  Changing password for user user2.
  passwd: all authentication tokens updated successfully.
  Changing password for user user3.
  passwd: all authentication tokens updated successfully.
  Changing password for user user4.
  passwd: all authentication tokens updated successfully.
  Changing password for user user5.
  passwd: all authentication tokens updated successfully.
  Changing password for user user6.
  passwd: all authentication tokens updated successfully.
  Changing password for user user7.
  passwd: all authentication tokens updated successfully.
  Changing password for user user8.
  passwd: all authentication tokens updated successfully.
  Changing password for user user9.
  passwd: all authentication tokens updated successfully.
  Changing password for user user10.
  passwd: all authentication tokens updated successfully.
ls /home
  user1  user10  user2  user3  user4  user5  user6  user7  user8  user9

下列指令為在文字模式下利用迴圈方式刪除 10 個使用者帳號 (user1 ~ user10)
for u in $(seq 1 1 10); do userdel -r user${u}; done
ls /home




8、相對路徑 vs 絕對路徑

  • 相對路徑 (Relative Pathnames): 簡單來說就是相對於目前的路徑 (通常路徑名稱比較 )
  • 絕對路徑 (Absolute Pathnames): 簡單來說就是從根目錄至您要到達的路徑 (通常路徑名稱比較 )

下列操作為假設目前所在資料夾為 /etc 下欲切換資料夾至 /root。
pwd            //查詢目前所在路徑
  /etc
cd ../root    //相對路徑切換至 /root
cd /root       //絕對路徑切換至 /root

下列為其它相關知識
  • ..: 上一層
  • cd ..: 回到上一層目錄 (請注意 cd 與 .. 之間有空一格)
  • .: 當前目錄
  • ./test.sh: 執行當前目錄中 test.sh script
  • .file: 隱藏檔,例如 .bashrc (可使用指令 ls -al 顯示)
  • cd: 回到使用者家目錄
  • cd -: 回到上一個工作目錄