Permissions

似乎允許非root使用者使用chown

  • October 10, 2013

在我們公司,我們正在使用 LDAP 身份驗證以及我不太了解的另一件事,所以可能以下問題是由此產生的結果。我發現chown命令的奇怪行為,不知道這是否正常。這是我的場景:

使用者標記的 GID 是 SK001936,標記的主目錄的所有者組是 SK001778,如您所見,它們並不相同。組 SK001778 被允許所有操作(rwx)與使用者標記的主目錄作為所有者(標記)具有:

[mark@machine ~]$ id
uid=48447(mark) gid=41795(SK001936) groups=40119(SUB_SK001936_PPS),41795(SK001936)
[mark@machine ~]$ ls -lad .
drwxrwxr-x   6 mark SK001778  4096 Oct 10 13:30 .

使用者 michael 和 mark 的 GID 都是 SK001936:

[michael@machine mark]$ id
uid=40570(michael) gid=41795(SK001936) groups=40119(SUB_SK001936_PPS),41795(SK001936)
[mark@machine ~]$ id
uid=48447(mark) gid=41795(SK001936) groups=40119(SUB_SK001936_PPS),41795(SK001936)

使用者 michael 無法在使用者標記的主目錄中創建文件。問題是 michael 不屬於對 mark 的主目錄具有完全 (rwx) 訪問權限的組 (SK001778):

[michael@machine mark]$ touch michael
touch: cannot touch `michael': Permission denied

在正常情況下,即使他是文件的所有者,使用者也不能發出 chown。然而在這個例子中主目錄的所有者(標記)能夠改變他自己的主目錄的所有者組(從而允許屬於這個組的使用者訪問他的主目錄):

[mark@machine ~]$ chown mark:SK001936 .

現在可以訪問標記主目錄的組因此與邁克爾的 GID 相同,因此現在允許邁克爾在標記的主目錄中創建/刪除文件/文件夾:

[michael@machine mark]$ touch michael

mark 無法改回他的主目錄的組所有權(請記住,只有 root 可以根據此發出 chown:why-cant-a-normal-user-chown-a-file):

[mark@machine ~]$ chown mark:SK001778 .
chown: changing ownership of `.': Operation not permitted

我的問題是:即使 si聲明chown 只能由 root 發布,該標記怎麼可能更改他的主目錄的組所有權。盒子是 RedHat 5.6。

當您chown以僅更改組的方式使用時,它的作用與chgrp. 文件或目錄的所有者可以將組更改為他所屬的任何組。

它的工作原理是這樣的,因為chownchgrp命令都使用相同的底層chown系統呼叫,它允許更改所有者和組。系統呼叫是應用權限檢查的對象。chown和命令之間的唯一區別chgrp是用於指定要進行的更改的語法。

Mark 無法將組更改回 SK001778,因為他不是組 SK001778 的成員(並且他不是 root,不受組成員資格的限制)。

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