Также, по личному опыту, я использовал Unity, и пытался установить библиотеки KDE для исправления digikam. К сожалению, что-то там конфликтовало с темами Unity, и мои иконки изменились. Однако, так как Вы используете только VM, это, вероятно, не большая проблема. [1175082]
Не используйте PHP (или, по крайней мере, только PHP) для этого. Вероятно, это самая протекающая и нарушенная реализация языка веб-сценариев в настоящее время.
Разбейте проблему на три части:
фронтэнд - 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
).
Согласно официальной странице установки Cygwin :
Установка и обновление Cygwin для 64-разрядных версий Windows
Запуск setup-x86_64.exe каждый раз, когда требуется обновить или установить Cygwin пакет для 64-разрядных окон. Подпись для setup-x86_64.exe может быть используется для проверки действительности этого двоичного файла с помощью этого открытого ключа.
У меня было предчувствие, что этот баш был затронут, поэтому примерно за 15 минут до того, как вы опубликовали свой вопрос, я сделал, как было указано на странице настройки.
Нет необходимости в сценарии стороннего разработчика. Я считаю, что процесс для меня изменился, потому что я не очистил мой каталог загрузки по адресу C :\Cygwin64\Downloads
Утилита установки Просканировала мои установленные пакеты, и я оставил значения по умолчанию. Таким образом, все пакеты в базовой системе были обновлены. Один из них оказался тем бешеным, который затронут CVE-2014-6271. Вы можете увидеть доказательство того, что вы защищены на следующем снимке экрана:
Пожалуйста, обратите внимание, что я не знаю, защищает ли это обновление от других обнаруженных уязвимостей, поэтому следуйте описанной выше процедуре в течение следующих нескольких дней, пока эта проблема не будет полностью устранена.
-121--50012- Нет пути связывать встроенное расширение параметров Bash , но, конечно, это можно сделать в одной строке с внешними инструментами, такими как sed
:
$ sed 's/[\.\/-]//g;s/^\(.\{16\}\).*/\1/' <<< "./my-site.sub.domain.com"
mysitesubdomainc
К сожалению, это очень быстро превращается в недостижимый код, и, вероятно, менее эффективен, чем использование внутренних устройств Bash, поэтому я бы посоветовал против этого.
Как сказал @ l0b0, я не думаю, что это можно сделать в один шаг в оболочке, но его достаточно просто сделать с помощью внешних инструментов (предполагается, что строка сохранена в переменной $ s
):
$ perl -pe 's#[.\-/]##g' <<<$s | grep -oP .{16}
mysitesubdomainc
Почему бы не использовать zsh?
$ echo ${${mysite//[\.\/-]/}:0:16}
mysitesubdomainc
(Я немного изменил ваш код)