linux中檔案/資料夾的許可權
linux是一個多使用者的作業系統,每個使用者都有自己的檔案,有些檔案對用於來講是保密的,不希望別人看到,有些檔案儘管可以被別人看到,但不允許別人去修改,還有些檔案是允許所有人自由修改的,所以就有了檔案的許可權。如果使用者比較多的話,有些檔案對一些人是可讀可寫的,對令一些人卻是隱藏的,這種情況下設定使用者組則可以更加有效地來管理許可權。本篇部落格要討論的就是這一堆的事情在linux中是如何工作的。
使用者/使用者組/許可權 概覽
首先,檔案具有三種類型的許可權,分別是:
- 可讀(r)
- 可寫(w)
- 可執行(x)
由於使用者組的概念也攙合進來了,所以,每個檔案需要分別指明對擁有者/組內成員/組外成員的許可權。
來看一下我本機的使用者目錄下的檔案列表
[[email protected] ~]$ ls -al
total 132
drwx------. 25 kite kite 4096 9月 16 19:18 .
drwxr-xr-x. 4 root root 4096 9月 14 09:21 ..
-rw-------. 1 kite kite 2555 9月 16 15:59 .bash_history
-rw-r--r--. 1 kite kite 193 5月 30 12:53 .bash_profile
-rw-r--r--. 1 kite kite 231 5月 30 12:53 .bashrc
drwx------ . 25 kite kite 4096 9月 16 16:02 .cache
drwxr-xr-x. 2 kite kite 4096 9月 13 21:26 Desktop
drwxr-xr-x. 2 kite kite 4096 9月 13 21:26 Documents
以上是使用者目錄下的部分檔案,包含的資訊量是很大的,以.bash_profile檔案為例,列表共包含以下資訊
-(檔案型別)rw-r–r–(檔案許可權) . 1(連線數) kite(檔案擁有著) kite(所屬使用者組) 193 5月 30 12:53(修改時間) .bash_profile(檔名)
檔案型別的話,常見的是兩種,-
d
表示資料夾。 檔案許可權共包含9個字元,每三個字元為一組,前三個是對所有者(owner)的讀取/寫入/執行許可權,中間三個對組內成員(group)的讀取/寫入/執行許可權,最後三個是對組外成員(others)的讀取/寫入/執行許可權。
許可權一定是九個字元,如果有許可權,則會顯示對應的許可權程式碼,讀取/寫入/執行的許可權程式碼分別是r/w/x,如果沒有對應的許可權的話,則顯示為
-
。
還以.bash_profile檔案為例,rw-r--r--
,它的owner具有讀取和寫入的許可權,group具有讀取許可權,others也具有讀取許可權。
以Desktop資料夾為例,rwxr-xr-x
,它的owner具有讀取/寫入/執行的許可權,group和others具有讀取和執行許可權。
檔案許可權和資料夾許可權
檔案的許可權比較好理解
- r 表示檔案的內容可以被讀取
- w 表示這個檔案的內容可以被修改。
- x 代表檔案可以被執行,一般情況下,.sh檔案需要有這個許可權。
容易引起誤會的是,擁有w許可權並不代表可以對此檔案進行刪除操作和重新命名操作,w許可權僅代表檔案的內容可以被修改。
資料夾的許可權稍微有點不一樣
- r 表示可以檢視此資料夾下的檔名列表
- w 表示可以對此資料夾下的檔案進行刪除/重新命名/移動
- x 表示可以將此資料夾作為working dir,或者說表示可以cd
到這個資料夾中
可以將資料夾/檔案的關係理解為程式碼中的list/object,如果一個list是隻讀的,表示你不能做insert/delete等操作,但仍然可以修改object內部的任何屬性。
所以,一個檔案是否可以被刪除,取決於檔案所在的資料夾是否具有w許可權。那麼,我們同樣也可以得出這麼一個結論:擁有資料夾的w許可權,並不意味著可以對資料夾本身進行重新命名或刪除,因為這個決定於此資料夾的parent資料夾是否具有w許可權。
修改許可權
根據對上面內容的理解,我們可以從三個方面來修改一個檔案或資料夾的許可權
- 修改group
- 修改owner
- 修改檔案相對於owner/group/others的許可權
接下來分別介紹這三個操作
修改group
chgrp [-R] groupname filename/dirname
chgrp
就是change group,意思就是將filename/dirname
所在的組修改為groupname
組,如果提供-R
引數並且最後一個引數是一個資料夾的話,則會遞迴影響該資料夾下的所有檔案和資料夾。
修改owner
chown [-R] owner filename/dirname
chown [-R] owner:groupname filename/dirname
chown
就是change owner,意思是將filename/dirnane
所屬的所有者修改為owner
使用者,如果提供-R
引數並且最後一個引數是一個資料夾的話,則會遞迴影響該資料夾下的所有檔案和資料夾。
該命令還可以使用owner:groupname
的形式,在修改owner的同時,順帶著把group也修改了。
修改許可權
比起前兩個,修改許可權更有意思了,使用chmod
命令來完成。它的目的就是修改許可權對應的9個字元,但支援兩種方式,分別是數字方式和字元方式。
數字方式
將owner/group/others所對應的9個許可權程式碼每三個分為一組,共3組,每個許可權程式碼代表一個數字,每組將三個數字求和,最終給出每組程式碼的和。r=4,w=2,x=1。
例如:rwx=4+2+1=7,rw-=4+2=6,r-x=4+1=5,r–=4
如果希望將a.txt檔案的許可權修改為rw-r–r–的話,先計算出三組程式碼之和是(4+2),(4),(4),最終的許可權程式碼是644,最終的命令為
chmod 644 a.txt
字元方式
將owner/group/others對應為三個字元,owner=u(user),group=group,others=o,可以為某一組增加或刪除某個許可權,也可以直接為某一組設定一個新的許可權。增加/刪除/重置對應的字元是+/-/=。
假設我想為start.sh增加一個執行許可權給擁有者,可以這麼寫
chmod u+x start.sh
如果我向刪除start.sh對應的group和others的執行許可權,可以這麼寫
chmod go-x start.sh
上面的兩個命令還可以和到一起寫
chmod u+x,go-x start.sh
注意,u+x,go-x
中間是沒有空格的
如果我希望直接將hello.txt檔案的許可權設定為rwxr--r--
的話,可以這麼寫
chmod u=rwx,go=r
除了owner=u(user),group=group,others=o之外,還有一個a,代表所有,也就是說,a等價於ugo。如果我希望同時給start.sh對應的owner/group/others都去掉執行許可權的話,可以這麼寫
chmod u-x,g-x,o-x start.sh
chmod ugo-x start.sh
還可以這麼寫
chmod a-x start.sh
好了,表達能力實在有限,希望我的例子你能夠看懂。
相關推薦
linux中檔案/資料夾的許可權
linux是一個多使用者的作業系統,每個使用者都有自己的檔案,有些檔案對用於來講是保密的,不希望別人看到,有些檔案儘管可以被別人看到,但不允許別人去修改,還有些檔案是允許所有人自由修改的,所以就有了檔案的許可權。如果使用者比較多的話,有些檔案對一些人是可讀可寫的
Linux中檔案的隱藏許可權
在linux中使用ls -l列出的檔案許可權有-rwxrwxrwx這9個,其實除了這9個外還有另外的一些隱藏的許可權,這些許可權需要使用lsattr這個命令才可以檢視到,而如果要修改隱藏許可權,則使用chattr這個命令來進行修改。 chattr:引數
我是如何把linux中的資料夾拷貝到window本地的
首先我先把這個資料夾打包 tar -czvf frag.tar.gz frag/* 執行這個命令的目錄是在frag目錄的上層目錄 然後 sz frag.tar.gz 就儲存在window下了 儲存
Linux 中檔案和資料夾獲取 MySQL 許可權(SELinux)
今天在 Linux 系統上移動 MySQL 的資料庫目錄 配置如下: /etc/my.cnf [mysqld]datadir=/home/mysqlsocket=/var/lib/mysql/mysql.sock 更改完配置檔案重啟MYSQL的時候出現
python修改linux中檔案(資料夾)的許可權屬性
今天生成的對流雲團路徑圖片放在linux下,檔案的許可權都是rw,沒有x,後續的別人的程式調用不了,這裡附上對三個屬性的簡單解釋,有不夠的歡迎大家補充 Linux的許可權不是很細緻,只有RWX三種 r(Read,讀取):對檔案而言,具有讀取檔案內容的許可權;對目錄來說,具有
Linux檔案許可權與資料夾許可權實踐
檔案許可權在基礎中有介紹,不在重複 一、資料夾許可權: 示例: 解釋說明: r --read 既ls w --write 既建立新的目錄或者檔案 x --execute 既cd 現在有4個使用者分屬3個不同的使用者組,如下:
Linux檔案和資料夾許可權解讀
首先來檢視一下當前目錄下的檔案內容吧: ls -l 檢視當前目錄下的檔案列表 ls -ld 目錄名稱 檢視指定資料夾許可權 ls -l xxx.xxx (xxx.xxx是檔名) 檢視指定的檔案 我們可以看到檔案的許可權,-rw-rw-r--
Linux Desktop下檔案管理中導航資料夾設定
在ubuntu系統中,我們開啟預設的檔案管理器,檔案管理器左側欄會看到home,桌面,視訊,圖片等目錄的導航欄,以便我們能快速的找到我們需要的檔案。 問題是這些導航的資料夾的路徑可以更改麼? 答
linux c建立資料夾,並在資料夾中建立檔案
************************************************************************************************************ 建立資料夾,在在檔案裡面建立檔案: 一個例項: #inc
Linux 建立使用者、賦予使用者許可權、修改資料夾許可權、修改只讀檔案
建立使用者 # useradd work 設定使用者密碼 # passwd work 賦予使用者許可權 方法一: 修改 /etc/sudoers 檔案,找到下面一行,把前面的
linux 下修改資料夾的使用者許可權和所屬組,為檔案建立軟連線
chown wlq testfilwe //為資料夾testfile更改擁有者為wlq chgrp [-r] wlq testfile //為資料夾testfile更改擁有者組為wlq sudo du -sh /home/* //檢視一臺機器上
使用Java修改Linux的檔案或資料夾許可權
今天做功能碰到了一個情況: 需要在程式中自動在linux的根目錄建立一個路徑,並往裡存圖片。 開始只是簡單的將圖片移動到指定的路徑中,竟然無法訪問。竟分析後發現是因為資料夾和檔案的許可權不夠導致。 以下程式碼是將資料夾和檔案的許可權進行修改的: /** * 圖片上傳* @p
linux中將檔案或者資料夾許可權分配給某個使用者
現有個使用者tom,他是可以對 /home/tom 資料夾下的任何檔案進行任何操作的,如果想給他分配 /opt/test 資料夾的許可權,需要 1:chown -R tom /opt/test 此命令是指定test資料夾的所有者是tom,-R是遞迴。如果test是檔案就去掉
Linux 下統計資料夾中檔案的數量
方法一: 這裡涉及幾個命令: 命令1: ls -l === ll 其實不用太多解釋,這個是入門命令,當然,還有-R引數。列出子目錄和檔案 命令2: grep “^-” grep我的理解是GNU正則(GNU regular expression)的縮寫,這裡是匹配
Linux資料夾許可權777,無法建立檔案
問題描述 在linux系統中,使用mysql匯出csv檔案,預設資料夾是/tmp目錄,可以匯出成功,然後我在/tmp/下面建立了一個lx目錄,並將/tmp/lx的許可權設定為777,也就是/tmp與/tmp/lx的許可權都是777,再將mysql資料匯出到lx
linux刪除指定資料夾中某個檔案除外的其他檔案
# shopt -s extglob # rm -fr !(file1) 如果是多個要排除的,可以這樣: # rm -rf !(file1|file2) 首先科普下shopt -s extglob Bash Shell有個extglob選項,開啟之後Shell可以另外識別出5個模式匹配操作符,能使檔
Ubuntu Linux查詢、修改檔案和資料夾許可權
1、檢視檔案及資料夾許可權:ls -l 檔名稱,ls -ld 資料夾名稱 在住資料夾下新建一個空白文件nihao,建立資料夾hello 命令:ls -l nihao 檢視文件的的許可權 -rw-rw-r
linux利用scp遠端上傳下載檔案/資料夾
scp是secure copy的簡寫,用於在Linux下進行遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且scp傳輸是加密的。可能會稍微影響一下速度。 當你伺服器硬碟變為只讀 read only system時,用scp可
Linux command: 統計資料夾下的檔案數目
Linux下有三個命令:ls、grep、wc。通過這三個命令的組合可以統計目錄下檔案及資料夾的個數。 統計當前目錄下檔案的個數(不包括目 1 $ ls -l | grep "^-" | wc -l
【注意】關於WEBCONTENT中新建資料夾下的JSP檔案出現404問題
最近犯了一個很蠢的錯誤,本來我在ECLIPSE 的WEBCONTENT中新建了個資料夾用來存放新的程式碼。 但是就在這時,我去新建個HTML檔案,起名為測試1.html,結