(1) 使用ls –l查看文件,前面顯示的-rwxrwxr-x是什麼意思?socket
(2) chmod 755 xxx.sh又是什麼意思?工具
1分鐘簡單說下,這兩個和權限相關的問題。spa
先說下文件類型,訪問方式,權限分類。ip
Linux下,分爲這麼幾種文件類型:it
d:目錄directorypip
l:符號連接linkio
s:套接字socketclass
c:字符設備charfile
p:命名管道pipe權限
-:其餘,不屬於以上幾類
文件建立後,有三種訪問方式:
讀(read):顯示內容
寫(write):編輯內容,刪除文件
執行(execute):執行文件
針對用戶,文件有三類權限:
建立人(user)權限:建立文件的人
組(group)用戶權限:和擁有者處於同一用戶組的其餘人
其餘(other)用戶權限
瞭解了文件類型,訪問方式,三類權限以後,第一個問題就比較好解答了。
例如,上述a.out的第一列
-rwxrwxr-x
共有十個字符,分爲四個部分:
第1個字符表示文件的類型:[-]表示普通文件
第234字符表示建立人的權限:[wxr]表示可讀,可寫,可執行
第567字符表示組用戶權限:[wxr]表示可讀,可寫,可執行
第890字符表示其餘用戶權限:[r-x]表示可讀,可執行
如何改變文件的權限呢?
chmod命令用於改變文件的權限,它有兩種使用方法。
第一種:chomod [who] [operator] [permission] filename
[who]
u:建立人
g:組用戶
o:其餘用戶
a:全部用戶(all)
[operator]
+:增長權限
-:取消權限
=:設定權限
[permission]
r:讀
w:寫
x:執行
如何給一個文本文件xxx.sh增長可執行權限?
chmod u+x xxx.sh
如何不讓其餘用戶修改xxx.sh?
chmod go-w xxx.sh
第二種方法:chmod [mode] filename
[mode]是一個3位八進制數:
第一位表示建立者權限
第二位表示組用戶權限
第三位表示其餘用戶權限
更具體的:
400:建立者可讀
200:建立者可寫
100:建立者可執行
040:組用戶可讀
020:組用戶可寫
010:組用戶可執行
004:其餘用戶可讀
002:其餘用戶可寫
001:其餘用戶可執行
3位對應位的對應數字加起來,最終就是三類用戶的最終權限。
如何回收非建立者用戶對xxx.sh的全部權限?
chmod 700 xxx.sh
第一位7:4+2+1,建立者,可讀可寫可執行
第二位0:組用戶,無權限
第三位0:其餘用戶,無權限
xxx.sh只容許建立者修改,容許其餘用戶讀取和執行,怎麼設置?
chmod 755 xxx.sh
第一位7:4+2+1,建立者,可讀可寫可執行
第二位5:4+1,組用戶,可讀可執行
第三位5:4+1,其餘用戶,可讀可執行
畫外音:通常來講,寫了一個工具,只容許本身修改,不容許別人修改,但容許別人使用,這就是755。