3.3.5 檔案的擁有權

檔案剛建立的時候,擁有人會與建立檔案的人相同,已存在檔案的擁有人與群組可以用 "chown" 跟 "chgrp" 指令來更改:

chown [-R] USER.[GROUP] FILE...    改變檔案擁有人
chgrp [-R] GROUP FILE...             改變檔案群組

"chown" 指令一定要 root 才可以使用,可以用來改變檔案的擁有人以及群組,這個指令的第一個參數是擁有人與群組,群組不一定要指定,假如有要設定群組的話,擁有人與群組兩者之間要用一個小數點 '.' 隔開,所以其實用 "chown" 指令就可以一次將擁有人跟群組都設定好:

[root@h2 /root]# ls -l tmp.file
-rw-r--r-- 1 root root 286 May 12 12:22 tmp.file
[root@h2 /root]# chown platin.platin tmp.file
[root@h2 /root]# ls -l tmp.file
-rw-r--r-- 1 platin platin 286 May 12 12:22
tmp.file
[root@h2 /root]#

假如 "chown" 後面給的參數是一個目錄的話,"chown" 只會改變這個目錄的擁有人或群組,想要連目錄底下的檔案都改變的話,必須加上 "-R" 選項,"-R" 是 "Recursive" 的意思,會把這個目錄連同它下面的所有檔案、目錄的擁有人跟群組都一起改變。

"chgrp" 則只能用來改變檔案的群組,而且不限於 root,只要檔案的擁有人是屬於該群組的使用者,都可以用 "chgrp" 改變檔案的群組狀態。

群組可以用在一群人合作的情況,例如說,您有一個檔案希望讓一群人來共同編輯,可以先建立一個群組,把要參予這個計劃的人都加入這個群組,後把檔案設定成這個群組的人都可以讀、寫的狀態,我們底下用建立一個 cledevel 的群組來當例子:

[root@h2 /tmp]# groupadd cledevel
[root@h2 /tmp]# gpasswd -a platin cledevel
Adding user platin to group cledevel
[root@h2 /tmp]# gpasswd -a cle cledevel
Adding user cle to group cledevel
[root@h2 /tmp]# chgrp cledevel workfile
[root@h2 /tmp]# chmod g+rw workfile
[root@h2 /tmp]# ls -l workfile
-rw-rw-r-- 1 root cledevel 246 May 12 14:25
workfile
[root@h2 /tmp]#

在上面這個例子裡面,我們把 platin 跟 cle 兩個人都加入了 cledevel 這個群組,並且設定 workfile 群組為 cledevel,群組權限為可讀可寫,所以以後 platin 跟 cle 兩人都可以編輯 workfile 這個檔案了。