chown 命令簡介

Linux 系統上的每個文件和目錄均由某個人擁有,擁有者可以完全控制更改或刪除他們擁有的文件。除了有一個擁有用戶外,文件還有一個擁有組。
你可以使用 ls -l
命令查看文件的所有權:
[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
該輸出的第三和第四列是擁有用戶和組,它們一起稱為所有權。上面的那個 ISO 文件這兩者都是 pablo
。
所有權設置由 chmod 命令進行設置,控制允許誰可以執行讀取、寫入或運行的操作。你可以使用 chown
命令更改所有權(一個或兩者)。
所有權經常需要更改。文件和目錄一直存在在系統中,但用戶不斷變來變去。當文件和目錄在系統中移動時,或從一個系統移動到另一個系統時,所有權也可能需要更改。
我的主目錄中的文件和目錄的所有權是我的用戶和我的主要組,以 user:group
的形式表示。假設 Susan 正在管理 Delta 組,該組需要編輯一個名為 mynotes
的文件。你可以使用 chown
命令將該文件的用戶更改為 susan
,組更改為 delta
:
$ chown susan:delta mynotes
ls -l
-rw-rw-r--. 1 susan delta 0 Aug 1 12:04 mynotes
當給該文件設置好了 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
通過在組前面加一個冒號,可以只更改組。現在,gamma
組的成員可以編輯該文件:
$ chown :gamma mynotes
$ ls -l
-rw-rw-r--. 1 alan gamma 0 Aug 1 12:04 mynotes
chown
的一些附加參數都能用在命令行和腳本中。就像許多其他 Linux 命令一樣,chown
有一個遞歸參數(-R
),它告訴該命令進入目錄以對其中的所有文件進行操作。沒有 -R
標誌,你就只能更改文件夾的許可權,而不會更改其中的文件。在此示例中,假定目的是更改目錄及其所有內容的許可權。這裡我添加了 -v
(詳細)參數,以便 chown
報告其工作情況:
$ 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
根據你的角色,你可能需要使用 sudo
來更改文件的所有權。
在更改文件的所有權以匹配特定配置時,或者在你不知道所有權時(例如運行腳本時),可以使用參考文件(--reference=RFILE
)。例如,你可以複製另一個文件(RFILE
,稱為參考文件)的用戶和組,以撤消上面所做的更改。回想一下,點(.
)表示當前的工作目錄。
$ chown -vR --reference=. conf
報告更改
大多數命令都有用於控制其輸出的參數。最常見的是 -v
(--verbose
)以啟用詳細信息,但是 chown
還具有 -c
(--changes
)參數來指示 chown
僅在進行更改時報告。chown
還會報告其他情況,例如不允許進行的操作。
參數 -f
(--silent
、--quiet
)用于禁止顯示大多數錯誤消息。在下一節中,我將使用 -f
和 -c
,以便僅顯示實際更改。
保持根目錄
Linux 文件系統的根目錄(/
)應該受到高度重視。如果命令在此層級上犯了一個錯誤,則後果可能會使系統完全無用。尤其是在運行一個會遞歸修改甚至刪除的命令時。chown
命令具有一個可用於保護和保持根目錄的參數,它是 --preserve-root
。如果在根目錄中將此參數和遞歸一起使用,那麼什麼也不會發生,而是會出現一條消息:
$ chown -cfR --preserve-root alan /
chown: it is dangerous to operate recursively on '/'
chown: use --no-preserve-root to override this failsafe
如果不與 --recursive
結合使用,則該選項無效。但是,如果該命令由 root
用戶運行,則 /
本身的許可權將被更改,但其下的其他文件或目錄的許可權則不會更改:
$ 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
所有權即安全
文件和目錄所有權是良好的信息安全性的一部分,因此,偶爾檢查和維護文件所有權以防止不必要的訪問非常重要。chown
命令是 Linux 安全命令集中最常見和最重要的命令之一。
via: https://opensource.com/article/19/8/linux-chown-command
作者:Alan Formy-Duval 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive
350fairfax nordvpn coupons inspiresensation
Wonderful work! This is the type of information that are supposed to
be shared across the web. Shame on the seek engines for not positioning
this publish upper! Come on over and visit my web site .
Thanks =)
Touche. Great arguments. Keep up the good work.
Look at my blog :: nordvpn coupons inspiresensation
With havin so much written content do you ever run into any issues of plagorism or copyright infringement?
My website has a lot of completely unique content I’ve either written myself or outsourced but it looks like a lot of it is popping it up all over the
web without my agreement. Do you know any ways to help prevent content
from being stolen? I’d genuinely appreciate it.
my website nordvpn coupons inspiresensation (s.bea.sh)
I was able to find good information from your articles.
Feel free to surf to my page; nordvpn coupons inspiresensation
After checking out a few of the blog articles on your blog, I
truly appreciate your way of writing a blog. I saved it to my bookmark site list and will be checking
back in the near future. Please check out my web site as well and tell me how you feel.
Stop by my web-site; nordvpn coupons inspiresensation