Linux的粘滯位

什麼是粘滯位?設置粘滯位和不設置粘滯位有什麼區別呢?


粘滯位是在1974年Unix的第5版中引入的,用來設置可執行文件。當可執行文件設置粘滯位之後,它能夠指示操作系統在程序退出後,保留程序的代碼段到swap空間。當程序再次執行時,內核只需將程序從swap搬到內存即可,這能夠加速程序的執行。所以,頻繁使用的程序比如編輯器能夠更快的打開。目前,這種應用只是適用於HP-UX, NetBSD和UnixWare,Solaris在2005年放棄了這種應用,linux沒有版本支持過這種行爲。

當路徑被設置粘滯位後,路徑下的文件只有文件的owner, 或者root 才能夠重命名、刪除文件。如果沒有粘滯位,任何用戶,不管是不是owner, 只要有路徑的寫/執行權限就可以重命名、刪除文件。典型的應用就是/tmp路徑,粘滯位可以阻止一般用戶刪除/重命名其他用戶的文件。


例如:在root的根目錄下有個臨時文件夾/tmp,/tmp常被我們用來存放臨時文件,是所有用戶。可以看到tmp的權限爲777


/tmp下創建一個文件


返回到普通用戶,在該目錄下刪除root下/tmp裏的文件


可以看到直接被刪除掉了!可以說只要用戶具有寫/執行權限就可以直接刪除任何文件,不管是不是自己創建的文件。如果你只想讓別人看到你的文件而不想讓文件被改變,那麼這種情況下是非常不安全的!這時就可以設置粘滯位了!


我們進入root下給tmp加上"粘着位"(用chmod a+t),然後返回到普通用戶


我們再次回到普通用戶下刪除剛剛在root/tmp裏創建的文件



所有當一個目錄被設置爲“粘滯位”(用chmod a+t)時,在該目錄下的文件只能被

1、超級管理員刪除

2、該目錄的所有者刪除

3、該文件的所有者刪除


這就是Linux裏的粘滯位作用!




發佈了43 篇原創文章 · 獲贊 47 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章