1. 程式人生 > >Linux中的特殊許可權粘滯位(sticky bit)詳解

Linux中的特殊許可權粘滯位(sticky bit)詳解

Linux下的檔案許可權

在linux下每一個檔案和目錄都有自己的訪問許可權,訪問許可權確定了使用者能否訪問檔案或者目錄和怎樣進行訪問。最為我們熟知的一個檔案或目錄可能擁有三種許可權,分別是讀、寫、和執行操作,在這裡不做詳細說明。我們建立一個檔案後系統會預設地賦予所有者讀和寫許可權。當然我們也可以自己修改它,新增自己需要的許可權。

特殊許可權

但是這三種許可權就足夠了嗎?我們現在來說說在linux下的另一個特殊許可權。首先我們來看看在根目錄下的一個目錄tmp,可以看到tmp目錄的other許可權是'rwt',那麼這裡的t又是什麼許可權呢,有什麼意義。

在理解這個許可權之前我們先來看看tmp這個目錄是存放什麼東西的,linux下tmp目錄是存放一些臨時檔案的,那麼上圖可以看到,該目錄的所有者和組使用者的許可權都是rwx,對於other的許可權是rwt。

我們知道如果一個目錄的other許可權設定有寫和執行許可權的話,那麼別的使用者也是可以在該目錄下進行建立檔案和刪除檔案等操作,我們來試一試:

現在是root使用者,在它的根目錄下建立了一個cur目錄,並且賦予了777許可權。

之後再給cur目錄下新建了test1和test2兩個檔案,而此時我們可以看到這兩個檔案的other許可權只有一個讀許可權。

現在我們切換使用者到dh使用者下,試著刪除剛剛新建的檔案,發現是完全可以刪除的。那麼這就存在了一個問題,像/tmp目錄的許可權是應該設定成"rwxrwxrwx"的,因為它要允許任何使用者都能在該目錄下建立、刪除、移動檔案等操作。但我們剛剛也看到了,我的dh使用者是可以刪除root使用者在cur目錄下建立的資料夾,那麼對於tmp目錄,任意使用者都可以刪除系統服務執行中的臨時檔案(別的使用者的),那麼這肯定是我們不想要的。

所以回到最初,我們看到tmp目錄的許可權是"rwxrwxrwt",這裡的t就起了相當重要的作用。

粘滯位(粘著位)

上面所說的t許可權就是我們在這裡要講的粘滯位(sticky bit),我們給剛剛的cur目錄採用chmod o+t的方式給other使用者設定粘滯位。

然後我們繼續切換到dh使用者,看看我們能否繼續之前的刪除操作:

可以看到此時我們是沒有許可權刪除root使用者建立的檔案了,這也就是粘滯位的作用。

粘滯位許可權便是針對此種情況設定,當⽬錄被設定了粘滯位許可權以後,即便⽤戶對該⽬錄有寫⼊許可權,也不能刪除該⽬錄中其他⽤戶的⽂件資料,⽽是隻有該⽂件的所有者和root⽤戶才有權將其刪除。設定了粘滯位之後,正好可以保持⼀種動態的平衡:允許各⽤戶在⽬錄中任意寫⼊、刪除資料,但是禁⽌隨意刪除其他⽤戶的資料。

幾點說明

對於特殊許可權的新增是新增在原有的執行許可權上的,所以特殊許可權新增的要求需要檔案或者目錄本身具有可執行許可權。

上圖中,我去掉了cur的other的執行許可權,可以看到本來't'的位置變成了'T',此時dh使用者在cur目錄中是不具有許可權來進行一系列操作的。

那麼原來的執行標誌x到哪裡去了呢? 系統是這樣規定的, 假如本來在該位上有x, 則這些特別標誌 (suid, sgid, sticky) 顯示為小寫字母 (s, s, t).否則, 顯示為大寫字母 (S, S, T) 。  

注意事項

》粘滯位許可權是針對目錄的,對檔案無效

上述的這些操作是在root使用者下建立了一個test.c檔案,然後添加了t許可權,然而在dh使用者下還是可以直接進行刪除的。所以粘滯位是針對有執行許可權的目錄的,對於檔案新增粘滯位並沒有什麼作用。

相關推薦

Linux特殊許可權(sticky bit)

Linux下的檔案許可權 在linux下每一個檔案和目錄都有自己的訪問許可權,訪問許可權確定了使用者能否訪問檔案或者目錄和怎樣進行訪問。最為我們熟知的一個檔案或目錄可能擁有三種許可權,分別是讀、寫、和執行操作,在這裡不做詳細說明。我們建立一個檔案後系統會預設地賦予所有者讀和寫許可權。當然我們也可以自己修改

Linux檔案和目錄的(sticky bit)

今天維護系統時發現一個非常詭異的問題:AAA使用者和BBB使用者同屬AAA組,但用AAA使用者建立的檔案,許可權設定為777後,還是不能用BBB使用者刪除。詭異!        幾經週轉,發現AAA使用者建立檔案位置的上層目錄的許可權是drwxrwxrwt

linuxcat、more、less命令區別

more|less本文轉自:http://blog.csdn.net/xyw_blog/article/details/16861681在《Python絕技》這本書的第一個小程序首先展示了針對與unix系統中shadow文件密碼的暴力破解的能力,因為之前只是對shadow文件停留在保存了用戶密碼的階段,但並沒

Linux讓alias設定永久生效的方法

前言 經常使用Linux控制檯終端的站長們應該對於那些繁瑣的指令和引數命令列印象深刻吧!這也是很多站長寧願使用有安全風險的面板也不願意使用控制檯終端命令列的主要原因!好在,明月早年間的DOS下學習程式設計的經歷,對於這種命令列式的風格還是偏愛有加,但對於那些幾乎經常要用到的命令列每次都要重複性的

Linuxlink,unlink,close,fclose

每一個檔案,都可以通過一個struct stat的結構體來獲得檔案資訊,其中一個成員st_nlink代表檔案的連結數。       當通過shell的touch命令或者在程式中open一個帶有O_CREAT的不存在的檔案時,檔案的連結數為1。       通常o

SUSE Linux儲存狀態資訊的viminfo和vimrc

最近公司在審計所有產品和方案的安全規格,比如:作業系統的日誌中禁止包含密碼明文或password之類的。幾乎將系統安全武裝到牙齒了,今天就遇到一個問題:測試發現SUSE Linux作業系統的/root/.viminfo檔案中包含了password字樣,和同事確認後瞭解到:原來.viminfo檔案存放

總結linux管線和資料流重導向的及區別

以下是自己的理解,有錯誤請指正下,謝謝 一:資料流重導向:我覺得就是把命令產生的結果儲存到檔案或者裝置, 或者把檔案或者裝置的內容傳給命令。      如:我要查出/dev 下所有的目錄檔案:      例1 把命令產生的結果儲存到檔案或者裝置:       ls -al

Linux使用者和使用者組的操作命令及樣例

使用者:使用作業系統的人 使用者組:具有相同許可權的一組使用者 /etc/group :儲存當前系統中所有使用者組的資訊 --Group : x  : 123 : abc,def,xyz --組名

Linux淺談SUID,SGID,Sticky對目錄以及文件的相關作用

刪除文件 分配 神奇 淺談 出了 哪裏 配置 cdd 可執行程序 我們知道在Linux中,root管理員的權限是很大的,能夠支持執行絕大部分程序以及命令進而對文件進行相對應的修改,寫入。當然這些作用只能體現在root管理員上。但是有一個現象,有些普通用戶是可以通過p

shell命令以及執行原理、檢視或修改掩碼(umask)、Linux許可權管理、Linux設定檔案訪問許可權(chmod)、、修改檔案的擁有者(chown)、修改檔案的所屬組(chgrp)

shell命令以及執行原理:   Linux嚴格意義上說的是一個作業系統,我們稱之為”核心”,但是我們普通使用者,不能直接使用核心,而是通過核心的”外殼”程式,也就是所謂的shell,來與核心溝通。   Linux中的命令大多數都是可執行程式。但其實捕捉我們

Linux許可權的概念 &&

Linux下有兩種使用者:超級使用者(root)、普通使用者 超級使用者:可以在Linux系統下做任何事情,不受限制 普通使用者:在Linux下做有限的事情 超級使用者的命令提示符是“#”,普通使用者的命令提示符是“¥” 命令:su [使用者名稱]

Linux的實現及作用

在上篇文章中提到了關於許可權的事情,然後就發現一個很有趣的事情,直接上示例: 這個時候我們在root下建立了一個目錄叫做test目錄,並將其的許可權改為000,這個時候我們發現當我們切回正常使用者,也就是我們相當於root使用者是other使用者,並且我們

LINUX的作用及驗證

一:LINUX粘滯位使用 粘滯位(Stickybit),又稱粘著位,是Unix檔案系統許可權的一個旗標。最常見的用法在目錄上設定粘滯位,也只能針對目錄設定,對於目錄內檔案有效。則設定了粘滯位後,只有目錄內檔案的所有者或者root才可以刪除或移動該檔案。如果不為目錄設定粘

setuid setgid stick bit 特殊權限

別人 chmod u+s 現在 usr 特殊權限 會有 post 作用 inf 1、setuid與setgid講解 看一下系統中用到它的地方,以/etc/passwd和/usr/bin/passwd為例: 分析一下,/etc/passwd的權限為 -rw-r--r--

Linux-的使用

之前真的沒注意,記錄下 轉載自:https://www.cnblogs.com/hanxiaoyu/p/5622036.html         粘滯位(Stickybit),又稱粘著位,是Unix檔案系統許可權的一個旗標。最常見的用法在目錄上設定粘滯位, 也只能針對

Linux檔案特殊許可權——SetUID、SetGID、Sticky BIT

對於 SetUID、SetGID、Sticky BIT 這三個檔案特殊許可權,分別介紹如下: 1. SetUID 許可權 只有可以執行的二進位制程式才能設定SetUID許可權,並且命令執行者要對該程式

Linux特殊環境變量

環境變量 常用環境變量 環境變量設置 1、環境變量簡介: 環境變量是具有特殊名字的一個特定對象,包含了一個或多個應用程序運行所需的信息。(例如環境變量PATH,可執行程序的搜索路徑,當要求系統運行一個程序,而沒告訴系統它的具體路徑時,系統就要在PTAH值的路徑中尋找此程序,找到去執行)

linux 特殊符號用法

引號 zabbix 目錄 sele cond 特殊符號 zab set speed 星號(*) 當用於shell變量時, [root@zabbix_nuc ~]# sql=‘select * from mysql.user‘ [root@zabbix_nuc ~]# ech

Linux許可權問題:

普通許可權 Linux許可權基於UGO模型進行控制:U代表User屬主,G代表Group屬組,O代表Other其他使用者 每一個許可權由檔案所有者,檔案所屬組,其他使用者3部分組成,每一部分都有讀寫執行3項許可權,設定時可用數字表示 Linux許可權分為:讀(R)許可權,設定時可用數

linux -- 檔案特殊許可權和程序

<0>.建立目錄和檔案的預設許可權[umask] (1)umask ---> 檢視系統目錄預設預留許可權位;檔案預設預留許可權位 ---> 目錄許可權減去<111> (2)umask 007 ---> 臨時修改系統目錄預設預留許可權位 為 00