Linux操作系統系列之文件權限
來源:程序員人生 發布時間:2014-06-18 03:49:35 閱讀次數:3096次
Linux 繼承自 Unix,自設計之初就是多用戶的系統。我們用實際的例子說明一下。
~/test$ ls -l
-rw-r--r-- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
drwxr-xr-x 2 yuhen yuhen 4096 2009-08-03 20:08 b
顯示的信息分別表示(按列): 文件屬性、鏈接數(inode)、文件擁有者(owner)、文件所屬用戶組(group)、文件大小、最新修改日期、文件(目錄)名。
1. 文件屬性
文件或目錄有 10 個基本屬性,第 1 個表示類型,后 9 個分為三組,分別表示 owner、group、others 的執行屬性。
文件類型: [d] 目錄; [-] 文件; [l] 鏈接文件; ...
執行屬性: [r] 可讀; [w] 可寫; [x] 可執行。
-rw-r--r-- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
表示文件擁有者(owner)可讀寫(rw)、用戶組(group)和其他用戶(other)只讀(r)。屬性還可以用數字表示 r = 4, w = 2, x = 1,比如 rw-r--r-- = 644。
~/test$ ls -l
-rw-r--r-- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
drwxr-xr-x 2 yuhen yuhen 4096 2009-08-03 20:08 b
~/test$ chmod 664 ./a.txt
~/test$ ls -l
-rw-rw-r-- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
drwxr-xr-x 2 yuhen yuhen 4096 2009-08-03 20:08 b
當然,我們也可以用更直觀的參數。
~/test$ chmod a+w a.txt # 全部設置為可寫
~/test$ ls -l
-rw-rw-rw- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
drwxr-xr-x 2 yuhen yuhen 4096 2009-08-03 20:08 b
~/test$ chmod ug=rw,o=r a.txt # 擁有人和組可讀寫, 其他只讀
~/test$ ls -l
-rw-rw-r-- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
drwxr-xr-x 2 yuhen yuhen 4096 2009-08-03 20:08 b
~/test$ chmod u=rw,g-w a.txt # 擁有人可讀寫, 組移除寫
~/test$ ls -l
-rw-r--r-- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
drwxr-xr-x 2 yuhen yuhen 4096 2009-08-03 20:08 b
參數說明:
(1) u = owner; g = group; o = other; a = u + g + o
(2) [=] 設置; [-] 移除; [+] 增加。
對于目錄而言, r 表示讀取目錄結構的權限,w 表示可以在目錄里創建、刪除、移動文件和子目錄,x 表示可以進入該目錄。
~/test$ ls -l
-rw-r--r-- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
drwxr-xr-x 2 yuhen yuhen 4096 2009-08-03 20:08 b
~/test$ chmod a-x ./b # 移除 x
~/test$ ls -l
-rw-r--r-- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
drw-r--r-- 2 yuhen yuhen 4096 2009-08-03 20:08 b
~/test$ cd b # 無法進入該目錄
-bash: cd: b: Permission denied
~/test$ chmod a+x b # 恢復
~/test$ ls -l
-rw-r--r-- 1 yuhen yuhen 0 2009-08-03 20:07 a.txt
drwxr-xr-x 2 yuhen yuhen 4096 2009-08-03 20:08 b
~/test$ cd b # 正確進入
chmod 支持 -R 參數對目錄下所有文件和子目錄進行遞歸修改。
除了上述的基本屬性外,還可以用 chattr 和 lsattr 設置和顯示隱藏屬性。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈