![재패키징된 squashfs의 sudo가 setuid인지 확인하는 방법은 무엇입니까?](https://linux55.com/image/169313/%EC%9E%AC%ED%8C%A8%ED%82%A4%EC%A7%95%EB%90%9C%20squashfs%EC%9D%98%20sudo%EA%B0%80%20setuid%EC%9D%B8%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
yocto 빌드와 애플리케이션 페이로드가 포함된 squashfs 파일을 조작하려고 하는데 이 작업을 수행할 때마다 sudo
나중에 실행되지 않습니다. 루트 사용자가 비활성화되었으므로 실제 선택의 여지가 없습니다.
내 접근 방식은 파일 시스템의 압축을 풀고 압축을 푼 파일을 다시 압축하는 것이었습니다. 이 프로세스 동안 소유자는 내 로컬 사용자로 설정되었으며(괜찮습니다. 이 문제를 해결할 수 있습니다) setuid가 sudo에서 제거된 것으로 보입니다.
답변1
파일의 압축을 풀면 unsquashfs
setuid 비트 없이 자신에게 속한 파일 세트를 얻게 됩니다. 그러나 원하는 파일에 수동으로 setuid 비트를 다시 넣을 수 있습니다( 를 사용하여 chmod u+s
). 물론 해당 파일은 귀하의 ID에 setuid가 됩니다. 그러나 mksquashfs
추가 옵션을 사용하여 파일을 다시 패키지 하면 -all-root
파일 시스템의 모든 파일은 사용자가 아닌 루트가 소유하게 되며 모든 setuid 비트는 보존됩니다.