Я пытаюсь манипулировать файлом squashfs, содержащим сборку yocto и полезную нагрузку приложения, но каждый раз, когда я это делаю, sudo
выполнение не происходит. Пользователь root отключен, поэтому у меня нет реальной альтернативы.
Мой подход заключается в том, чтобы просто распаковать файловую систему, а затем перепаковать распакованные файлы. В этом процессе владелец устанавливается на моего локального пользователя (что нормально — я могу это исправить) и, похоже, setuid удаляется из sudo.
решение1
Если вы используете unsquashfs
для распаковки файлов, вы получите набор файлов, владельцем которых вы являетесь, и без битов setuid. Но вы можете вручную вернуть бит setuid на любые файлы, которые хотите (с помощью chmod u+s
); конечно, они будут setuid на ваш идентификатор. Но когда вы переупаковываете файлы с помощью mksquashfs
опции add -all-root
, все файлы в файловой системе будут принадлежать root, а не вам, и любой бит setuid будет сохранен.