Замена объединения Bash и строковое извлечение Sub за один шаг

[1175079] Одна из причин в том, что в зависимости от количества задействованных библиотек KDE, Вам, возможно, придется загрузить и установить большое количество дополнительных пакетов. Вы можете проверить, какие дополнительные зависимости будут установлены с помощью [1175468]apt-get -s install kdevelop[1175469]. Я не уверен, возможно ли получить полный размер из [1175470]apt-get[1175471].

  • Также, по личному опыту, я использовал Unity, и пытался установить библиотеки KDE для исправления digikam. К сожалению, что-то там конфликтовало с темами Unity, и мои иконки изменились. Однако, так как Вы используете только VM, это, вероятно, не большая проблема. [1175082]
1
25.09.2014, 23:21
3 ответа
  1. Не используйте PHP (или, по крайней мере, только PHP) для этого. Вероятно, это самая протекающая и нарушенная реализация языка веб-сценариев в настоящее время.

  2. Разбейте проблему на три части:

    • фронтэнд - PHP (Python, Ruby, Perl...) код, который создает веб-страницу.

    • back end - оболочка, сценарий Perl, скомпилированный двоичный файл, который обращается к устройству. Не запускайте его под root . Набор отдельную учетную запись только для этой задачи и разрешите ей доступ к ней по мере необходимости. Если chmod или setfacl недостаточно и вы используете Linux, используйте возможности Linux (см. capabilities (7) man page) набор с помощью setcap или capsh .

    • протокол связи и средства, используемые между передней и задней сторонами. В идеале он должен быть максимально ограничен, в основном позволяя интерфейсу запрашивать бэкэнд. В зависимости от того, что вам нужно, оно может быть таким же простым, как отправка сообщений типа «read up 1KB from device» и «write this 7812B to the device» по сокету Unix или именованному каналу (см. mkfifo ).

-121--244864-

Согласно официальной странице установки Cygwin :

Установка и обновление Cygwin для 64-разрядных версий Windows

Запуск setup-x86_64.exe каждый раз, когда требуется обновить или установить Cygwin пакет для 64-разрядных окон. Подпись для setup-x86_64.exe может быть используется для проверки действительности этого двоичного файла с помощью этого открытого ключа.

У меня было предчувствие, что этот баш был затронут, поэтому примерно за 15 минут до того, как вы опубликовали свой вопрос, я сделал, как было указано на странице настройки.


Нет необходимости в сценарии стороннего разработчика. Я считаю, что процесс для меня изменился, потому что я не очистил мой каталог загрузки по адресу C :\Cygwin64\Downloads Утилита установки Просканировала мои установленные пакеты, и я оставил значения по умолчанию. Таким образом, все пакеты в базовой системе были обновлены. Один из них оказался тем бешеным, который затронут CVE-2014-6271. Вы можете увидеть доказательство того, что вы защищены на следующем снимке экрана:

Updated Bash - Cygwin

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

-121--50012-

Нет пути связывать встроенное расширение параметров Bash , но, конечно, это можно сделать в одной строке с внешними инструментами, такими как sed :

$ sed 's/[\.\/-]//g;s/^\(.\{16\}\).*/\1/' <<< "./my-site.sub.domain.com"
mysitesubdomainc

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

3
27.01.2020, 23:15

Как сказал @ l0b0, я не думаю, что это можно сделать в один шаг в оболочке, но его достаточно просто сделать с помощью внешних инструментов (предполагается, что строка сохранена в переменной $ s ):

$ perl -pe 's#[.\-/]##g' <<<$s | grep -oP .{16}
mysitesubdomainc
1
27.01.2020, 23:15

Почему бы не использовать zsh?

$ echo ${${mysite//[\.\/-]/}:0:16}
mysitesubdomainc

(Я немного изменил ваш код)

2
27.01.2020, 23:15

Теги

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