11 個(gè)更改文件混合的 Linux Chown 命令示例

言鼎科技 2023-07-13 451

摘要: 在本初學(xué)者指南中,我們將探討 chown 命令的一些實(shí)際示例。遵循本指南后,用戶可以有效地管理 Linux 上的文件可用性???/span>


在Linux中,一切皆文件,即所有輸入/輸出,如文件、數(shù)據(jù)庫、磁盤驅(qū)動(dòng)器、打印機(jī)等都通過文件系統(tǒng)命名空間公開為文件。除此之外,Linux 中的每個(gè)文件都有相關(guān)的所有權(quán)。


所有權(quán)由兩個(gè)實(shí)體代表——用戶和組。權(quán)限和所有權(quán)的結(jié)合使得Linux能夠高效地實(shí)現(xiàn)去中心化的訪問機(jī)制。


在本指南中,我們將了解 chown 命令。顧名思義,chown 命令用于更改文件的所有者。遵循本指南后,初學(xué)者可以在使用 Linux 系統(tǒng)時(shí)有效地使用 chown 命令。


Chown命令的語法如下:


$ chown [選項(xiàng)]... [所有者][:[組]] [文件-1] [文件-2]...[文件-N]


現(xiàn)在讓我們通過一些 Linux 中的好例子來了解 chown 命令的用法。


1. 如何查找文件所有者

查找文件所有者的最簡(jiǎn)單方法是使用 ls 命令,該命令將列出文件的用戶和組。


$ touch file-1.txt

$ ls -l 文件-1.txt


在上面的輸出中,我們可以看到該文件屬于howtoing用戶和組。該數(shù)據(jù)由第三列和第四列表示。


2. 如何更改文件所有權(quán)

chown 命令允許我們更改文件的所有者。讓我們通過將用戶 narendra 設(shè)置為文件的所有者來看看它的用法:


$ sudo chown narendra 文件-1.txt

現(xiàn)在,讓我們檢查文件的所有權(quán)是否已更改:


$ ls -l 文件-1.txt 


3. 如何更改組文件所有權(quán)

與用戶一樣,我們也可以使用 chown 命令更改文件的組所有者。因此,讓我們?yōu)閳F(tuán)隊(duì)的文件設(shè)置團(tuán)隊(duì)所有權(quán) - narendra:


$ sudo chown :narendra file-1.txt

需要注意的是,(:)在更改組的所有權(quán)時(shí),我們必須使用與組名稱成對(duì)的組。


現(xiàn)在,讓我們驗(yàn)證擁有該文件的組:


$ ls -l 文件-1.txt


4. 如何更改文件所有權(quán)和組

在前面的示例中,我們使用了 chown 命令兩次。首先,更改用戶屬性,然后更改組所有者。但我們可以使用單個(gè)命令更改用戶和組。


讓我們使用以下命令重置用戶和組 howtoing 的文件所有權(quán):


$ sudo chown howtoing:howtoing file-1.txt


在此示例中,我們使用冒號(hào)(:)將用戶與組分隔開。該對(duì)之前的值代表用戶,而該對(duì)之后的值代表組。


現(xiàn)在,讓我們看看更新后的文件所有者:


$ ls -l 文件-1.txt 


5. 如何更改模型連接的所有權(quán)

默認(rèn)情況下,chown 命令刪除符號(hào)鏈接,也就是說,如果輸入文件是符號(hào)鏈接,則它返回引用文件的所有權(quán),而不是符號(hào)鏈接本身。


但是,我們可以使用選擇來覆蓋默認(rèn)行為,-h如下例所示。


首先,創(chuàng)建一個(gè)示例鏈接并驗(yàn)證它是否指向正確的參考文件:


$ ln -s file-1.txt 符號(hào)鏈接

$ ls -l 符號(hào)鏈接

-h接下來,使用選項(xiàng)更改示例連接的所有者:


$ sudo chown -h narendra:narendra 符號(hào)鏈接

最后,檢查它是否屬于示例鏈接及其參考文件:


$ ls -l 符號(hào)鏈接文件-1.txt


6. 如何將文件所有權(quán)分配給用戶

有時(shí)我們只需要在驗(yàn)證文件當(dāng)前所有權(quán)后更新文件所有權(quán)。在這種情況下,我們可以使用--fromchown 命令中的選項(xiàng),如下所示。


$ sudo chown -h --來自 narendra:narendra howtoing:howtoing 符號(hào)鏈接

在此示例中,--from該選項(xiàng)代表文件的當(dāng)前所有者,而下一個(gè)參數(shù)代表新所有者。因此,如果文件屬于用戶和組 narendra,則上述命令僅更改文件的所有權(quán) - 符號(hào)鏈接。


現(xiàn)在,讓我們看看更新文件的所有權(quán):


$ ls -l 符號(hào)鏈接



在此示例中,我們(:)使用雙引號(hào)指定用戶和組。但是,我們可以按照前面示例中的討論來指定每一個(gè)。


7. 如何從另一個(gè)文件復(fù)制所有權(quán)

有時(shí),最好從現(xiàn)有文件中復(fù)制所有權(quán),而不是從命令行提供相同的所有權(quán)。在這種情況下,我們可以使用--referenceselect 和 chown 命令,它代表將從中復(fù)制所有權(quán)的文件。


首先,創(chuàng)建一個(gè)新文件并更改其所有者:


$ touch file-2.txt

$ sudo chown narendra:narendra file-2.txt

現(xiàn)在,讓我們看看這兩個(gè)文件的當(dāng)前所有者:


$ ls -l 文件1.txt 文件2.txt 

接下來,使用以下命令將 file-2.txt 文件的所有權(quán)設(shè)置為 file-1.txt:


$ sudo chown --reference=file-1.txt file-2.txt

最后,檢查所有權(quán)是否已成功轉(zhuǎn)移:


$ ls -l 文件1.txt 文件2.txt 


從上面的輸出中,我們可以看到現(xiàn)在兩個(gè)文件具有相同的所有權(quán)。


8. 如何更改站點(diǎn)所有權(quán)強(qiáng)制重復(fù)

我們還可以使用 chown 命令來更改庫所有權(quán)。但是,該命令的默認(rèn)行為不是遞歸的。


這意味著 chown 命令只會(huì)更改輸入文件夾的所有權(quán)。但是,我們可以使用-R選擇來覆蓋此默認(rèn)行為,如下例所示。


首先,創(chuàng)建一個(gè)文件夾并在其中創(chuàng)建兩個(gè)文件:


$ mkdir dir-1

$ touch dir-1/demo-1.txt dir-1/demo-2.txt

接下來,檢查文件夾及其文件的所有者:


$ ls -ld dir-1

$ ls -l dir-1

然后,遞歸地更改文件夾及其文件的所有者:


$ sudo chown -R narendra:narendra dir-1

最后,檢查該文件夾及其文件是否擁有:


$ ls -ld dir-1

$ ls -l dir-1


9. 如何打印 chown 命令進(jìn)程報(bào)告

默認(rèn)情況下,chown 命令在更改其所有者后不會(huì)在終端上打印任何內(nèi)容。所以,到目前為止,我們使用-lls 命令中的選項(xiàng)來驗(yàn)證更新后的 master。


為了克服這個(gè)限制,我們可以啟用命令的表達(dá)式形式來打印每個(gè)修改文件的診斷信息。當(dāng)我們與-R選項(xiàng)一起使用時(shí),此選項(xiàng)提供了有意義的信息:


因此,讓我們使用命令行-v選項(xiàng)來啟用詳細(xì)模式:


$ sudo chown -Rv howtoing:howtoing dir-1

現(xiàn)在,讓我們看看命令的輸出:



10. 如何阻止 chown 命令錯(cuò)誤

與其他 Linux 命令一樣,chown 在發(fā)生錯(cuò)誤情況時(shí)提供有意義的信息。發(fā)生該錯(cuò)誤的原因有多種,例如缺少文件、組或用戶、執(zhí)行某些功能的權(quán)限不足等等。


然而,有時(shí)我們不想顯示這些錯(cuò)誤消息。在這種情況下,我們可以使用命令-f選項(xiàng)來關(guān)閉錯(cuò)誤消息。


為了更好地理解這一點(diǎn),讓我們嘗試更改一個(gè)不存在的文件的所有者:


$ sudo chown -f narendra:narendra 不存在的文件.txt

$回聲$?

1

現(xiàn)在,讓我們看看命令的輸出:



正如我們所看到的,上面的命令沒有顯示任何錯(cuò)誤。但是,該命令通過使用非零返回值來報(bào)告失敗。


11. 如何更改文件用戶和組 ID

到目前為止,我們已經(jīng)使用用戶名和組名來更改文件的所有權(quán)。然而,我們也可以使用用戶和組 ID 來達(dá)到相同的結(jié)果。


首先,使用 id 命令查找用戶 narendra 的用戶和組 ID:


$ id 納倫德拉

現(xiàn)在,讓我們通過 chown 命令使用用戶和組 ID 1001:


$ ls -l 文件-1.txt

$ sudo chown 1001:1001 文件-1.txt

最后,檢查所有權(quán)是否已成功轉(zhuǎn)移:


$ ls -l 文件-1.txt


在本文中,我們將研究 chown 代碼的一些實(shí)際示例。人們可以在日常生活中使用這些示例來提高使用 Linux 系統(tǒng)時(shí)的工作效率。


您知道 Linux 中 chown 命令的其他最佳示例嗎?請(qǐng)?jiān)谙旅娴脑u(píng)論中告訴我們您的看法。

言鼎科技

The End