17,360 瀏覽數

Linux – chmod / chown / chgrp – 權限修改指令

權限更改指令以及其他和權限相關檔案

chmod(Change file or directory’s mode)

# chmod [option] mode file

mode 也就是使用者存取檔案權限,只有 owner 以及 root 才能更改檔案權限.

option :
-R recursive 子目錄權限要要一起修改.

設定方式可以用數字來表示或者可用文字來敘述,我們用下面的範例來說明

[root@benjr ~]# chmode 755 install.log
[root@benjr ~]# chmod u=rwx,g=rx,o=rx  install.log
[root@benjr ~]#  ll install.log
-rwxr-xr-x    1  root    root    80825  Jan  3  16:01  install.log

755 等於 -rwxr-xr-x ,算法為頭一個 “-" 不算.之後的每3個為一組.有設定 rwx 的為1, “-" 為 0.最後再用8進制的轉換.所以
rwxr-xr-x = [111] [101] [101] = [7] [5] [5]
如果 8 進制對你有換算上的困難,你可以用下面文字的方式來設定
u=rwx,g=rx,o=rx 的白話就是 user 有 read , write , eXecute , group 有 read , eXecute ,other 有 read , eXecute  的權限
755 等於 u=rwx,g=rx,o=rx  他跟數字參照的方式如下
[7] [5] [5]= [111] [101] [101]
第一組數字 [111] u=rwx
第二組數字 [101] g=rx
第三組數字 [101] o=rx

除了一般的 rwx 權限外,還有下列三種特殊權限,請參考 特殊權限的設定

chown (change file owner and group)

# chown [option] owner:[group] file..

更改檔案的 owner 以及 group

root 登入系統,建立一個共用目錄並讓所有的使用者都能讀取 (r)/ 新增 (w) 檔案以及進入目錄 (x) 的權限

[root@benjr ~]# mkdir /fs1
[root@benjr ~]# chmod -R 777 /fs1

建立一個使用者 “user1″,並讓 root 建立一個檔案不要將權限給開放出來給任何的使用者,我們將透過更改這檔案擁有者使得權限做轉移.

[root@benjr ~]# adduser user1
[root@benjr ~]# passwd user1
[root@benjr ~]# cd  /fs1
[root@benjr fs1]# echo “Create by root" > root.txt
[root@benjr fs1]# chmod go-r root.txt
[root@benjr fs1]# ll root1.txt
-rw——-  1  root    root    17  Jul  14 22:11 root.txt

user1 登入系統,一開始使用者 user1 並沒又權限讀取 root.txt.

[user1@benjr ~]# cd  /fs1
[user1@benjr fs1]# cat root.txt
cat : root.txt Permission denied

root 登入系統,並將檔案的擁有者 (owner) 以及群組 (group) 作一下修改.

[root@benjr ~]# cd  /fs1
[root@benjr fs1]# chown user1:user1 root.txt
[root@benjr fs1]# ll root.txt
-rw——-  1  user1    user1    17  Jul  14 22:11 user1.txt

注意看到檔案的擁有者和群組都變為 user1

user1 登入系統,user1 可以讀取 root.txt 檔案了也可以做寫入的動作了.

[user1@benjr ~]# cd  /fs1
[user1@benjr fs1]# cat root.txt
Create by root
[user1@benjr fs1]# echo “Modify by user1″ >> root.txt
[user1@benjr fs1]# cat root1.txt
Create by root
Modify by user1

這都是因為更改檔案的 owner 以及 group 成為 user1,所以權限 -rw——-  變成 user1 有 read / write 的權限.

chgrp(Change group ownership)

chown 需要同時指定 owner 和 Group 的使用者,如果你只是單純想要更改 Group 的擁有者不妨使用 chgrp 這一個指令.

[root@benjr ~]# chgrp user1 install.log

網友的想法

  1. 自動參照通知: Linux – File | Benjr.tw

發表迴響