[devel] find Security Considerations

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Вт Июл 10 02:01:14 MSD 2007


On Mon, Jul 09, 2007 at 08:13:28PM +0400, Anton Farygin wrote:
> Dmitry V. Levin wrote:
> > On Mon, Jul 09, 2007 at 01:20:34PM +0700, Slava Semushin wrote:
> >> 2007/7/9, Vitaly Kuznetsov <vitty / altlinux.org>:
> >> [...]
> >>> +rm -f `find %buildroot -type f -name perllocal.pod -o -name .packlist`
> >>> +find %buildroot -name API.bs -a -size 0 -exec rm -f {} \;
> >> Как-то нелогично. Почему бы и в первом случае не использовать find +
> >> exec? Или даже в обоиз случаях find -delete
> > 
> > Это просто сборник ошибок:
> > - rm -f `find ...` это небезопасно в принципе, забудьте эту конструкцию
> >   навсегда.
> > - find ... -exec rm -f {} \; это небезопасно в принципе, забудьте эту
> >   конструкцию навсегда.
> 
> Кстати, а что ты скажешь про конструкцию вида:
> 
> find . -type f|while read line;do rm -f "$line";done

В этой конструкции много недостатков.  Я не буду их перечислять, просто
рекомендую ознакомиться с соответствующей документацией,
$ info -f find security

Кстати, немного истории "find -delete":
Этот параметр ведёт свою историю с ноября 1997-го года, когда патч к
findutils-4.1 анонсировал в bugtraq'е Douglas Siebert:
http://marc.info/?l=bugtraq&m=87930069226479

Этот патч был адаптирован для Owl в сентябре 2000-го года,
у нас -- а апреле 2002-го года.
GNU findutils поддерживает параметр -delete с ноября 2004 года
(после того как GNU findutils обрёл нового мантейнера):
http://savannah.gnu.org/patch/index.php?3454


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070710/ac162e3c/attachment-0001.bin>


Подробная информация о списке рассылки Devel