URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 51123
[ Назад ]

Исходное сообщение
"Следует ли ограничить использование спецсимволов в файловых ..."

Отправлено opennews , 25-Мрт-09 18:01 
"Fixing Unix/Linux/POSIX Filenames (http://www.dwheeler.com/essays/fixing-unix-linux-filenames.html)" - обсуждение проблемы, связанной с использованием спецсимволов в файловых системах Unix. Стандарт POSIX не ограничивает использование символов в именах файлов, за исключением слэша и символа с нулевым кодом. Простой пример, демонстрирующий опасность такого подхода: создайте файл с именем '--help' и выполните команду 'ls *'. Продолжим эксперименты, создадим файл с именем "; echo 1  > 2" или ">2", выполним типовой 'find . -exec sh -c "echo {}" \;' и не желая того  создадим файл 2. Эксперименты можно продолжать, например, создать файл '~имя_пользователя' и попробовать его переименовать в файловом менеджере.

URL: http://www.dwheeler.com/essays/fixing-unix-linux-filenames.html
Новость: http://www.opennet.me/opennews/art.shtml?num=20932


Содержание

Сообщения в этом обсуждении
"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Nick , 25-Мрт-09 18:01 
интересно...

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено User294 , 25-Мрт-09 19:08 
>интересно...

О сколько нам открытий чудных... или новый взгляд на старые вещи :)

Вспомнился старинный DoS attack применимый для виндов и некоторых *nix: сетевым софтом (самбой, NFS) можно [коге где "было можно"] создать папки с невалидными именами, например слэшами в имени файла.Чисто физически ФС может это создать.А вот удалить потом такой файл штатными средствами юзер обломается :).Так можно например выжрать все место на диске если разрешен аплоад и при том админ ничего с этим не сможет поделать т.к. стереть файл он обломается.Данный прикол встречался на куче разных платформ.


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Nick , 25-Мрт-09 22:08 
>[оверквотинг удален]
>О сколько нам открытий чудных... или новый взгляд на старые вещи :)
>
>
>Вспомнился старинный DoS attack применимый для виндов и некоторых *nix: сетевым софтом
>(самбой, NFS) можно [коге где "было можно"] создать папки с невалидными
>именами, например слэшами в имени файла.Чисто физически ФС может это создать.А
>вот удалить потом такой файл штатными средствами юзер обломается :).Так можно
>например выжрать все место на диске если разрешен аплоад и при
>том админ ничего с этим не сможет поделать т.к. стереть файл
>он обломается.Данный прикол встречался на куче разных платформ.

:)

хотя в данной новости суть проста: экранируйте переменные в параметрах команд.


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Аноним , 25-Мрт-09 18:07 
>>создать файл '~имя_пользователя' и попробовать его переименовать в файловом менеджере.

konqueror, mc и mv нормально переименовывают


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Andrew Kolchoogin , 25-Мрт-09 18:24 
> вот бы еще избавились от дибильной точки в начале имени для скрытия
> файла и сделали нормальный атрибут "скрытый"

    Сделали уже сто лет, как: большинство современных файловых систем поддерживают расширенные атрибуты произвольного формата типа "ключ:значение".

    Дело за малым: переписать весь накопленный за 40 лет софт и "пересобрать мозг" системным администраторам на новую семантику. Займешься?


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Аноним , 25-Мрт-09 18:29 
>Дело за малым: переписать весь накопленный за 40 лет софт и "пересобрать мозг" системным администраторам на новую семантику. Займешься?

Нет, уж лучше до конца времен пользоваться костылями, изобретенными 40[50[60[70]]] лет назад



"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено User294 , 25-Мрт-09 19:28 
>Нет, уж лучше до конца времен пользоваться костылями, изобретенными 40[50[60[70]]]
>лет назад

Электричество открыли несколько столетий назад.А электродвигатели и трансформаторы которым более 100 лет с момента изобретения и сегодня в почете.Может и изменились некоторые аспекты но в целом по природе своей это те же устройства что и век назад.По вашей логике от них должны бы уже избавиться как от "костылей"?...


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено pavlinux , 25-Мрт-09 19:36 
Даёшь движители на ионной, фотонной и Z-dot тяге!!! Роторы/статоры, поршни/цилиндры в политехнический музей! :)
  

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено fredy , 26-Мрт-09 07:56 
что плохого в точке и зачем ее заменять костылем из окна?



"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено fresco , 26-Мрт-09 09:32 
> вот бы еще избавились от дибильной точки в начале имени для скрытия

не троньте точку, вы, масдайщики!


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Аноним , 25-Мрт-09 19:42 
>вот бы еще избавились от дибильной точки в начале имени для скрытия
>файла и сделали нормальный атрибут "скрытый"

А мне дак уже наоборот это удобным кажется.


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено аноним , 25-Мрт-09 20:00 
>вот бы еще избавились от дибильной точки в начале имени для скрытия
>файла и сделали нормальный атрибут "скрытый"

смысл сего действа не ясен O_o когда в терминале смотришь сразу видно, где какой файл, а так - фик.


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Аноним , 25-Мрт-09 18:47 
"ls -- *" работает.
Опция "--" специально для таких случаев придумана, есть у всех основных утилит

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Sarge , 25-Мрт-09 19:15 
ls ./* тоже нормально работает.
IMHO это всё просто и банально уязвимости в программах, которые не ограничениями в ФС надо лечить.

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Фнон , 25-Мрт-09 20:29 
>"ls -- *" работает.
>Опция "--" специально для таких случаев придумана, есть у всех основных утилит

И много по вашему людей всегда набирают "ls --" когда звездочку используют ?



"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено sn , 26-Мрт-09 08:18 
Много по вашему людей, которые используют "ls *" вместо простого "ls" без аргументов?

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Фнон , 26-Мрт-09 08:48 
>Много по вашему людей, которые используют "ls *" вместо простого "ls" без
>аргументов?

Звездочку в качестве маски, как и find . -exec sh  используют поголовно, понятно что 'ls *' и 'sh -c "echo {}"' это абстрактные примеры, под который подпадает и "ls *.txt".


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено pernatiy , 26-Мрт-09 19:03 
А что с "ls *.txt" ? Приведите хоть один пример когда использование такой команды даст "неожиданый" результат.

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено ximaera , 27-Мрт-09 19:41 
Пожалуйста.

ximaera@endeavour:~/tmp$ >-1.txt
ximaera@endeavour:~/tmp$ ls *.txt
ls: invalid option -- '.'
Try `ls --help' for more information.
ximaera@endeavour:~/tmp$

Обратите внимание, что на единицу ls не ругнулся, так как это валидный аргумент.

Можно забавнее:

ximaera@endeavour:~/tmp$ mkcd ls
ximaera@endeavour:~/tmp/ls$ >good_file.txt
ximaera@endeavour:~/tmp/ls$ >bad_file.txt
ximaera@endeavour:~/tmp/ls$ mv -- bad_file.txt --hide=\*.txt
ximaera@endeavour:~/tmp/ls$ ls
good_file.txt  --hide=*.txt
ximaera@endeavour:~/tmp/ls$ ls *.txt
good_file.txt
ximaera@endeavour:~/tmp/ls$ ls *
good_file.txt
ximaera@agavrichen2:~/tmp/ls$


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено pernatiy , 27-Мрт-09 19:59 
Далее чем на отображение это не влияет. Поэтому я считаю что это несущественно. А более страшного варианта (создание/перезапись файлов) лично я не могу придумать.

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Frank , 26-Мрт-09 08:20 
А много людей звёздочку используют? Достаточно уяснить, что при использовании звёздочки, нужно использовать -- и всё будет ОК. Это не причина заниматься кастрацией ФС.

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено NicK , 25-Мрт-09 19:04 
>вот бы еще избавились от дибильной точки в начале имени для скрытия файла и
>делали нормальный атрибут "скрытый"

Чем проще, тем лучше. Точка останется.


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Аноним , 25-Мрт-09 19:16 
>выполним типовой 'find . -exec sh -c "echo {}" \;'

это не "типовой" это пример "как не надо делать"


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Фнон , 25-Мрт-09 20:27 
>>выполним типовой 'find . -exec sh -c "echo {}" \;'
>
>это не "типовой" это пример "как не надо делать"

Ну и ? Покажите как иначе без всяких внешних скриптов сделать неоднокомандную обработку в find, кром как через вызов shell.


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено pavel_simple , 25-Мрт-09 21:03 
>>>выполним типовой 'find . -exec sh -c "echo {}" \;'
>>
>>это не "типовой" это пример "как не надо делать"
>
>Ну и ? Покажите как иначе без всяких внешних скриптов сделать неоднокомандную
>обработку в find, кром как через вызов shell.

простите , а что за изврат запускать /bin/echo через /bin/sh ?

не одной командой - но 5 букв типа xargs не сильно напрягают.


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Аноним , 25-Мрт-09 23:41 
>простите , а что за изврат запускать /bin/echo через /bin/sh ?

echo - это встроенная команда в sh, см. sh(1)


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено pavel_simple , 26-Мрт-09 07:57 
>>простите , а что за изврат запускать /bin/echo через /bin/sh ?
>
>echo - это встроенная команда в sh, см. sh(1)

везёт-же вам

ls -la /bin/echo
-rwxr-xr-x 1 root root 30136 Апр  4  2008 /bin/echo

Debian 5 (lenny)


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Sarge , 26-Мрт-09 10:57 
на самом деле во многих шеллах эта команда встроена. man sh, man bash (Debian Etch).

Можете для эксперимента переименовать файл mv /bin/echo /bin/echo.1 и после этого запустить в терминале echo test --отработает без проблем.


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено pavel_simple , 26-Мрт-09 11:02 
>на самом деле во многих шеллах эта команда встроена. man sh, man
>bash (Debian Etch).
>
>Можете для эксперимента переименовать файл mv /bin/echo /bin/echo.1 и после этого запустить
>в терминале echo test --отработает без проблем.

и что -- то что почти во всех shell'ах эта команда встроенная, я должен её выполнять именно через shell? особенно учитывая видимо то, что bash/dash/ksh/zsh гораздо дольше будут выполняться чем /bin/echo ??? или именно для того, чтобы приведённые в примерах глупости работали?


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Sarge , 27-Мрт-09 06:45 
Это не глупость, а Proof of Concept. В более реальных задачах скорее всего использование шелла будет необходимым. А косяк где-то явно имеется и его надо исправлять. Разумеется, не ограничениями фс, а в более других местах.

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Frank , 26-Мрт-09 08:06 
>>простите , а что за изврат запускать /bin/echo через /bin/sh ?
>
>echo - это встроенная команда в sh, см. sh(1)

Сфига ли?

frank@fqc-desktop:~$ file `which echo`
/bin/echo: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Аноним , 25-Мрт-09 19:26 
вашу ж мать, этож юникс
умный админ такого делать не станет, а для тупых пользователей прикладной гуёвый софт не должен позволять такие фокусы выкидывать

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Аноним , 25-Мрт-09 20:08 
[root@lx ~]# ls -lib wireless
8651803 -rw-r--r-- 1 root root 695 Mar 24  2008 wireless

[root@lx ~]# find . -inum 8651803 -exec ls -l  "{}" \;
-rw-r--r-- 1 root root 695 Mar 24  2008 ./wireless

[root@lx ~]#find . -inum 8651803 -exec rm -f "{}" \;    


Inodes отменили ?


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Frank , 26-Мрт-09 08:12 
Вот с ls это не работает!

frank@fqc-desktop:~/1$ ls
; echo 1 > 2
frank@fqc-desktop:~/1$ ls *
; echo 1 > 2
frank@fqc-desktop:~/1$ ls
; echo 1 > 2
frank@fqc-desktop:~/1$ rm *
frank@fqc-desktop:~/1$ ls


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено Frank , 26-Мрт-09 08:15 
извиняюсь, это не тот пример)

"Следует ли? %) ...да! И снятся ли электроовцам posix-шелы?....."
Отправлено Andrey Mitrofanov , 26-Мрт-09 12:33 
##> Следует ли ограничить использование спецсимволов в файловых системах Unix

Следует ли "решать" проблему экранирования спец.символов шела -- костылями в файлов_ых_ системах? ...в POSIX-е?

Является ли проблема экранирования спец.символов шелла -- проблемой posix-а/unix-вея? ...любой, хоть какой-нибудь, файловой системы?
(То, что она является "неисчерпаемым источником" ошибок людей, -- понятно.)

Является ли сравнительно бОльшая сложность безопасного прграммирования в сравнении с программированием "вообще"(*1) -- проблемой {POSIX, файловой системы, Индустрии, $чего-ещё$ }? ...которую нужно решать запретами? ...костылями в стандартах?

(*1) => существенное число "просто" работающих програм -- содержат (стремятся содержать?!) ошибки безопасности.

...надо ли в консерватории вообще что-то исправлять?... ...возможно ли??...


"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено XoRe , 27-Мрт-09 17:42 
А мне в свое время помогала кнопка Tab в этом деле =)
Когда был открыт фтп сервер с доступом на запись и всякие умники создавали файлы с веселыми именами, мне помогало автодополнение в шелле (csh/bash).
Шелл сам подставлял имя файла с экранированными символами.
Что говорит о том, что проблемы с такими именами файлов только у людей.

"Следует ли ограничить использование спецсимволов в файловых ..."
Отправлено sEr... , 05-Май-09 05:36 
Это скорее не проблемма, а то что нужно знать и не делать. :)
И правда, это может делать, либо злоумышленник, либо баран, который скорее всего будет юзать винду.
Сознательно сам себе врядли такое накуралесишь :)))

А по поводу точки перед файлами очень даже удобно, ненужно это менять. Хотя... Смотря как.