似乎允許非root使用者使用chown
在我們公司,我們正在使用 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
. 文件或目錄的所有者可以將組更改為他所屬的任何組。它的工作原理是這樣的,因為
chown
和chgrp
命令都使用相同的底層chown
系統呼叫,它允許更改所有者和組。系統呼叫是應用權限檢查的對象。chown
和命令之間的唯一區別chgrp
是用於指定要進行的更改的語法。Mark 無法將組更改回 SK001778,因為他不是組 SK001778 的成員(並且他不是 root,不受組成員資格的限制)。