iT邦幫忙

DAY 4
7

邁向 RHCE 之路系列 第 4

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

----- 權限 (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

----- 檔案 (File)、目錄 (Folder) ------
有關於 讀取 (r)、寫入 (w)、執行 (x) 對於檔案及目錄的說明如下:
檔案 (File):
讀取 (r):可 讀取 檔案內容
入 (w): 可 寫入 內容於檔案
執行 (x): 可 執行 該檔案

目錄 (Folder):
讀取 (r):目錄內容預覽 (例如: ls) 若該目錄無讀取權限則連補位 (Tab) 功能也將失效
入 (w): 對於該目錄及其子目錄 (含檔案) 具有 建立、刪除 的權限,因此即使該子目錄或檔案及擁有者為 root 也可輕易刪除之
執行 (x): 可 進入 該目錄 (例如: cd)
----- 檔案及目錄的所有權 (OwnerShip) ------
擁有者 (Owner): 除了該檔案的建立者之外僅 root 能改變該檔案的擁有者 (owner),可以使用 chown 指令來修改檔案及目錄的擁有者,使用 -R 參數可一次套用設定至所有子目錄及檔案,使用 -v 參數可於指令執行後立即顯示執行結果。

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

----- 檔案及目錄的權限 (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) 權限,也就是有讀取、執行的權限

----- 登入 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

----- 文字介面 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

----- 相對路徑 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 -: 回到上一個工作目錄

(上一篇)邁向 RHCE 之路 (Day03) - 使用者帳號管理
(下一篇)邁向 RHCE 之路 (Day05) - 如何查看指令用法
邁向 RHCE 之路系列文章連結


上一篇
邁向 RHCE 之路 (Day03) - 使用者帳號管理
下一篇
邁向 RHCE 之路 (Day05) - 如何查看指令用法
系列文
邁向 RHCE 之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言