linux中的一切都是檔案,它的檔案分為以下幾類:
目錄檔案:就是目錄
連線檔案:類似windows的快捷方式
裝置檔案:通常在/dev中,又分為塊裝置檔案和字元裝置檔案,塊裝置是以字元塊為傳輸單位,而字元裝置是以單個字元為傳輸單位。
套接字: 這類檔案通常作用於網路資料連線中,通常放在/var/run目錄中
管道檔案:用於多個程序間的通訊,它是指上是乙個檔案緩衝區
當我們使用ls –al這條命令列出目錄中的檔案資訊時,我們可以看到它的檔案屬性是以下格
式:-rwxrwxrwx,其中』-』這個表示檔案型別:
【d】表示目錄;【-】表示檔案;【l】表示連線檔案;【b】表示塊裝置檔案;【c】表示字元設
備檔案;
而後面的9個屬性又分為三組,沒三個一組,分別表示使用者,群組和其它。其中【r】表示
可讀;【w】表示可寫;【x】表示可執行。同時,這三種屬性可以分別用數字來表示:
【r】:4;【w】:2;【x】:1
以上所述是檔案的基本許可權,此外,linux下的檔案還有三個特殊的許可權:suid/sgid/sticky bit
suid:當s許可權取代user的x時,也就是類似-r-s—x—x,稱為set uid,簡稱為suid,這時,當
使用者執行這個檔案時,就會暫時得到這個檔案擁有者的許可權。
setgid:與suid類似,只不過它的s是取代群組的x。
sbit:當t許可權取代其它的x時,就表示sbit,它只對目錄有效,對檔案沒有任何效果。在具
有sbit的目錄下,使用者若再該目錄下具有w及x的許可權,則當使用者在該目錄下建立檔案或
目錄時,只有檔案擁有者與root才有許可權刪除。
檔案許可權的更改
chgrp:改變檔案所屬群組
用法:chgrp [-r] dirname/filename;//下列的-r引數統一為目錄下檔案的遞迴
例:chgrp users install.log
chown:改變檔案擁有者
用法:chown [-r] 擁有者檔案或目錄
chown [-r] 擁有者:群組 檔案或目錄
例:chown huli install.log
chown huli:usersinstall.log
注意:當我們使用cp將自己的檔案拷貝給另乙個使用者時,該檔案的擁有者和群組並沒有改
變,因此,要讓這個檔案徹底地屬於這個使用者,還必須修改該檔案的擁有者和群組。
chmod:更改檔案屬性
前面已經提到過,r,w,x三個屬性分別對應的數字是4、2、1。而9個屬性又分為三組,那麼
一組的屬性就是這三個屬性的的累加。
例如,當屬性為【-rwxr-x---】時,可知
owner=rwx=4+2+1=7;group=r-x=4+1=5;others=---=0+0+0=0;
這個檔案的許可權就為750
用法:chmod [-r] xyz 檔案或目錄
其中xyz就是剛剛提到的檔案許可權,如上面的750
例:chmod 777 ~/.bashrc
還有一種更改檔案許可權的方法。可以使用u,g,o分別表示三組的屬性,a表示all,語法如下:
chmod [ugoa][+-=] [rwx] 檔案或目錄
引數:其中u表示使用者,g表示群組,o表示其他,a表示所有,+表示加入屬性,-表示減去屬性
=表示設定屬性。
例:chmod u=rwx,go=rx ~.bashrc
chmod a+w~/.bashrc
chmod a-x~/.bashrc
注意:目錄屬性有乙個特別之處,那就是能否進入它與x這個屬性有關
例:cd /tmp
mkdir testing
chmod 766testing
su huli
cd testing;//permissiondenied
可以看到,在上面的例子中,我在/tmp下建立了乙個目錄,並將目錄的許可權更改為【rwxrw-rw-】
然後將切換到huli這個使用者下,可以看到,該使用者對於這個目錄有讀寫的許可權,但是沒有執
行許可權,這時,我使用cd命令進入這個目錄,會看到permission denied的提示資訊,表示
沒有許可權進入該目錄。這時,如果你將x許可權補上,chmod o+x testing,再使用cd命令,便
可以順利進入該目錄。
由此可知,能否進入該目錄是與x屬性息息相關的。
前面提到過suid/sgid/sbit這幾個許可權,那麼這裡就理所當然地要涉及到這幾個許可權的設定。
與普通屬性相似,suid/sgid/sbit所對應的數字也為4、2、1
例:將檔案的許可權更改為【-rwsr-xr-x】
chmod 4755 test
將檔案的許可權更改為【-rwxr-sr-t】
chmod 3755 test
由此可知,這三個許可權是設定在最前面。
注意:當乙個檔案的許可權為【-rw-rw-rw-】時,我們再來更改這幾個特殊許可權試試看
chmod 7666 test;ls –l test
可看到,列印出的結果為【rwsrwsrwt】,為什麼是大寫的s和t呢,這是因為檔案原來的基礎屬性中,使用者,群組和其它中都沒有x這個屬性,而suid表示「該檔案在執行時,具有檔案擁有者的許可權」,但檔案擁有者都無法執行了,又哪來的許可權給別人呢,因此,大寫的s和t都表示空的意思。
檔案與目錄的預設許可權
當我們新建立乙個檔案或者目錄時,它的預設屬性是什麼呢?這就與umask相關。umask就是「檔案或者目錄的屬性預設值要減掉的許可權」。如果檢視umask值和檔案或者目錄的屬性預設值呢?
umask有兩種方式來檢視。
第一種是直接使用umask
第一組數字就是指剛才講到的特殊屬性
第二種是以符號的形式列印unmask -s
u=rwx,g=rx,o=rx
檔案與目錄的屬性預設值也是不一樣的。預設許可權下,檔案是沒有可執行許可權的,也就是
666,【-rw-rw-rw-】;
而由於x與是否進入此目錄有關,因此預設為所有許可權開放,即為777,【drwxrwxrwx】;
當新建立乙個檔案或者目錄時,它們的屬性就是上面的預設屬性減去umask的值。
檔案的隱藏屬性
檔案有隱藏屬性,在系統安全性方面,該隱藏屬性非常的重要
chattr:設定檔案隱藏
用法:chattr [+-=] [asacdistu] 檔案或者目錄名
所有的引數就不一一枚舉了,這裡只列舉兩個比較重要的引數
a:設定了a之後,這個檔案只能增加資料,而不能刪除,只有root才能設定這個屬性。
i:它的作用很大,它可以讓乙個檔案「不能被刪除、改名、設定連線,也無法寫入或者增加資料」
注意:這兩個屬性是較常用的屬性,而且只有root才能設定
lsattr:顯示檔案的隱藏屬性
格式:lsattr [-ar] 檔案或者目錄
-a表示將隱藏檔案的屬性也顯示出來,而-r連同子目錄的屬性也一並列出來。
bing之初體驗
哈哈,期待已久的微軟搜尋引擎bing 必應 的中文版今天終於推出了。剛開始使用google搜尋其主頁時怎麼也搜尋不到,還以為微軟食言。後來轉念一想,bing很可能是google未來的最大競爭對手,在當前這個還不為人所熟知的階段,很有可能給對方穿穿小鞋的。於是用在ie自帶的搜尋工具條上鍵入bing之後...
Statspack之初體驗
呵呵,今晚之前從來沒有做過statspack 好像有點丟人 這幾天乙個資料庫實在被折磨得不行了,明明sga max size有1.5g,但是實際看整個例項才用了200 m記憶體,慢得要死,頻繁讀寫硬碟,偏偏硬碟又不是磁碟陣列,io狂慢,唉,痛苦啊。於是決定花點時間學下例項優化,今天列印了幾頁perf...
ZigBee之初體驗
古人說 工欲善其事,必先利其器 簡單看懂原理圖還是有必要的,雖然自己幾乎沒有硬體基礎,短時期畫所謂的版子不具現實意義。晶元原理圖自從有人說u是晶元標誌,p是埠,c是電容,r是電阻,s是按鍵,led是led燈。後才漸漸明白 引腳標記相同的,學長說表示版子內部已連線,至於露在外面的引腳他們說是用來跳線用...