簡體   English   中英

setuid位打開,但程序無法打開超級用戶文件

[英]setuid bit on, yet program can't open a superuser file

我有一個由超級superuser.cpp創建的文件superuser.cpp ,具有訪問權限770 現在,超級用戶創建一個文件setuidDemonstration.cpp在其中使用open("superuser.cpp", O_RDONLY). .cpp和setuidDemonstration.cpp的目標文件具有權限rwxrwxr-x 現在,我的問題是:

  1. 當我在正常和超級用戶模式下運行程序setuidDemonstration時,都無法打開superuser.cpp。 為什么? 至少,超級用戶模式應該已經成功打開它。

  2. 現在,我執行sudo chmod 4775 setuidDemonstration 這應該允許程序即使在正常模式下也可以打開superuser.cpp,因為在運行sudo chmod 4775 setuidDemonstration時已將setuid位置1,因此在執行過程中它將獲取超級用戶的sudo chmod 4775 setuidDemonstration 但卻不能。 另外,當我從普通模式運行時打印euid時,它打印了1000而不是0 為什么?

更新:感謝指出錯誤。 我已經從文件路徑中刪除了“ /”,現在它對超級用戶有效。 但是,即使現在在sudo chmod 4775 setuidDemonstration之后,正常模式下運行程序falis即可打開文件。 請解釋。

因為/superuser.cpp是文件系統根目錄中的文件名,而不是當前工作目錄中的文件名。 如果文件與運行程序時的路徑相同,請使用superuser.cpp./superuser.cpp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM