Как работает ModProbe перед монтажом root? (Нет initrd)

Вы должны использовать несколько типов кавычек или избежать их:

sed -i "12iexec('/var/www/scripte/autostandby.sh > /dev/null 2>/dev/null &');" *.php      

Бонус:

 sed -i "s|exec('/var/www/streams/taketv.sh');|exec('/var/www/streams/taketv.sh > /dev/null 2>/dev/null \&');|" 
-121--145178-

При блокировке с помощью клавиш Ctrl + Alt + L, скорее всего, вы просто включите приложение заставки, которое также запрашивает пароль. Я думаю, что нет автоматического способа, если только вы не подправите приложение заставки, чтобы отследить его.

Например, можно создать сценарий обертки, который будет регистрировать время и запускать экранную заставку, а также регистрировать время, когда она закончена, хотя это не тривиально.

-121--243129-
VARIABLE=qwe123rty567
IFS=0123456789
set -f # Disable glob
printf %s $VARIABLE

qwerty

возможны дальнейшие манипуляции.

VARIABLE=qwe123rty567
IFS=0123456789
set -f # Disable glob
set -- $VARIABLE
IFS=;   VARIABLE=$*
printf "replaced $# numbers in \$VARIABLE. RESULT:\t%s\n" "$*"

replaced 6 numbers in $VARIABLE. RESULT:    qwerty
1
14.07.2018, 01:56
1 ответ

Я не думаю, что он работает успешно /sbin/modprobe. Но вот что меня заинтересовало. Похоже, он пытается открыть /dev/consoleдо того, как "devtmpfs :смонтирован" или "Смонтирована корневая файловая система (ext4 )", и других попыток открыть /dev/consoleнет. Но я думал, что ядро ​​должно открываться /dev/consoleиз какой-то файловой системы для инициализации (/bin/sh в вашем случае )...

Похоже, если у вас нет initramfs, ядро ​​создаст очень простую подделку. Если я правильно понимаю, именно поэтому он может открыть /dev/consoleдо того, как смонтирует настоящую корневую файловую систему.

https://github.com/torvalds/linux/blob/v4.14/init/noinitramfs.c

/*
 * Create a simple rootfs that is similar to the default initramfs
 */
static int __init default_rootfs(void)
{
    int err;

    err = sys_mkdir((const char __user __force *) "/dev", 0755);
    if (err < 0)
        goto out;

    err = sys_mknod((const char __user __force *) "/dev/console",
            S_IFCHR | S_IRUSR | S_IWUSR,
            new_encode_dev(MKDEV(5, 1)));
    if (err < 0)
        goto out;

    err = sys_mkdir((const char __user __force *) "/root", 0700);
    if (err < 0)
        goto out;

    return 0;

Каталог /rootиспользуется в коде ядра для монтирования и перехода в настоящую файловую систему root=.

Коммит, который вводит эту функцию, поясняет, что эта конкретная функция используется только тогда, когда поддержка как initrd, так и initramfs скомпилирована. Таким образом, в противном случае «initramfs по умолчанию» предоставит /dev/consoleи /root, если вы не передадите конкретный initramfs при загрузке ядра и не укажете встроенный initramfs -в ядро.

https://github.com/torvalds/linux/commit/c33df4eaaf41fd3e34837a6ae9a5f9970c393d9f

0
28.01.2020, 00:32

Теги

Похожие вопросы