2016年3月25日 星期五

Linux 檔案權限, 變更權限的方法

因為 Linux 是多人多工的 OS, 所以, 檔案系統必須要有一套嚴密的保護措施, 以免, 因為有意或無意的人為破壞, 造成混亂及損失.
. Linux 將檔案分成三種身份、四種權限:
三種身份是:
  • u: 自己(user)
  • g: 和自己同一組的人(group)
  • o: 其它人 (other)
而 a 則是代表所有的人.
每種身份皆有四種可能的權限:
  • r : 讀取權 (read)
  • w : 寫入權 (write)
  • x :執行權 (execute)
及: (上面這三種權限用得最多, 以下則較少用, 也請儘量不使用, 除非你確實知道你在做啥麼?!)
  • s : set user id / set group id 及 t : sticky bit (簡稱為 sst 模式)
    4000 : set user id, 2000 set group id, 1000 set sticky bit
Linux 用 9 個 bits 來代表檔案的權限, 如下所示:
-- - -- - -- -
-rwxrwxrwx
 擁有人同組人其它人
每三個形成一組, 由左至右, 分別代表擁有人、同組人、其它人的權限.
每一組的三個位置, 由左至右為: 讀取,寫入,執行的權限, 若該位置只有一條線, 則表示不具有該權限.
另外, 我們也用數字來代表不同的權限:
  • 讀取: 4
  • 寫入: 2
  • 執行: 1
如果某檔, 其擁有的權限為 rwx 的話, 那麼, 我們便把它們所代表的數字大小加起來, 即 4+2+1 =7
以下是可能的組合:
---0
--x1
-w-2
r--4
-wx2+1=3
r-x4+1=5
rw-4+2=6
rwx7

2. 改變權限的方法.
有兩種改變檔案權限的方法:
  • 八進位數字模式
  • 符號模式
使用的指令是: chmod (change mode : change the access permissions of files)
方法如下:
chmod  權限  檔案/目錄
例:
  • chmod 666 myfile
  • chmod 777 myfile
  • chmod 755 myfile
  • chmod 111 myfile
以上是採八進位數字模式
  • chmod u+x myfile
  • chmod u-x myfile
  • chmod ug+x myfile
  • chmod g-x myfile
  • chmod o+x myfile
  • chmod o-x myfile
  • chmod a+x myfile
  • chmod a-x myfile
  • chmod a=x myfile
  • chmod u=wr myfile
  • chmod go=rx myfile
以上是採符號模式.
+ 表增加該種權限
- 表去掉該種權限
= 表設定作該種權限
3. 目錄的權限.
目錄的權限, 觀念及設法, 同於檔案的權限, 但其包含的意義則大不相同.
以 "可執行的" 這個權限而言, 對檔案來說, 若該檔設為可執行的話, 其意義很容易了解, 但如果將目錄設為可執行, 那麼難道目錄真的是可以執行的嗎? :-Q
當然不是.
Linux 對於目錄的權限, 另有一套看法:
r可列出目錄中的檔案名稱, 即 ls 有作用
w在該目錄中, 可刪檔,改檔名,建新檔
x可以進入該目錄之中(重要觀念, 用處大)
如果某一個目錄下, 尚有許多檔案和子目錄, 有無方法可以一次改變所有的檔案權限呢?
當然有.
chmod -R 權限 目錄名稱
其中 -R 表示 Recursively change permissions of directories and their contents, 意即遞迴地將其下的所有檔案、目錄全數改變.
4. 改變檔案的擁有者(owner) 或 組別 (group)
通常這只有 root 等級的使用者, 才有此項權力. (否則就天下大亂了! 不過, 某些 Uuix clone 開放有限制的作法)
方法如下:
chown [-R] owner:group 檔案/目錄
例:
chown -R 3slo:hacker /home/ols3

沒有留言:

張貼留言