在Linux中,創(chuàng)建一個(gè)文件時(shí),該文件的擁有者都是創(chuàng)建該文件的用戶。該文件用戶可以修改該文件的擁有者及用戶組,當(dāng)然root用戶可以修改任何文件的擁有者及用戶組。在Linux中,對(duì)于文件的權(quán)限(rwx),分為三部分,一部分是該文件的擁有者所擁有的權(quán)限,一部分是該文件所在用戶組的用戶所擁有的權(quán)限,另一部分是其他用戶所擁有的權(quán)限。對(duì)于文件的權(quán)限請(qǐng)參考《Linux的chmod命令》
創(chuàng)新互聯(lián)建站堅(jiān)信:善待客戶,將會(huì)成為終身客戶。我們能堅(jiān)持多年,是因?yàn)槲覀円恢笨芍档眯刨?。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。10余年網(wǎng)站建設(shè)經(jīng)驗(yàn)創(chuàng)新互聯(lián)建站是成都老牌網(wǎng)站營銷服務(wù)商,為您提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、html5、網(wǎng)站制作、品牌網(wǎng)站制作、小程序定制開發(fā)服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。
文件(含文件夾,下同)的權(quán)限,在shell中可以通過chmod命令來完成,關(guān)于此請(qǐng)參考《Linux的chmod命令》。在
shell
中,可以使用chown命令來改變文件所有者及用戶組,chgrp命令來改變文件所在用戶組。在
Linux的C程序中,可以使用chown函數(shù)來改變文件所有者,及所在用戶組。
另外,在shell中,要修改文件當(dāng)前的用戶必須具有管理員root的權(quán)限??梢酝ㄟ^su命令切換到root用戶,也可以通過sudo獲得root的權(quán)限。
二、使用chown命令更改文件擁有者
在
shell
中,可以使用chown命令來改變文件所有者。chown命令是change
owner(改變擁有者)的縮寫。需要要注意的是,用戶必須是已經(jīng)存在系統(tǒng)中的,也就是只能改變?yōu)樵?/p>
/etc/passwd這個(gè)文件中有記錄的用戶名稱才可以。
chown命令的用途很多,還可以順便直接修改用戶組的名稱。此外,如果要連目錄下的所有子目錄或文件同時(shí)更改文件擁有者的話,直接加上
-R的參數(shù)即可。
基本語法:
chown
[-R]
賬號(hào)名稱
文件或目錄
chown
[-R]
賬號(hào)名稱:用戶組名稱
文件或目錄
參數(shù):
-R
:
進(jìn)行遞歸(
recursive
)的持續(xù)更改,即連同子目錄下的所有文件、目錄
都更新成為這個(gè)用戶組。常常用在更改某一目錄的情況。
示例1:
[root@localhost
home]#
touch
testfile
//由
root
用戶創(chuàng)建文件
[root@localhost
home]#
ls
testfile
–l
-rw--w--w-
1
root
root
Jun
7
19:35
testfile
//文件的擁有者及擁有者級(jí)均為
root
[root@localhost
home]#
chown
yangzongde
testfile
//修改文件擁有者為
yangzongde
[root@localhost
home]#
ls
testfile
-l
-rw--w--w-
1
yangzongde
root
Jun
7
19:35
testfile
//查看文件擁有者為
yangzongde,但組仍為
root
示例2:
chown
bin
install.log
ls
-l
-rw-r--r--
1
bin
users
68495
Jun
25
08:53
install.log
chown
root:root
install.log
ls
-l
-rw-r--r--
1
root
root
68495
Jun
25
08:53
install.log
三、使用chgrp命令更改文件所屬用戶組
在shell中,可以使用chgrp命令來改變文件所屬用戶組,該命令就是change
group(改變用戶組)的縮寫。需要注意的是要改變成為的用戶組名稱,必須在
/etc/group里存在,否則就會(huì)顯示錯(cuò)誤。
基本語法:
chgrp
[-R]
用戶組名稱
dirname/filename
...
參數(shù):
-R
:
進(jìn)行遞歸(
recursive
)的持續(xù)更改,即連同子目錄下的所有文件、目錄
都更新成為這個(gè)用戶組。常常用在更改某一目錄的情況。
linux怎么修改文件所屬用戶和組
在Linux中,創(chuàng)建一個(gè)文件時(shí),該文件的擁有者都是創(chuàng)建該文件的用戶。該文件用戶可以修改該文件的擁有者及用戶組別;或者在root用戶下,這樣可以修改任何文件的擁有者及用戶組。
而修改文件所屬用戶和組,需要用到chown命令。
chown 命令,可以認(rèn)為是 "change owner" 的縮寫,主要用于修改文件(或目錄)的所有者,除此之外,這個(gè)命令也可以修改文件(或目錄)的所屬組。
當(dāng)只需要修改所有者時(shí),可使用如下 chown 命令的基本格式:
-R(注意大寫)選項(xiàng)表示連同子目錄中的所有文件,都更改所有者。
當(dāng)只需要修改所屬組時(shí),可使用如下 chown 命令的基本格式:
如果需要同時(shí)更改所有者和所屬組,chown 命令的基本格式為:
注意,在 chown 命令中,所有者和所屬組中間也可以使用點(diǎn)(.),但會(huì)產(chǎn)生一個(gè)問題,如果用戶在設(shè)定賬號(hào)時(shí)加入了小數(shù)點(diǎn)(例如 zhangsan.temp),就會(huì)造成系統(tǒng)誤判。因此,建議大家使用冒號(hào)連接所有者和所屬組。
當(dāng)然,chown 命令也支持單純的修改文件或目錄的所屬組,例如 chown :group install.log 就表示修改 install.log 文件的所屬組,但修改所屬組通常使用 chgrp 命令,因此并不推薦大家使用 chown 命令。
另外需要注意的一點(diǎn)是,使用 chown 命令修改文件或目錄的所有者(或所屬者)時(shí),要保證使用者用戶(或用戶組)存在,否則該命令無法正確執(zhí)行,會(huì)提示 "invalid user" 或者 "invaild group"。
chown命令的使用示例
1、更改文件的所屬者
首先我們使用ls -l命令來查看一下文件的所屬,例:
下面我們使用chown命令來更改該tmpfile文件的所屬者
然后再使用ls -l命令來查看一下該tmpfile文件的所屬
可以看出:該tmpfile文件的所屬者從“himanshu”變?yōu)榱恕皉oot”
2、更改文件組
通過chown命令,也可以更改組(文件所屬的組別)。
使用以下命令來更改文件所屬的組別:
然后使用ls -l命令來查看一下該tmpfile文件的所屬
也可以直接一次性更改文件的所屬者和組別為root,需要使用以下命令:
1、打開自己的linux系統(tǒng)。
2、接著打開“終端”命令窗口。
3、接著修改一個(gè)文件的所有者和組別,首先先看看這個(gè)文件的所屬。
4、接著輸入一下命令chown root music,先修改文件的所有者。注意修改文件的時(shí)候必須在root用戶下。
5、再接著查看文件的所有者是否被修改成功。
6、然后輸入chgrp root music命令,來修改文件的用戶組。
7、最后再查看一下文件的用戶組也被修改了。
解決的方法和操作步驟如下:
1、首先,打開Linux系統(tǒng),創(chuàng)建目錄,并使用命令mkdir
ceshi創(chuàng)建一個(gè)文件夾,如下圖所示,然后進(jìn)入下一步。
2、其次,完成上述步驟后,檢查此文件夾的權(quán)限,如下圖所示,然后進(jìn)入下一步。
3、接著,完成上述步驟后,此ceshi文件的用戶組linuxadmin,修改用戶組的權(quán)限chgrp
root ceshi,如下圖所示,然后進(jìn)入下一步。
4、然后,完成上述步驟后,chmod -R
a + w修改ceshi文件夾的權(quán)限,如下圖所示,然后進(jìn)入下一步。
5、隨后,完成上述步驟后,chown更改文件夾所有者,將chown所有者用作bin,如下圖所示,然后進(jìn)入下一步。
6、最后,完成上述步驟后,可以使用[man]
chgrp,chown和chmod來檢查權(quán)限,如下圖所示。這樣,問題就解決了。
更改Linux文件目錄的擁有者可以用chown命令,chown的意思就是change owner,它的用法是:
chown 用戶名:用戶組名 文件或目錄
用戶名是需要修改成哪個(gè)用戶所有,用戶組名是修改成哪個(gè)用戶組(厲害不,還能修改所屬用戶組),注意用戶名和組名之間的那個(gè)冒號(hào)是英文冒號(hào),后面接著是需要修改的文件或目錄,一個(gè)示例:
chown root:root /home/mydir
示例將/home/mydir目錄的擁有者修改為root,所屬用戶組修改為root用戶組。
如果只想修改擁有者呢,那只給出一個(gè)用戶名就可以了,就像下面這樣:
chown root /home/testfile
注意:chown有一個(gè)選項(xiàng),對(duì)于修改目錄的所有者很有用,那就是-R選項(xiàng),-R選項(xiàng)表示遞歸修改,就是連目錄下的子目錄里面的所有文件、目錄都修改所有者。
如果只想修改文件或目錄所屬用戶組呢,那可以用chgrp命令,用法和chown類似:
chgrp 用戶組 文件或目錄
chgrp命令也有一個(gè)-R選項(xiàng)噢,和chown的-R選項(xiàng)用法一樣,都是用于目錄。
修改某個(gè)文件的擁有者,最常見的應(yīng)用場(chǎng)景是在復(fù)制文件給其他人時(shí) 1 。
假設(shè)原來在 vagrant 賬號(hào)下有一個(gè) deniro.txt 文件:
這時(shí)我們使用 cp 命令( cp deniro.txt deniro_copy.txt ),把這個(gè)文件復(fù)制一份給其他人:
可以看到,這個(gè)新的 deniro_copy.txt 文件,它的擁有者以及擁有組名都為 vagrant。
如果我們把這個(gè)文件給其他賬號(hào),他們?nèi)绻麤]有權(quán)限,根本無法使用。
解決這一問題的方法之一是使用 chgrp 命令修改這個(gè)新文件所在的組 2 。
這里我們采用另一種方法:修改這個(gè)新文件的擁有者。這會(huì)用到 chown 命令。Linux chown(英文全拼:change owner)命令用于設(shè)置文件所有者和文件關(guān)聯(lián)組的命令 3 。
chown 命令格式為: chown [-R] user[:group] file
比如我們想把新的 deniro_copy.txt 文件的擁有者改為 operator、組名修改為 tty,那么可以執(zhí)行命令 chown operator:tty deniro_copy.txt (可能需要權(quán)限高的賬號(hào)來執(zhí)行該命令):
參考資料:
【1】鳥哥. 鳥哥的Linux私房菜 基礎(chǔ)學(xué)習(xí)篇[M]. 第四版. 北京: 人民郵電出版社,2018:212-213.
【2】 說說在 Linux 中如何修改某個(gè)文件所屬群組 .
【3】 Linux chown 命令 .