企業有時候出於項目的需要,會臨時組成一個Unix操作系統項目小組來完成某個特定的項目。此時項目小組要求各個項目小組成員多某個目錄具有讀寫的權限,可以往這個目錄中建立文件,可以閱讀他人創建的文件。但是有一個限制,即不能夠刪除他人建立的文件。現在Unix操作系統工程師為某個項目專門建立了一個item的目錄。
在這個Unix操作系統目錄下有兩個文件,分別為urr001與tgt001,分別是用戶SA01與用戶SA02創建的。現在企業的要求是,無論是用戶SA01還是用戶SA02,都可以在這個目錄中創建文件;SA01也可閱讀文件tgt001(所有權是SA02)的文件;但是SA01不能夠刪除文件tgt001。
也許有Unix操作系統工程師會對這個需求感到懷疑,這可以實現嗎?答案是肯定的。通過Unix操作系統提供的粘著位功能,就可以輕松實現這個功能。
Unix操作系統粘著位與文件的關系
粘著位,又稱保存文本位,其實就是一個權限控制屬性。通常情況下,粘著位即可以用在普通文件上,也可以用在目錄文件上。當用在普通文件上時,粘著位可以把某個程序文件的SUID置位。並且它的文本映像將永久保存在交換區裡。如此的話,當Unix操作系統程序獲得了CPU使用權時,就可以快速的裝載到內存中。故粘著位可以提高系統程序的運行效率。
如有些版本的Unix系統,就把vi等常用的程序文件的粘著位設置為1,就明顯提高了這些應用程序的運行效率。不過現在很少用到這個特性。因為現在磁盤讀寫速度已經達到極致;而且內存的價格也便宜。
也就是說,現在磁盤速度與內存往往已經不是系統的瓶頸資源,故為普通文件設置粘著位已經沒有特殊的必要了。為此筆者現在在系統設置中,基本上不會為普通文件設置粘著位。
那麼粘著位不是無用武之地了嗎?其實不然。雖然在普通文件上設置粘著位沒有實際的應用價值,但是在目錄文件上設置粘著位還是很有用的。如文章一開頭筆者所闡述的內容,就需要通過粘著位來實現。簡單的說,當粘著位與目錄文件結合時,能夠實現一些讓人想都想不到的安全措施。
這樣,我們就知道了Unix操作系統中粘著位與文件的關系的知識了。這只是一部分知識,希望大家能夠更多的知識。