yocto 빌드와 애플리케이션 페이로드가 포함된 squashfs 파일을 조작하려고 하는데 그렇게 할 때마다 sudo
이후 실행에 실패합니다. 루트 사용자가 비활성화되었으므로 실제 대안이 없습니다.
내 접근 방식은 파일 시스템의 압축을 풀고 압축을 푼 파일을 다시 패키지하는 것입니다. 이 프로세스에서 소유자는 내 로컬 사용자로 설정되고(괜찮습니다. 수정할 수 있습니다.) setuid가 sudo에서 제거된 것 같습니다.
답변1
를 사용하여 unsquashfs
파일의 압축을 풀고 있다고 가정하면 setuid 비트 없이 자신이 소유한 파일 세트를 얻게 됩니다. 그러나 원하는 파일에 setuid 비트를 수동으로 다시 넣을 수 있습니다( chmod u+s
). 물론 그들은 귀하의 ID로 설정됩니다. 그러나 mksquashfs
추가 옵션을 사용하여 파일을 다시 패키지하면 -all-root
파일 시스템의 모든 파일은 사용자가 아닌 루트의 소유가 되며 모든 setuid 비트는 보존됩니다.