Разность между (x=100) и {x=100;}?

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

Во время процесса установки скрипты (RAN как root) могут устанавливать исполняемые файлы SUID, которые при запуске обычных пользователей повышаются для рута и, следовательно, могут вызвать неограниченное повреждение системы. Еще хуже, это можно сделать молча и в течение длительных периодов, как изменение системных файлов так, как они все равно будут работать, как до того, как под таблицем крадет ваши данные, пароли, банковские транзакции и т. Д. Просто гугл для руткитов, троянских лошадей , чтобы найти некоторые примеры скрытого программного обеспечения, которые проходят плохие под крышкой).

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

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

0
20.01.2015, 10:42
3 ответа

В Linux нет официального и наилучшего способа, но вы можете облегчить свою жизнь (или, по крайней мере, использовать его с меньшим количеством типизации), скопировав сценарий в каталог в $ PATH, например, /usr/local/bin , если этот каталог находится в вашем пути. Используйте echo $ PATH для просмотра списка каталогов, через которые выполняется поиск команд оболочки для поиска

Если сценарий написан путь, что предполагается, что остальные файлы находятся относительно места, где он хранится, следует добавить строку

cd <original_directory_where_the_script_was_located>

в качестве одной из первых строк (но по крайней мере ниже первой строки, начинающейся с #! )

Если нет (другого) исполняемого файла, называемого phpstorm , можно даже снять .sh и просто запустить программу откуда угодно, используя

phpstorm

из командной строки.

-121--248749-

Дамп ядра записывается в текущий каталог процесса во время сбоя.

Конечно, дампы ядра должны быть включены, по умолчанию они обычно отключены. Проверьте выходные данные ulimit -c , если это 0, то базовый файл записываться не будет. Запустите ulimit -c unlimited для включения дампов ядра; это настройка для каждого процесса, который наследуется процессами, запущенными этим процессом.

Если основной дамп должен был быть создан, но вы не знаете, где, то вы можете запустить процесс снова (если он произойдет без немедленного сбоя), затем проверьте его рабочий каталог, выполнив ls -l/proc/$ pid/cwd , где $ pid - идентификатор процесса. Эта ссылка указывает на текущий рабочий каталог этого процесса. Скорее всего, основная свалка будет там. В противном случае необходимо выполнить find для всей системы...

-121--24177-

В оболочках типа Борна (...) выполняет код в оболочке, таким образом, любое изменение переменных является локальным по отношению к этой оболочке и не видимым в родительской оболочке. Напротив, {...} выполняет код в текущей оболочке, влияя на ее переменные.

3
28.01.2020, 02:14

В Linux нет официального и наилучшего способа, но вы можете облегчить свою жизнь (или, по крайней мере, использовать его с меньшим количеством типизации), скопировав сценарий в каталог в $ PATH, например, /usr/local/bin , если этот каталог находится в вашем пути. Используйте echo $ PATH для просмотра списка каталогов, через которые выполняется поиск команд оболочки для поиска

Если сценарий написан путь, что предполагается, что остальные файлы находятся относительно места, где он хранится, следует добавить строку

cd <original_directory_where_the_script_was_located>

в качестве одной из первых строк (но по крайней мере ниже первой строки, начинающейся с #! )

Если нет (другого) исполняемого файла, называемого phpstorm , можно даже снять .sh и просто запустить программу откуда угодно, используя

phpstorm

из командной строки.

-121--248749-

Дамп ядра записывается в текущий каталог процесса во время сбоя.

Конечно, дампы ядра должны быть включены, по умолчанию они обычно отключены. Проверьте выходные данные ulimit -c , если это 0, то базовый файл записываться не будет. Запустите ulimit -c unlimited для включения дампов ядра; это настройка для каждого процесса, который наследуется процессами, запущенными этим процессом.

Если основной дамп должен был быть создан, но вы не знаете, где, то вы можете запустить процесс снова (если он произойдет без немедленного сбоя), затем проверьте его рабочий каталог, выполнив ls -l/proc/$ pid/cwd , где $ pid - идентификатор процесса. Эта ссылка указывает на текущий рабочий каталог этого процесса. Скорее всего, основная свалка будет там. В противном случае необходимо выполнить find для всей системы...

-121--24177-

Как вы сказали: () вызывает субоболочку. {;} нет. Вот почему результаты отличаются. {;} в любом случае не имеет смысла для отдельных команд. Это функция группировки.

1
28.01.2020, 02:14

Из Человек Bash :

(список) Список выполняется в среде подпункты (см. Срежу выполнения команды ниже). Переменные назначения и встроенные команды, которые влияют на среду оболочки, не остаются в силе после завершения команды.

Команда, вызываемая в отдельной среде, не может повлиять на среду выполнения оболочки.

{Список; } Список просто выполняется в текущей среде оболочки.

3
28.01.2020, 02:14

Теги

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