如何確保重新打包的 squashfs 中 sudo 是 setuid ?

如何確保重新打包的 squashfs 中 sudo 是 setuid ?

我正在嘗試操作一個包含 yocto 構建和應用程式有效負載的 squashfs 文件,但每次這樣做時,sudo之後都無法執行。 root 用戶被停用,所以我沒有真正的選擇。

我的方法是僅解壓縮檔案系統,然後重新打包解壓縮的檔案。在這個過程中,所有者被設定為我的本機用戶(這很好——我可以解決這個問題),而且 setuid 似乎已從 sudo 中刪除。

答案1

假設您正在unsquashfs解壓縮文件,您將獲得一組屬於您的文件,並且沒有 setuid 位元。但是您可以手動將 setuid 位元放回您想要的任何文件上(使用chmod u+s);當然他們會被 setuid 為你的 id。但是,當您使用mksquashfsadd 選項重新打包檔案時-all-root,檔案系統中的所有檔案將歸 root 而不是您所有,並且任何 setuid 位元都將保留。

相關內容