chown 命令使用方法

Linux?系統(tǒng)上的每個文件和目錄均由某個人擁有,擁有者可以完全控制更改或刪除他們擁有的文件。除了有一個擁有用戶外,文件還有一個擁有組。?
你可以使用?ls -l?命令查看文件的所有權(quán):?
[pablo@workstation?Downloads]$?ls?-ltotal?2454732-rw-r--r--.?1?pablo?pablo?1934753792?Jul?25?18:49?Fedora-Workstation-Live-x86_64-30-1.2.iso該輸出的第三和第四列是擁有用戶和組,它們一起稱為所有權(quán)。上面的那個?ISO?文件這兩者都是?pablo。?
所有權(quán)設(shè)置由?chmod?命令進行設(shè)置,控制允許誰可以執(zhí)行讀取、寫入或運行的操作。你可以使用?chown?命令更改所有權(quán)(一個或兩者)。?
所有權(quán)經(jīng)常需要更改。文件和目錄一直存在在系統(tǒng)中,但用戶不斷變來變?nèi)?。當文件和目錄在系統(tǒng)中移動時,或從一個系統(tǒng)移動到另一個系統(tǒng)時,所有權(quán)也可能需要更改。?
我的主目錄中的文件和目錄的所有權(quán)是我的用戶和我的主要組,以?user:group?的形式表示。假設(shè)?Susan?正在管理?Delta?組,該組需要編輯一個名為?mynotes?的文件。你可以使用?chown?命令將該文件的用戶更改為?susan,組更改為?delta:?
$?chown?susan:delta?mynotesls?-l-rw-rw-r--.?1?susan?delta?0?Aug??1?12:04?mynotes當給該文件設(shè)置好了?Delta?組時,它可以分配回給我:?
$?chown?alan?mynotes$?ls?-l?mynotes-rw-rw-r--.?1?alan?delta?0?Aug??1?12:04?mynotes給用戶后添加冒號(:),可以將用戶和組都分配回給我:?
$?chown?alan:?mynotes$?ls?-l?mynotes-rw-rw-r--.?1?alan?alan?0?Aug??1?12:04?mynotes通過在組前面加一個冒號,可以只更改組?,F(xiàn)在,gamma?組的成員可以編輯該文件:?
$?chown?:gamma?mynotes$?ls?-l-rw-rw-r--.?1?alan?gamma?0?Aug??1?12:04?mynoteschown?的一些附加參數(shù)都能用在命令行和腳本中。就像許多其他?Linux?命令一樣,chown?有一個遞歸參數(shù)(-R),它告訴該命令進入目錄以對其中的所有文件進行操作。沒有?-R?標志,你就只能更改文件夾的權(quán)限,而不會更改其中的文件。在此示例中,假定目的是更改目錄及其所有內(nèi)容的權(quán)限。這里我添加了?-v(詳細)參數(shù),以便?chown?報告其工作情況:?
$?ls?-l?.?conf.:drwxrwxr-x?2?alan?alan?4096?Aug??5?15:33?confconf:-rw-rw-r--?1?alan?alan?0?Aug??5?15:33?conf.xml$?chown?-vR?susan:delta?confchanged?ownership?of?'conf/conf.xml'?from?alan:alan?to??susan:deltachanged?ownership?of?'conf'?from?alan:alan?to??susan:delta根據(jù)你的角色,你可能需要使用?sudo?來更改文件的所有權(quán)。?
在更改文件的所有權(quán)以匹配特定配置時,或者在你不知道所有權(quán)時(例如運行腳本時),可以使用參考文件(--reference=RFILE)。例如,你可以復(fù)制另一個文件(RFILE,稱為參考文件)的用戶和組,以撤消上面所做的更改。回想一下,點(.)表示當前的工作目錄。?
$?chown?-vR?--reference=.?conf報告更改?
大多數(shù)命令都有用于控制其輸出的參數(shù)。最常見的是?-v(--verbose)以啟用詳細信息,但是?chown?還具有?-c(--changes)參數(shù)來指示?chown?僅在進行更改時報告。chown?還會報告其他情況,例如不允許進行的操作。?
參數(shù)?-f(--silent、--quiet)用于禁止顯示大多數(shù)錯誤消息。在下一節(jié)中,我將使用?-f?和?-c,以便僅顯示實際更改。?
保持根目錄?
Linux?文件系統(tǒng)的根目錄(/)應(yīng)該受到高度重視。如果命令在此層級上犯了一個錯誤,則后果可能會使系統(tǒng)完全無用。尤其是在運行一個會遞歸修改甚至刪除的命令時。chown?命令具有一個可用于保護和保持根目錄的參數(shù),它是?--preserve-root。如果在根目錄中將此參數(shù)和遞歸一起使用,那么什么也不會發(fā)生,而是會出現(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é)合使用,則該選項無效。但是,如果該命令由?root?用戶運行,則?/?本身的權(quán)限將被更改,但其下的其他文件或目錄的權(quán)限則不會更改:?
$?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)是良好的信息安全性的一部分,因此,偶爾檢查和維護文件所有權(quán)以防止不必要的訪問非常重要。chown?命令是?Linux?安全命令集中最常見和最重要的命令之一。
了解更多相關(guān)內(nèi)容歡迎關(guān)注http://www.vecloud.com/