Я сам являюсь администратором cерверов под ОС FreeBSD
На одном из серверов один из пользователей чтото натворил, непонятно каким образом он создал директорию которая содржит одну и ту же папку и так до тех пор пока просто далше уже нельзя, и выдается такая ошибкаFile 'fun' exists but can not be stat-ed: File name too long
# pwd
/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
я пробовал е удалить и SU и после уже под рутом заходил ни чего не получилось.
Просто к примеру я даже теперь не могу посмотреть размеры каталогов в home'е да и вообще кто нить знает как это можно завалить?
Заранее благодарен // Виталий.
>Я сам являюсь администратором cерверов под ОС FreeBSD
>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>он создал директорию которая содржит одну и ту же папку и
>так до тех пор пока просто далше уже нельзя, и выдается
>такая ошибка
>File 'fun' exists but can not be stat-ed: File name too long
># pwd
>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
попробуй в ручную кдалять каждую начиная с самой первой и т.д:-)
>>Я сам являюсь администратором cерверов под ОС FreeBSD
>>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>>он создал директорию которая содржит одну и ту же папку и
>>так до тех пор пока просто далше уже нельзя, и выдается
>>такая ошибка
>>File 'fun' exists but can not be stat-ed: File name too long
>># pwd
>>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
> попробуй в ручную кдалять каждую начиная с самой первой и
>т.д:-)
я же говорю что дальше просто не могу идти..
дохожу до определенного самого нижнего места, а долше не пускает говорит что там файл существует но я его не могу отобразить так как он сильно длинное имя. :((
>>>Я сам являюсь администратором cерверов под ОС FreeBSD
>>>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>>>он создал директорию которая содржит одну и ту же папку и
>>>так до тех пор пока просто далше уже нельзя, и выдается
>>>такая ошибка
>>>File 'fun' exists but can not be stat-ed: File name too long
>>># pwd
>>>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
>> попробуй в ручную кдалять каждую начиная с самой первой и
>>т.д:-)
>
>
>я же говорю что дальше просто не могу идти..
>дохожу до определенного самого нижнего места, а долше не пускает говорит что
>там файл существует но я его не могу отобразить так как
>он сильно длинное имя. :((
Как ты переходишь в последнюю директорию?
>Я сам являюсь администратором cерверов под ОС FreeBSD
>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>он создал директорию которая содржит одну и ту же папку и
>так до тех пор пока просто далше уже нельзя, и выдается
>такая ошибка
>
>File 'fun' exists but can not be stat-ed: File name too long
>
>
># pwd
>
>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
>
>я пробовал е удалить и SU и после уже под рутом заходил
>ни чего не получилось.
>
>Просто к примеру я даже теперь не могу посмотреть размеры каталогов в
>home'е да и вообще кто нить знает как это можно завалить?
>
>
>Заранее благодарен // Виталий.
а что,
# cd /usr/home/kopic
# rm -rf fun/
не помогает?
>Заранее благодарен // Виталий.
>
>
>а что,
># cd /usr/home/kopic
># rm -rf fun/
>не помогает?нет не может, говорит что сильно длинное имя :((
>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>он создал директорию которая содржит одну и ту же папку и>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
>А может попробовать сделать жесткую ссылочку на то, докуда добираешься, тем самым уменьшив имя ?
все началось с того что я поставил quota на юзеров
и решил посмотреть Show directory sizes в хомах
чтоб увидеть кто уже из юзеров перескочил за quot'у так как я ставил новую систему, и fstab переписался и я забыл его поправить. И не заметил этого сразу, забыл. А многие просто на просто уже перскочили свои лимиты :) я решил взглянуть как много человек ведаь когда доходила до этого юзера то на слетела. я не понял в чом дело, стал каждого юзера в отдельности проверять, и на шел этот косяк. так что блин теперь с ним делать не знаю.
Этот юзер говорит что он прочитал в какйто линух книги скопировал от туда этот скрипт и запустил получилось это , я его начал спрашивать что где как можно посмотреть на этот скрипт, а он говорит что уже нету от куда на него посмотреть. Так что вот такакя вот беда.
>все началось с того что я поставил quota на юзеров
>и решил посмотреть Show directory sizes в хомах
>чтоб увидеть кто уже из юзеров перескочил за quot'у так как я
>ставил новую систему, и fstab переписался и я забыл его поправить.
>И не заметил этого сразу, забыл. А многие просто на просто
>уже перскочили свои лимиты :) я решил взглянуть как много
>человек ведаь когда доходила до этого юзера то на слетела. я
>не понял в чом дело, стал каждого юзера в отдельности проверять,
>и на шел этот косяк. так что блин теперь с ним
>делать не знаю.
>Этот юзер говорит что он прочитал в какйто линух книги скопировал от
>туда этот скрипт и запустил получилось это , я его начал
>спрашивать что где как можно посмотреть на этот скрипт, а он
>говорит что уже нету от куда на него посмотреть. Так что
>вот такакя вот беда.пи...т, так один из старых exploit'ов работал
>>вот такакя вот беда.
>
>пи...т, так один из старых exploit'ов работал?
>>>вот такакя вот беда.
>>
>>пи...т, так один из старых exploit'ов работал
>
>?
имелось ввиду что наверное версия freebsd старая, и в ней имеется баг, позволяющий юзеру создавать хардлинки на директории, и для этой уязвимости когда то появлялся 'exploit'-программа для реализации этой уязвимости, которую по всей видимости этот юзер и применил.
хотя я и не нашел нигде описания подобной дыры, наверно старая совсем
то появлялся 'exploit'-программа для реализации этой уязвимости, которую по всей видимости
>этот юзер и применил.
>хотя я и не нашел нигде описания подобной дыры, наверно старая совсем
>FreeBSD 4.6R может росто не так настроена?
>то появлялся 'exploit'-программа для реализации этой уязвимости, которую по всей видимости
>>этот юзер и применил.
>>хотя я и не нашел нигде описания подобной дыры, наверно старая совсем
>>
>
>FreeBSD 4.6R может росто не так настроена?
более менее близкая по возможному эффекту уязвимость:
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA...
раз юзер может писать любые юлики в файловой системе, то значит может и подправить нужную directory entry чтоб она была хардлинком на каталог.
хотя это довольно сложно, чтоб это реализовать надо изрядно попотеть и иметь квалификацию. Так что вероятность того что именно это было использовано - мала.хотя с выхода 4.6R было найдено еще достаточно дыр, чтобы можно было получить рута и сделать
mkdir fun
cd fun
ln -d fun .как это исправить - наверное fsck поможет.
возможно rm -df fun поможет.
если нет - видимо придется брать в руки что то вроде disk editor и затирать глючную запись в директории руками.
>>то появлялся 'exploit'-программа для реализации этой уязвимости, которую по всей видимости
>>>этот юзер и применил.
>>>хотя я и не нашел нигде описания подобной дыры, наверно старая совсем
>>>
>>
>>FreeBSD 4.6R может росто не так настроена?
>более менее близкая по возможному эффекту уязвимость:
>ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA...
>раз юзер может писать любые юлики в файловой системе, то значит может
>и подправить нужную directory entry чтоб она была хардлинком на каталог.
>
>хотя это довольно сложно, чтоб это реализовать надо изрядно попотеть и иметь
>квалификацию. Так что вероятность того что именно это было использовано -
>мала.
>
>хотя с выхода 4.6R было найдено еще достаточно дыр, чтобы можно было
>получить рута и сделать
>mkdir fun
>cd fun
>ln -d fun .Насколько я знаю, под Фрей ln не понимает ключ -d.
>
>как это исправить - наверное fsck поможет.
>возможно rm -df fun поможет.
>если нет - видимо придется брать в руки что то вроде disk
>editor и затирать глючную запись в директории руками.
действительно, даже если посмотреть в man 3 link, freebsd 4.6-STABLE:
The link() system call traditionally allows the super-user to link direc-
tories which corrupts the filesystem coherency. This implementation no
longer permits it.
тогда видимо такой эффект можно получить только непосредственно редактируя запись в директории, имея raw доступ к диску... других идей пока нет
интересная ситуация.... %-)
>тогда видимо такой эффект можно получить только непосредственно редактируя запись в директории,
>имея raw доступ к диску... других идей пока нет
>интересная ситуация.... %-)что значит raw?
>>тогда видимо такой эффект можно получить только непосредственно редактируя запись в директории,
>>имея raw доступ к диску... других идей пока нет
>>интересная ситуация.... %-)
>
>
>
>что значит raw?
"прямой", низкоуровневый доступ
доступ на запись в файл устройства, который соответствует диску.
>>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>>он создал директорию которая содржит одну и ту же папку и
>
>>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
>>
>
>А может попробовать сделать жесткую ссылочку на то, докуда добираешься, тем самым
>уменьшив имя ?Не прокатит. При попытке удаления "хвоста" ты удалишь только созданную жесткую ссылку - сами данные остануться. Не понятно на самом деле что это вообще такое есть. =>
2xtc - покажи ls -al /usr/home/kopic/fun (и заодно ls -al /usr/home/kopic/fun/fun).
Ну и далее - под RH 7.3 однажды сам себе подобную ситуацию смастерил (не нарочно конечно, но без помощи всяких эксплоитов) и долго разбираться не стал - из под mc все нормально пришиблось...
попробуй проверить систему с помощью fsck.ext2
помню у меня после 'make world' оставалась куча каталогов, не поддававшихся стиранию, может здесь что-то похожее, обычно оказывалось что на них установлены флаги schg.
Сбрось securelevel (если установлен) до -1 и сделай рутом:#ls -lo /usr/home/user/fun
если присутствуют эти флаги или может uchg
делаешь#chflags noschg -R /usr/home/user/fun
или
#chflags -R nouchg /usr/home/user/fun
соответственно,потом пробуй удалять, вообще midc удобнее использовать для этого.
>Я сам являюсь администратором cерверов под ОС FreeBSD
>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>он создал директорию которая содржит одну и ту же папку и
>так до тех пор пока просто далше уже нельзя, и выдается
>такая ошибка
>
>File 'fun' exists but can not be stat-ed: File name too long
>
>
># pwd
>
>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
>
>я пробовал е удалить и SU и после уже под рутом заходил
>ни чего не получилось.
>
>Просто к примеру я даже теперь не могу посмотреть размеры каталогов в
>home'е да и вообще кто нить знает как это можно завалить?
>
>
>Заранее благодарен // Виталий.
Переименуй папки в один символ ("1" или еще какой тебе нравится, тогда полное имя самого последнего станет меньше), такая же фигня есть в виндовс.
>>Я сам являюсь администратором cерверов под ОС FreeBSD
>>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>>он создал директорию которая содржит одну и ту же папку и
>>так до тех пор пока просто далше уже нельзя, и выдается
>>такая ошибка
>>
>>File 'fun' exists but can not be stat-ed: File name too long
>>
>>
>># pwd
>>
>>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
>>
>>я пробовал е удалить и SU и после уже под рутом заходил
>>ни чего не получилось.
>>
>>Просто к примеру я даже теперь не могу посмотреть размеры каталогов в
>>home'е да и вообще кто нить знает как это можно завалить?
>>
>>
>>Заранее благодарен // Виталий.
>
>
>Переименуй папки в один символ ("1" или еще какой тебе нравится, тогда
>полное имя самого последнего станет меньше), такая же фигня есть в
>виндовс.Дельная мысль :) (нет - правдо дельная, и что самое главное - универсальная), но по моему надо сначала разобраться что там такое есть (от чего и почему - никакой РЕАЛЬНОЙ ИНФОРМАЦИИ - читай "полезной" до сих пор нет - одна жалоба на длинное имя файла и корявого пользователя).
благодаря qqбыл написан такой скрипт
там было 31987 папок ! а после 12000 там еще и файлы появились funny
#!/usr/bin/perl
while(chdir "fun"){$k=0;
while(chdir "fun"){ $k++; }
$l=0;
chdir "/usr/home/kopic";while(chdir "fun"){
$l++;if ( $l>=$k-100 ){`rm -rf fun`;}
}
chdir "/usr/home/kopic";
if ($l==1){goto q1;}}
q1:
`rm -rf fun`;
print "Vse ubito";
который все и замочил !
>
>благодаря qq
>
>был написан такой скрипт
>
>там было 31987 папок ! а после 12000 там еще и файлы
>появились funny
>
>
>#!/usr/bin/perl
>
>
>while(chdir "fun"){
>
>$k=0;
>
>while(chdir "fun"){ $k++; }
>
>$l=0;
>chdir "/usr/home/kopic";
>
>while(chdir "fun"){
>$l++;
>
>if ( $l>=$k-100 ){`rm -rf fun`;}
>
>}
>
>chdir "/usr/home/kopic";
>if ($l==1){goto q1;}
>
>}
>
>q1:
>
>`rm -rf fun`;
>
>print "Vse ubito";
>
>
>который все и замочил !
Спасибо :) - уже видел...
>Я сам являюсь администратором cерверов под ОС FreeBSD
>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>он создал директорию которая содржит одну и ту же папку и
>так до тех пор пока просто далше уже нельзя, и выдается
>такая ошибка
>
>File 'fun' exists but can not be stat-ed: File name too long
>
>
># pwd
>
>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
>
>я пробовал е удалить и SU и после уже под рутом заходил
>ни чего не получилось.
>
>Просто к примеру я даже теперь не могу посмотреть размеры каталогов в
>home'е да и вообще кто нить знает как это можно завалить?
>
>
>Заранее благодарен // Виталий.Может написать скриптик типа такого:
#!/bin/sh
cd /usr/home/kopic
#Сначала доходим до конца дерева каталогов
while [ -d fun ]
do
cd fun
done
#Теперь удаляем по каталогу, проходя в обратном направлении
a=`pwd`
while [ $a != "/usr/home/kopic" ]
do
rm -r fun
a=`pwd`
done
>>Я сам являюсь администратором cерверов под ОС FreeBSD
>>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>>он создал директорию которая содржит одну и ту же папку и
>>так до тех пор пока просто далше уже нельзя, и выдается
>>такая ошибка
>>
>>File 'fun' exists but can not be stat-ed: File name too long
>>
>>
>># pwd
>>
>>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
>>
>>я пробовал е удалить и SU и после уже под рутом заходил
>>ни чего не получилось.
>>
>>Просто к примеру я даже теперь не могу посмотреть размеры каталогов в
>>home'е да и вообще кто нить знает как это можно завалить?
>>
>>
>>Заранее благодарен // Виталий.
>
>Может написать скриптик типа такого:
>#!/bin/sh
>cd /usr/home/kopic
>#Сначала доходим до конца дерева каталогов
>while [ -d fun ]
>do
> cd fun
>done
>#Теперь удаляем по каталогу, проходя в обратном направлении
>a=`pwd`
>while [ $a != "/usr/home/kopic" ]
>do
> rm -r fun
> a=`pwd`
>doneЧуть чуть неточно написал! Надо так:
#!/bin/sh
cd /usr/home/kopic
#Сначала доходим до конца дерева каталогов
while [ -d fun ]
do
cd fun
done
#Теперь удаляем по каталогу, проходя в обратном направлении
cd ..
a='pwd'
while [ $a != "/usr/home/kopic" ]
do
rm -r fun
cd ..
a='pwd'
done