Ещё раз подтверждает, что в sudo надо прописывать неинтерактивные комманды. А если нужный частичный функционал какой-то комманды, то лучше сделать враппер на баше или ещё чем-то.
А для публично доступных аккаунтов лучше давать доступ для записи (домик и прочее) на nosuid файловую систему (совсем для паранои noexec).
P.S. Мне казалось, что проще копировать /bin/bash себе в домик и ставить на него suid бит чем компилить что-то.
Насколько я понимаю подобный подход предоставляют всякие библиотеки типа liborс и liboil. Но их главное приемущество в том что они могут потратить немного времени в рантайме чтобы сгенерировать код для обработки большого потока данных на основании мета информации такой как размер картинки.
watchdog нужен для загрузки через kexec. Т.е. grub вообще не загружается в этом случае. Если загруженная система через kexec детектится как нерабочая (kernel panic или watchdog срабатывае), то происходит обычная перезагрузка и grub загружает обычную систему.
Если всё же хочется через grub, то во второй версии, вроде по умолчанию запоминается последний выбранный пункт (при включенном GRUB_SAVEDEFAULT). Скорее всего, как-то связанно с grub-editenv. Наверное, можно и скрипт написать в нём или уже в initrd.
Но я всегда боюсь трогать grub. И незнаю почему, но с первой версией grub'а я чувствовал себя немного уверенее.
Может можно использовать pivot_root как это делает initrd обычно? Т.е. сделать тоже самое что и initrd только на оборот.
создаём RAM disk (если нет возможности создать раздел на диске)
pivot_root внутрь.
подымаем нужные сервисы явно
гасим все сервисы из старой системы.
отмонтируем старую файловую систему.
делаем что хотим с дисками
Вариант с initrd — кажется более надёжным. Только эксперементировать с загрузкой, наверное, стоит через kexec. И стоит внутри initrd сделать какой-то watchdog который перезагрузит систему назад если в течении какого-то времени никто не зайдёт в неё по ssh. Ну и panic должен быть указан так чтобы в случае такой ситуации система перезагрузилась.
Ещё раз подтверждает, что в
sudo
надо прописывать неинтерактивные комманды. А если нужный частичный функционал какой-то комманды, то лучше сделать враппер на баше или ещё чем-то.А для публично доступных аккаунтов лучше давать доступ для записи (домик и прочее) на
nosuid
файловую систему (совсем для параноиnoexec
).P.S. Мне казалось, что проще копировать
/bin/bash
себе в домик и ставить на него suid бит чем компилить что-то.Насколько я понимаю подобный подход предоставляют всякие библиотеки типа liborс и liboil. Но их главное приемущество в том что они могут потратить немного времени в рантайме чтобы сгенерировать код для обработки большого потока данных на основании мета информации такой как размер картинки.
watchdog
нужен для загрузки черезkexec
. Т.е.grub
вообще не загружается в этом случае. Если загруженная система черезkexec
детектится как нерабочая (kernel panic илиwatchdog
срабатывае), то происходит обычная перезагрузка иgrub
загружает обычную систему.Если всё же хочется через
grub
, то во второй версии, вроде по умолчанию запоминается последний выбранный пункт (при включенномGRUB_SAVEDEFAULT
). Скорее всего, как-то связанно с grub-editenv. Наверное, можно и скрипт написать в нём или уже вinitrd
.Но я всегда боюсь трогать
grub
. И незнаю почему, но с первой версиейgrub
'а я чувствовал себя немного уверенее.Может можно использовать
pivot_root
как это делает initrd обычно? Т.е. сделать тоже самое что и initrd только на оборот.pivot_root
внутрь.Вариант с
initrd
— кажется более надёжным. Только эксперементировать с загрузкой, наверное, стоит черезkexec
. И стоит внутриinitrd
сделать какой-то watchdog который перезагрузит систему назад если в течении какого-то времени никто не зайдёт в неё поssh
. Ну иpanic
должен быть указан так чтобы в случае такой ситуации система перезагрузилась.