先來熟悉下權限,以上一個例子comm下的文檔為例
$ls -l
-rw-rw-r-- 1 yjplxq yjplxq 36 7月 30 22:40 A.txt
-rw-rw-r-- 1 yjplxq yjplxq 27 7月 30 22:41 B.txt
-rw-rw-r-- 1 yjplxq yjplxq 1231 7月 30 22:45 comm.txt
-rwxrwxr-x 1 yjplxq yjplxq 0 7月 31 11:22 comm.sh
drw-rw-r-- 1 yjplxq yjplxq 1231 7月 30 22:45 subcomm
第一列講解:
"-" 指普通檔案
"d" 指目錄
"c" 指字元裝置
"b" 塊裝置
"l" 字元連接配接
"s" 套接字
"p" 管道
第一列剩下部分分為三組,第一組三個字元(rwx)代表使用者權限,第二組對應使用者組權限,第三組對應其他使用者權限。
權限簡述:
r 指read 讀權限
w 指write 寫權限
x 指execute 執行
S 隻用于替換“x”權限位 setuid or setgid
T 隻用于替換“x”權限位 粘滞位 目錄設定了粘滞位,隻有建立該目錄的使用者才能删除目錄檔案
下面一起熟悉下chmod
chmod 用來改變你的操作權限,全稱:change modle. 非常好記。
熟悉下--help:
用法:chmod [選項]... 模式[,模式]... 檔案...
或:chmod [選項]... 八進制模式 檔案...
或:chmod [選項]... --reference=參考檔案 檔案...
将每個檔案的模式更改為指定值。
-c, --changes 類似 --verbose,但隻在有更改時才顯示結果
--no-preserve-root 不特殊對待根目錄(預設)
--preserve-root 禁止對根目錄進行遞歸操作
-f, --silent, --quiet 去除大部份的錯誤資訊
-v, --verbose 為處理的所有檔案顯示診斷資訊
--reference=參考檔案 使用指定參考檔案的模式,而非自行指定權限模式
-R, --recursive 以遞歸方式更改所有的檔案及子目錄
--help 顯示此幫助資訊并退出
--version 顯示版本資訊并退出
每種 MODE 都應屬于這類形式"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"。
解讀:
1. 八進制模式檔案
聽着名詞有點大,其實很簡單。
r=4 w=2 x=1 是以如果你看到這個表達式:
rwxrw-r-- 實際上可表示為764
那麼你可以這樣 chmod 764 ${filename} 此時filename使用者有了讀寫執行權限,而使用者組有了讀寫權限,其他使用者隻有讀的權限。
2. --reference=參考檔案
你可以設定一個檔案的權限作為模闆,然後
chmod --reference=${參考檔案} ${被修改檔案}
3. 每種mode都應該屬于"[ugoa]*([-+=]([rwxXst]*|[ugo]))+"。
舉例:
3.1.chmod o=u filename #filename其他使用者有和使用者同樣的權限
3.2.a指的是all chmod a+x filename #filaname所有使用者增加執行權限
實戰技巧:
1. 遞歸修改目前目錄下所有權限
$chmod 777 . –R
2. 制定權限模闆 如u7.tl為 使用者讀寫執行權限模闆
$chmod --reference=參考檔案 的方式
3. 設定粘滞位
$chmod a+t directory_name
chmod算是必須掌握,經常用到,次數不算頻繁的一個操作(感覺沖突是吧),呵呵。
相關指令:chown, w, who
<a href="http://down.51cto.com/data/2361124" target="_blank">附件:http://down.51cto.com/data/2361124</a>
本文轉自 wws5201985 51CTO部落格,原文連結:http://blog.51cto.com/yjplxq/948864,如需轉載請自行聯系原作者