權限更改指令以及其他和權限相關檔案
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 權限外,還有下列三種特殊權限,請參考特殊權限的設定 – https://benjr.tw/164
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
One thought on “Linux command – chmod / chown / chgrp”