VLC не открывается через терминал или графический интерфейс

Немного предыстории :Переменная окружения PATH представляет собой список каталогов, разделенных двоеточиями. Когда вы вводите имя команды, не указывая явный путь (, например. вы набираете «ls», а не «/bin/ls» )ваша оболочка ищет все каталоги в списке PATH по порядку, ища исполняемый файл с таким именем, и оболочка запускает первую подходящую программу, которую находит.

Один из каталогов в списке PATH может быть текущим каталогом ".". Также допустимо использовать пустое имя каталога в списке PATH для указания текущего каталога. Оба они эквивалентны

для пользователей csh:

    setenv PATH :/usr/ucb:/bin:/usr/bin
    setenv PATH.:/usr/ucb:/bin:/usr/bin

для пользователей sh или ksh

    PATH=:/usr/ucb:/bin:/usr/bin export PATH
    PATH=.:/usr/ucb:/bin:/usr/bin export PATH

Наличие "." где-то в PATH удобно -вы можете ввести «a.out» вместо «./a.out», чтобы запускать программы в текущем каталоге. Но есть одна загвоздка.

Рассмотрим, что происходит в случае, когда "." является первой записью в PATH. Предположим, что ваш текущий каталог является публично -доступным для записи, например, "/tmp". Если там просто окажется программа с именем «/tmp/ls», оставленная каким-то другим пользователем, и вы наберете «ls» (, намереваясь, конечно, запустить обычную программу «/bin/ls» ), ваша оболочка вместо этого запустит "./ls", программу другого пользователя. Излишне говорить, что результаты запуска такой неизвестной программы могут вас удивить.

Немного лучше иметь "." в конце ПУТИ:

    setenv PATH /usr/ucb:/bin:/usr/bin:.

Теперь, если вы находитесь в /tmp и набираете «ls», оболочка будет искать в /usr/ucb, /bin и /usr/bin программу с именем «ls», прежде чем найдет время для поиска в «. ", и снижается риск непреднамеренного запуска программы "ls" другого пользователя. Однако это не на 100% безопасно -, если вы неуклюжий машинист и когда-нибудь наберете «sl -l» вместо «ls -l», вы рискуете запустить «./sl», если он есть.Какой-нибудь «умный» программист мог бы предвидеть типичные ошибки при наборе текста и оставить программы с такими именами разбросанными по общедоступным каталогам. Остерегаться.

Многие опытные пользователи Unix прекрасно обходятся без "." вообще в PATH:

    setenv PATH /usr/ucb:/bin:/usr/bin

Если вы сделаете это, вам нужно будет ввести «./program» вместо «program», чтобы запускать программы в текущем каталоге, но повышение безопасности, вероятно, того стоит.

2
24.09.2021, 10:47
0 ответов

Теги

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