О выполнении сценария оболочки

Хорошо. Я решил его. Позвольте мне показать решение на всякий случай, кому-то нужно оно. Сначала Вы должны включить IPSEC в ядре, создать установку.

В файле/src/sbin/setkey/parse.y комментируют код

enc_alg
        :       ALG_ENC_NOKEY {
                        if ($1 < 0) {
                                yyerror("unsupported algorithm");
                                return -1;
                        }
                        p_alg_enc = $1;

                        p_key_enc_len = 0;
                        p_key_enc = NULL;
                        /*
                        if (ipsec_check_keylen(SADB_EXT_SUPPORTED_ENCRYPT,
                            p_alg_enc, PFKEY_UNUNIT64(p_key_enc_len)) < 0) {
                                yyerror(ipsec_strerror());
                                return -1;
                        }
                        */

выполненный делают только в setkey папке. Сгенерированный двоичный файл будет поддерживать пустое шифрование.

2
07.04.2015, 02:35
1 ответ
  1. Имя исполняемого файла важно. Если ваш файл назван foo.sh , то выполнение FOO не будет работать, если нет каких-либо других исполняемых файлов foo . В отличие от Windows, UNIX не делает неявных расширений файлов.

  2. Если следующие работы:

     ./ foo.sh
     

    Но это не:

     Foo.sh
     

    Это означает, что файл находится в вашем текущем каталоге, и ваш текущий каталог не находится на вашем пути. Для вашей защиты, если вы явно не предоставляете путь к команде, оболочка будет искать только команду между файлами, которые находятся на вашем пути.

  3. Пространства важны. Следующее может работать:

     ./ foo.sh
     

    Но это (взято из первой версии этого вопроса), безусловно, не будет работать:

     ./ foo.sh
     

    с пространством между . / и foo.sh , оболочка будет думать, что вы хотите выполнить текущий каталог с foo.sh аргумент Это создаст сообщение об ошибке.

5
27.01.2020, 21:56

Теги

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