Linux SUID位的作用

2021-08-07 07:16:12 字數 1831 閱讀 6775

linux

是乙個多使用者多工的作業系統,身為乙個優秀安全的多使用者作業系統,

linux

對使用者之間資源的訪問許可權管理得十分嚴謹。

linux

每個檔案和目錄都有一組訪問許可權標誌位,用

9個二進位制位表示: 如用

ls -l

顯示/etc/passwd

檔案:

-rw-r--r--  1 root   root   1687  passwd 代表

passwd

檔案的訪問許可權是:所屬使用者(擁有者)可讀可寫;組使用者可讀;其他使用者可讀;(其中

passwd

所屬使用者為

root

,所屬為

root組)

1、按這許可權標記意味著只有

passwd

的所屬者

root

對其有可寫許可權,那麼真得用其它使用者登入的情況下就不能對其進行寫操作嗎?

首先我們得明白

linux

系統是怎麼判定訪問者是誰。其實我們無論圖形操作和終端命令操作都是呼叫一段程式對某個檔案資源的訪問。而程序(執行中的程式)中有個

euid

(有效使用者)這個才是系統用來判定訪問者的根據。意味著即使是非

root

使用者只要執行的程式程序中的

euid==root

,那麼系統就認為訪問者是

root

,就能對

/etc/passwd

進行可寫操作! 2

、那麼什麼時候非

root

使用者執行程序的

euid

才會是root呢?

這就關係到今天的主題

suid

位的作用。在程式沒設定

suid

的情況下,哪個使用者執行該程式,該程式程序中的

euid

就為該使用者

uid。

比如使用者

jaxonxu

執行了許可權描述為

-rwxr-xr-x root  root  foo

的foo

程式,那麼該程序的

euid

就為jaxonxu

,就不能對

/etc/passwd

進行寫操作。

但在某程式檔案設定了

suid

位以後,比如

bar程式,其許可權描述為:

-rwsr-xr-xroot root bar

(注意在所屬使用者可執行位里標的是

s,表明檔案設定了

suid

並且所屬使用者可執行,具體請翻看

apue

)當jaxonxu

執行bar

程式,該程序的

euid

為程式的所屬使用者

root

(這就是

suid

的作用),因此該程序就可以對

/etc/passwd

進行可寫操作(即使是非

root

使用者執行的)!

這就是passwd

命令可以讓非

root

使用者修改

/etc/passwd

檔案的原因。

我們用which passwd

定位到passwd

命令的位置

/usr/bin/passwd

,用ls -l

檢視:

-rwsr-xr-x 1 root  root      37100  passwd 可知

/usr/bin/passwd

命令檔案設定了

suid

的標記位。

粘滯位(粘著位)的作用

檔案的粘滯位 sticky 位是作什麼用的?普通檔案的sticky位會被linux核心忽略,目錄的sticky位表示這個目錄裡的檔案只能被owner和root刪除 粘著位 sticky bit 如果使用者對目錄有寫許可權,則可以刪除其中的檔案和子目錄,即使該使用者不是這些檔案的所有者,而且也沒有讀或...

位運算的作用

運算 and運算通常用於二進位製取位操作,例如乙個數 and 1的結果就是取二進位制的最末位。這可以用來判斷乙個整數的奇偶,二進位制的最末位為0表示該數為偶數,最末位為1表示該數為奇數 運算 or運算通常用於二進位制特定位上的無條件 賦值,例如乙個數or 1的結果就是把二進位制最末位強行變成1。如果...

櫥窗位作用

櫥窗位的作用 開虛擬店鋪那麼久了,竟然還不懂得什麼是櫥窗位,更不懂有什麼作用,直到現在,店鋪轉化成實物店鋪,店鋪沒生意,才每天泡論壇,去 大學,上 打聽去了解,去琢磨,才發現櫥窗位的重要性。是不是還有店主跟那時的我一樣了,那就趕快來看看吧,這是我的一點拙見。櫥窗推薦,跟掌櫃推薦不一樣哦,櫥窗推薦是為...