在Linux下chown用來改變文件或目錄的擁有者,簡單的使用方法如下:chmod -R user[:group] file1 file2 ;其中-R選項用作目錄,代表遞歸修改目錄下所有文件的所有者,實例如下:chown linuxer:linuxer 123.txt //將123.txt這個文件的所有人和所有組修改為linuxer;如果有什么不懂的話可以看看《Linux就該這么學》這本書的第二章,詳細介紹了chown的用法和常用的選項。
興縣ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯建站的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
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 安全命令集中最常見和最重要的命令之一。
一、cd命令(切換目錄 )
(1)切換到目錄 /usr/local
cd /usr/local
(2)去到目前的上層目錄
cd ..
(3)回到自己的主文件夾
cd ~
二、ls命令(查看文件與目錄)
(4)查看目錄/usr下所有的文件
cd /usr ls -al
三、mkdir命令(新建新目錄 )
(5)進入/tmp目錄,創建一個名為a的目錄,并查看有多少目錄存在
cd /tmp
mkdir a ls -al
(6)創建目錄a1/a2/a3/a4
mkdir -p a1/a2/a3/a4
四、?rmdir命令(刪除空的目錄)
(7)將上例創建的目錄a(/tmp下面)刪除
rmdir a
(8)刪除目錄a1/a2/a3/a4,查看有多少目錄存在
rmdir -p a1/a2/a3/a4
ls -al
五、cp命令(復制文件或目錄 )
(9)將主文件夾下的.bashrc復制到/usr下,命名為bashrc1
sudo cp ~/.bashrc /usr/bashrc1
(10)在/tmp下新建目錄test,再復制這個目錄內容到/usr
cd /tmp
mkdir test
sudo cp -r /tmp/test /usr
六、mv命令(移動文件與目錄,或更名)
(11)將上例文件bashrc1移動到目錄/usr/test
sudo mv /usr/bashrc1 /usr/test
(12)將上例test目錄重命名為test2
sudo mv /usr/test /usr/test2
七、rm命令:移除文件或目錄
(13)將上例復制的bashrc1文件刪除
sudo rm /usr/test2/bashrc1
(14)將上例的test2目錄刪除
sudo rm -r /usr/test2
八、cat命令:查看文件內容
(15)查看主文件夾下的.bashrc文件內容
cat ~/.bashrc
九、tac命令:反向列示
(16)反向查看主文件夾下.bashrc文件內容
tac ~/.bashrc
十、more命令:一頁一頁翻動查看
(17)翻頁查看主文件夾下.bashrc文件內容
more ~/.bashrc
十一、head命令:取出前面幾行
(18)查看主文件夾下.bashrc文件內容前20行
head -n 20 ~/.bashrc
(19)查看主文件夾下.bashrc文件內容,后面50行不顯示,只顯示前面幾行
head -n -50 ~/.bashrc
十二、tail命令:取出后面幾行
(20)查看主文件夾下.bashrc文件內容最后20行
tail -n 20 ~/.bashrc
(21) 查看主文件夾下.bashrc文件內容,只列出50行以后的數據
tail -n +50 ~/.bashrc
十三、touch命令:修改文件時間或創建新文件
(22)在/tmp下創建一個空文件hello并查看時間
cd /tmp
touch hello ls -l hello
(23)修改hello文件,將日期調整為5天前
touch -d “5 days ago” hello
十四、chown命令:修改文件所有者權限
(24)將hello文件所有者改為root帳號,并查看屬性
sudo chown root /tmp/hello
ls -l /tmp/hello
十五、find命令:文件查找
(25)找出主文件夾下文件名為.bashrc的文件
find ~ -name .bashrc
十六、tar命令:壓縮命令
(26)在/目錄下新建文件夾test,然后在/目錄下打包成test.tar.gz
sudo mkdir /test
sudo tar -zcv -f /test.tar.gz test
(27)解壓縮到/tmp目錄
sudo tar -zxv -f /test.tar.gz -C /tmp
十七、grep命令:查找字符串
(28)從~/.bashrc文件中查找字符串'examples'
grep -n 'examples' ~/.bashrc
chown將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶ID;組可以是組名或者組ID;文件是以空格分開的要改變權限的文件列表,支持通配符。系統管理員經常使用chown命令,在將文件拷貝到另一個用戶的名錄下之后,讓用戶擁有使用該文件的權限。
1.命令格式:
chown [選項]... [所有者][:[組]] 文件...
2.命令功能:
通過chown改變文件的擁有者和群組。在更改文件的所有者或所屬群組時,可以使用用戶名稱和用戶識別碼設置。普通用戶不能將自己的文件改變成其他的擁有者。其操作權限一般為管理員。
3.命令參數:
必要參數:
-c 顯示更改的部分的信息
-f 忽略錯誤信息
-h 修復符號鏈接
-R 處理指定目錄以及其子目錄下的所有文件
-v 顯示詳細的處理信息
-deference 作用于符號鏈接的指向,而不是鏈接文件本身
選擇參數:
--reference=目錄或文件 把指定的目錄/文件作為參考,把操作的文件/目錄設置成參考文件/目錄相同擁有者和群組
--from=當前用戶:當前群組 只有當前用戶和群組跟指定的用戶和群組相同時才進行改變
--help 顯示幫助信息
--version 顯示版本信息
4.示例:
chown -R www:www /home/wwwroot/*
解釋:-R遞歸處理所有文件和文件夾,第一個www代表文件的擁有者名稱,第二個www代表所屬群組名稱。
修改某個文件的擁有者,最常見的應用場景是在復制文件給其他人時 1 。
假設原來在 vagrant 賬號下有一個 deniro.txt 文件:
這時我們使用 cp 命令( cp deniro.txt deniro_copy.txt ),把這個文件復制一份給其他人:
可以看到,這個新的 deniro_copy.txt 文件,它的擁有者以及擁有組名都為 vagrant。
如果我們把這個文件給其他賬號,他們如果沒有權限,根本無法使用。
解決這一問題的方法之一是使用 chgrp 命令修改這個新文件所在的組 2 。
這里我們采用另一種方法:修改這個新文件的擁有者。這會用到 chown 命令。Linux chown(英文全拼:change owner)命令用于設置文件所有者和文件關聯組的命令 3 。
chown 命令格式為: chown [-R] user[:group] file
比如我們想把新的 deniro_copy.txt 文件的擁有者改為 operator、組名修改為 tty,那么可以執行命令 chown operator:tty deniro_copy.txt (可能需要權限高的賬號來執行該命令):
參考資料:
【1】鳥哥. 鳥哥的Linux私房菜 基礎學習篇[M]. 第四版. 北京: 人民郵電出版社,2018:212-213.
【2】 說說在 Linux 中如何修改某個文件所屬群組 .
【3】 Linux chown 命令 .
新聞名稱:chown命令Linux,chown命令用于變更文件及目錄
網站地址:http://vcdvsql.cn/article0/hshdoo.html
成都網站建設公司_創新互聯,為您提供網站設計公司、ChatGPT、電子商務、靜態網站、企業網站制作、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯