修改檔案的所屬使用者組 chgrp

改變一個檔案的使用者組真的是很簡單,直接以chgrp來改變即可,這個命令就是change group的簡稱。不過,請記得,要改變的組名必須要在/etc/group檔案記憶體在才行,否則就會顯示錯誤

用法:

chgrp [-R] dirname/filename…
-R:遞迴處理,將指令目錄下的所有檔案及子目錄一併處理
-v:顯示指令執行過程
-c:效果類似”-v”引數,但僅回報更改的部分
-f:不顯示絕大多數的錯誤資訊
–version 列印版本並退出
–help 展示幫助並退出

以下引數描述了怎麼遍歷層級目錄,只有和-R同時使用才奏效。當果指定了多個引數,如有最後一個奏效
-H 如果命令列引數是一個指向目錄的符號連結,則遍歷他,而子目錄確不遍歷
-L 遍歷所有遇到的指向目錄的符號連結
-P 不遍歷任何符號連結(預設)

以下演示都是以root身份
演示群組名不在/etc/group的錯誤情況

sh-3.2# chgrp jianglei2 test
chgrp: jianglei2: illegal group name

打印出指令執行過程

[[email protected] jianglei]# chgrp root -v testchgrp
changed group of 'testchgrp' from jianglei2 to root

[[email protected] jianglei]# chgrp root -v testchgrp
group of 'testchgrp' retained as root

遞迴的更改目錄的群組

sh-3.2# chgrp -Rv staff  testchgrp
testchgrp/log1.txt
testchgrp/log2.txt
testchgrp/log3.txt
testchgrp

改變檔案所有者:chown

既然改變使用者組是change group,那麼改變所有者就是change owner。命令為chown

要注意的是,使用者必須是已經存在於系統中的帳號,也就是/etc/passwd這個檔案中有記錄的使用者名稱稱才能改變

chown的用途還是挺多的,它還可以順便直接修改使用者組的名稱。此外如果要邊目錄下的所有子目錄或檔案同時更改所有者的話,直接加上-R的引數即可

centos man chown對該命令的描述
chown改變每個指定檔案的擁有者或使用者群組。

如果僅給定了使用者名稱或使用者的ID,會用給定的使用者更改給定的檔案,檔案的群組不會改變。

如果像user:group這樣指定引數, 檔案的使用者群組也會改變

如果像user:這樣指定引數 給定使用者名稱,接冒號而沒指定群組。指定檔案的擁有者會改變成user,指定檔案的群組會變成user的登陸群組

如果像:group這樣指定引數,沒有指定user 僅指定了:後接group。 chown表現的會跟chgrp一樣。

如果僅指定了: 或者要更改的檔案沒有指定。那麼既不會改變檔案的擁有者也不會改變群組。

用法

chown [OPTION]… [OWNER][:[GROUP]] FILE…
chown [OPTION]… –REFERENCE=RFILE FILE…
-c
-f
-v
-dereference
-h
-R

示例

改變一個檔案的擁有者

sh-3.2# mkdir testchown
sh-3.2# ls -al | grep testchown
drwxr-xr-x    2 root      staff       68  5 28 23:44 testchown
sh-3.2# chown -v jianglei testchown
testchown
sh-3.2# ls -al | grep testchown
drwxr-xr-x    2 jianglei  staff       68  5 28 23:44 testchown

改變一個檔案的擁有者和群組

sh-3.2# chown -v jianglei:nobody testchown
testchown
sh-3.2# ls -al | grep testchown
drwxr-xr-x    2 jianglei  nobody      68  5 28 23:44 testchown

改變一個檔案的群組

sh-3.2# chown :staff testchown
sh-3.2# ls -al | grep testchown
drwxr-xr-x    2 root      staff       68  5 28 23:44 testchown

文獻出處

《鳥的私房菜-基礎學習篇》

補充 chown的許可權限制–普通使用者無法將onwer改成其他使用者,如root

[jianglei@localhost ~]$ chown root .bashrc_test
chown: changing ownership of '.bashrc_test':Operation not premitted

Linux/Unix是多使用者多工作業系統,所有的檔案皆有其擁有者(Owner)。利用chown命令可以將檔案的擁有者加以改變。一般來說,這個命令只能由系統管理者(root)使用,一般使用者沒有許可權來改變別人檔案的擁有者,也沒有許可權可以將自己的檔案的擁有者改設為別人。只有系統管理(root)才有這樣的許可權
引自:百度百科

.