溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

簡(jiǎn)單介紹 chown 命令

發(fā)布時(shí)間:2020-08-03 06:46:32 來(lái)源:網(wǎng)絡(luò) 閱讀:159 作者:mdadmmeng 欄目:系統(tǒng)運(yùn)維

Linux?系統(tǒng)上的每個(gè)文件和目錄均由某個(gè)人擁有,擁有者可以完全控制更改或刪除他們擁有的文件。除了有一個(gè)擁有用戶外,文件還有一個(gè)擁有組。

你可以使用 ls -l?命令查看文件的所有權(quán):

[pablo@workstation?Downloads]$?ls?-l
total?2454732
-rw-r--r--.?1?pablo?pablo?1934753792?Jul?25?18:49?Fedora-Workstation-Live-x86_64-30-1.2.iso

該輸出的第三和第四列是擁有用戶和組,它們一起稱為所有權(quán)。上面的那個(gè) ISO 文件這兩者都是 pablo。

所有權(quán)設(shè)置由 chmod 命令進(jìn)行設(shè)置,控制允許誰(shuí)可以執(zhí)行讀取、寫入或運(yùn)行的操作。你可以使用 chown 命令更改所有權(quán)(一個(gè)或兩者)。

所有權(quán)經(jīng)常需要更改。文件和目錄一直存在在系統(tǒng)中,但用戶不斷變來(lái)變?nèi)?。?dāng)文件和目錄在系統(tǒng)中移動(dòng)時(shí),或從一個(gè)系統(tǒng)移動(dòng)到另一個(gè)系統(tǒng)時(shí),所有權(quán)也可能需要更改。

我的主目錄中的文件和目錄的所有權(quán)是我的用戶和我的主要組,以 user:group 的形式表示。假設(shè) Susan 正在管理 Delta 組,該組需要編輯一個(gè)名為 mynotes 的文件。你可以使用 chown 命令將該文件的用戶更改為 susan,組更改為 delta:

$?chown?susan:delta?mynotes
ls?-l
-rw-rw-r--.?1?susan?delta?0?Aug??1?12:04?mynotes

當(dāng)給該文件設(shè)置好了 Delta 組時(shí),它可以分配回給我:

$?chown?alan?mynotes
$?ls?-l?mynotes
-rw-rw-r--.?1?alan?delta?0?Aug??1?12:04?mynotes

給用戶后添加冒號(hào)(:),可以將用戶和組都分配回給我:

$?chown?alan:?mynotes
$?ls?-l?mynotes
-rw-rw-r--.?1?alan?alan?0?Aug??1?12:04?mynotes

通過在組前面加一個(gè)冒號(hào),可以只更改組?,F(xiàn)在,gamma 組的成員可以編輯該文件:

$?chown?:gamma?mynotes
$?ls?-l
-rw-rw-r--.?1?alan?gamma?0?Aug??1?12:04?mynotes

chown 的一些附加參數(shù)都能用在命令行和腳本中。就像許多其他 Linux 命令一樣,chown 有一個(gè)遞歸參數(shù)(-R),它告訴該命令進(jìn)入目錄以對(duì)其中的所有文件進(jìn)行操作。沒有 -R 標(biāo)志,你就只能更改文件夾的權(quán)限,而不會(huì)更改其中的文件。在此示例中,假定目的是更改目錄及其所有內(nèi)容的權(quán)限。這里我添加了 -v(詳細(xì))參數(shù),以便 chown 報(bào)告其工作情況:

$?ls?-l?.?conf
.:
drwxrwxr-x?2?alan?alan?4096?Aug??5?15:33?conf
conf:
-rw-rw-r--?1?alan?alan?0?Aug??5?15:33?conf.xml
$?chown?-vR?susan:delta?conf
changed?ownership?of?'conf/conf.xml'?from?alan:alan?to??susan:delta
changed?ownership?of?'conf'?from?alan:alan?to??susan:delta

根據(jù)你的角色,你可能需要使用 sudo 來(lái)更改文件的所有權(quán)。

在更改文件的所有權(quán)以匹配特定配置時(shí),或者在你不知道所有權(quán)時(shí)(例如運(yùn)行腳本時(shí)),可以使用參考文件(--reference=RFILE)。例如,你可以復(fù)制另一個(gè)文件(RFILE,稱為參考文件)的用戶和組,以撤消上面所做的更改?;叵胍幌?,點(diǎn)(.)表示當(dāng)前的工作目錄。

$?chown?-vR?--reference=.?conf

報(bào)告更改

大多數(shù)命令都有用于控制其輸出的參數(shù)。最常見的是 -v(--verbose)以啟用詳細(xì)信息,但是 chown 還具有 -c(--changes)參數(shù)來(lái)指示 chown 僅在進(jìn)行更改時(shí)報(bào)告。chown 還會(huì)報(bào)告其他情況,例如不允許進(jìn)行的操作。

參數(shù) -f(--silent、--quiet)用于禁止顯示大多數(shù)錯(cuò)誤消息。在下一節(jié)中,我將使用 -f 和 -c,以便僅顯示實(shí)際更改。

保持根目錄

Linux 文件系統(tǒng)的根目錄(/)應(yīng)該受到高度重視。如果命令在此層級(jí)上犯了一個(gè)錯(cuò)誤,則后果可能會(huì)使系統(tǒng)完全無(wú)用。尤其是在運(yùn)行一個(gè)會(huì)遞歸修改甚至刪除的命令時(shí)。chown 命令具有一個(gè)可用于保護(hù)和保持根目錄的參數(shù),它是 --preserve-root。如果在根目錄中將此參數(shù)和遞歸一起使用,那么什么也不會(huì)發(fā)生,而是會(huì)出現(xiàn)一條消息:

$?chown?-cfR?--preserve-root?alan?/
chown:?it?is?dangerous?to?operate?recursively?on?'/'
chown:?use?--no-preserve-root?to?override?this?failsafe

如果不與 --recursive 結(jié)合使用,則該選項(xiàng)無(wú)效。但是,如果該命令由 root 用戶運(yùn)行,則 / 本身的權(quán)限將被更改,但其下的其他文件或目錄的權(quán)限則不會(huì)更改:

$?chown?-c?--preserve-root?alan?/
chown:?changing?ownership?of?'/':?Operation?not?permitted
[root@localhost?/]#?chown?-c?--preserve-root?alan?/
changed?ownership?of?'/'?from?root?to?alan

所有權(quán)即安全

文件和目錄所有權(quán)是良好的信息安全性的一部分,因此,偶爾檢查和維護(hù)文件所有權(quán)以防止不必要的訪問非常重要。chown 命令是 Linux 安全命令集中最常見和最重要的命令之一。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI