Новые строки в именах файлов

Вы могли бы также хотеть посмотреть на pushd и popd, которые создают стопку каталогов для запоминания, где Вы были.

Использовать, pushd <directory> изменения в <directory> и сохраняет предыдущий каталог. Для возврата к этому сохраненному каталогу использовать popd.

24
19.12.2017, 23:36
3 ответа

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

  • Некоторая ошибка или пользовательская ошибка (например, плохая вставка копии) привели к непреднамеренному имени файла.
  • Некоторое повреждение файловой системы влияло на имя файла.
  • Кто-то сознательно создал “странное” имя файла для использования дыры в системе безопасности, куда приложение поместило больше доверия именам файлов, это было передано, чем это должно иметь.

POSIX определяет имя файла как “имя, состоящее из 1 к байтам {NAME_MAX}, используемым для именования файла. Символы, составляющие имя, могут быть выбраны из набора всех символьных значений, исключая символ наклонной черты и пустой байт. Точка имен файлов и точечная точка имеют особое значение”. Нет никакой гарантии, что каждая файловая система примет “странные” имена файлов (единственные гарантируемые символы являются буквами ASCII, цифры, точка, дефис и подчеркивание, т.е. A-Z, a-z, 0-9 и ._-, с дефисом, запрещенным в первом положении), но самые собственные файловые системы на современных нельдах делают.

26
27.01.2020, 19:40
  • 1
    Так spaces в именах файлов, как гарантируют, не будут портативными? Было бы полезно, если бы Вы разъяснили, что те последние три символа period, underscore, and hyphen. С подчеркнутой ссылкой трудно сказать. то же самое –  toxalot 10.03.2014, 01:20
  • 2
    @toxalot нет, пробелы, как гарантируют, не будут портативными, ни , (используемый RCS), : (используемый X.org), ~ (используемый многими программами на файлах резервных копий), …, Но они поддерживаются почти всеми современными системами. –  Gilles 'SO- stop being evil' 10.03.2014, 01:41

При писании работы я часто собираю библиографию файлов PDF из различных источников. Не все они содержат корректные метаданные, что означает I иногда вставка копии заголовок бумаги от средства просмотра PDF в имя файла. Это часто приводит к новым строкам в имени файла, но никогда не было проблемой ни с какими инструментами, которые я использовал.

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

23
27.01.2020, 19:40

Я никогда не видел, что Обычные пользователи используют новые строки в именах файлов. Кажется, что их основная цель к (1), помогают взломщикам ниспровергать Вашу систему, и к (2) мешают писать безопасные программы :-(. Однако современному Unix - нравится (такие как Linux), позволяют им, таким образом, необходимо подготовиться к ним, если Вы хотите программу, которая сопротивляется нападению.

"Имена файлов и Пути в Shell: Как сделать, это правильно" показывает, как обработать это правильно.

2
27.01.2020, 19:40
  • 1
    я - обычный пользователь и у меня есть новые строки в моих именах файлов. Сценарий, указанный в ответе @sml, произошел со мной несколько раз. То, что интересно мне, - то, как может новая строка в имени файла использоваться для "ниспровергания системы"? У Вас есть какие-либо источники, объясняющие это? –  Joseph R. 19.08.2013, 00:42
  • 2
    @JosephR. Я не могу думать о способе поставить под угрозу систему, но Вы могли использовать его в качестве DOS к приложениям, которые не обрабатывают новые строки (и отказывают вместо этого) –  strugee 22.10.2013, 04:20

Теги

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