build-vm: try system tar2fs first
It's at least removing the very obvious user->root attack through (maliciously) modifying bin/tar2fs and waiting for it to be run; if mkimage-profiles is installed system-wide as a package, the script from /usr/share/mkimage-profiles will be tried so those willing to allow vm/* build to themselves can provide for a passwordless sudo (as described in doc/vm.txt) to run a root-only writable script, not user-writable. Still not perfect but a step away from the abyss.
This commit is contained in:
parent
f39890cb7c
commit
f293239d5b
@ -14,7 +14,9 @@
|
|||||||
При работе с локальной копией mkimage-profiles.git следует иметь
|
При работе с локальной копией mkimage-profiles.git следует иметь
|
||||||
в виду, что предоставлять недоверенному пользователю право выполнять
|
в виду, что предоставлять недоверенному пользователю право выполнять
|
||||||
от имени root доступный ему по записи скрипт равнозначно предоставлению
|
от имени root доступный ему по записи скрипт равнозначно предоставлению
|
||||||
полных привилегий root.
|
полных привилегий root (поэтому фича build-vm сперва проверяет наличие
|
||||||
|
системно установленного пакета и по возможности старается запустить
|
||||||
|
под sudo скрипт из него, доступный по записи только root).
|
||||||
|
|
||||||
Для работы с более специфичными форматами, чем raw ("буквальный"
|
Для работы с более специфичными форматами, чем raw ("буквальный"
|
||||||
образ диска), потребуется утилита qemu-img из одноименного пакета;
|
образ диска), потребуется утилита qemu-img из одноименного пакета;
|
||||||
|
@ -20,7 +20,10 @@ check-sudo:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
prepare-image: check-sudo
|
prepare-image: check-sudo
|
||||||
@if ! sudo $(TOPDIR)/bin/tar2fs \
|
@if [ -x $(MKIMAGE_PREFIX)/bin/tar2fs ]; then \
|
||||||
|
TOPDIR=$(MKIMAGE_PREFIX); \
|
||||||
|
fi; \
|
||||||
|
if ! sudo $(TOPDIR)/bin/tar2fs \
|
||||||
"$(VM_TARBALL)" "$(VM_RAWDISK)" $(VM_SIZE) $(VM_FSTYPE); then \
|
"$(VM_TARBALL)" "$(VM_RAWDISK)" $(VM_SIZE) $(VM_FSTYPE); then \
|
||||||
echo "** error: sudo tar2fs failed, see also doc/vm.txt" >&2; \
|
echo "** error: sudo tar2fs failed, see also doc/vm.txt" >&2; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
|
Loading…
Reference in New Issue
Block a user