Permissions

使用數字模式清除 setuid 權限

  • January 13, 2013

在 Ubuntu Linux 上,我有一個設置了 setuid 位 ( drwsr-xr-x) 的目錄,我想取消設置。

也不chmod 755是也不chmod 0755chmod 00755(我雖然可能第一個 0 被解釋為只是“這是八進制”)清除了 setuid 位。然而,chmod u-s做到了。

清除 setuid 位的正確數字模式是什麼?

有趣的是。使用 GNU 似乎是不可能chmod的,這是一個特性。從我係統上的info條目開始;chmod請注意,雖然設置位的條目引用了符號和數字模式,但清除它們的條目僅指符號 ( ug-s) 模式:

27.4 目錄和 Set-User-ID 和 Set-Group-ID 位

這些便利機制依賴於目錄的 set-user-ID 和 set-group-ID 位。如果像chmod' and mkdir’ 這樣的命令會定期清除目錄上的這些位,那麼這些機制會不太方便,並且更難共享文件。因此,像 `chmod’ 這樣的命令不會影響目錄的 set-user-ID 或 set-group-ID 位,除非使用者以符號模式特別提及它們,或將它們設置為數字模式。

$$ … $$ 如果您想嘗試設置這些位,您必須在符號或數字模式中明確提及它們,例如:

$$ … $$ 如果您想嘗試清除這些位,則必須以符號模式明確提及它們,例如:

$$ … $$ 此行為是 GNU 擴展。可移植腳本不應依賴請求來設置或清除目錄上的這些位,因為 POSIX 允許實現忽略這些請求。

引用自:https://unix.stackexchange.com/questions/61116