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

Исходное сообщение
"Помагите удалить"

Отправлено xtc , 29-Окт-02 00:51 
Я сам являюсь администратором 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'е да и вообще кто нить знает как это можно завалить?

Заранее благодарен // Виталий.


Содержание

Сообщения в этом обсуждении
"RE: Помагите удалить"
Отправлено Константин , 29-Окт-02 09:25 
>Я сам являюсь администратором 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
  попробуй в ручную кдалять каждую начиная с самой первой и т.д:-)

"RE: Помагите удалить"
Отправлено xtc , 29-Окт-02 14:42 
>>Я сам являюсь администратором 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
>  попробуй в ручную кдалять каждую начиная с самой первой и
>т.д:-)


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



"RE: Помагите удалить"
Отправлено tcsh , 31-Окт-02 12:30 
>>>Я сам являюсь администратором 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
>>  попробуй в ручную кдалять каждую начиная с самой первой и
>>т.д:-)
>
>
>я же говорю что дальше просто не могу идти..
>дохожу до определенного самого нижнего места, а долше не пускает говорит что
>там файл существует но я его не могу отобразить так как
>он сильно длинное имя. :((


Как ты переходишь в последнюю директорию?


"RE: Помагите удалить"
Отправлено LinaS , 29-Окт-02 09:31 
>Я сам являюсь администратором 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/
не помогает?


"RE: Помагите удалить"
Отправлено xtc , 29-Окт-02 14:43 
>Заранее благодарен // Виталий.
>
>
>а что,
># cd /usr/home/kopic
># rm -rf fun/
>не помогает?

нет не может, говорит что сильно длинное имя  :((


"RE: Помогите удалить"
Отправлено Hermit , 29-Окт-02 15:51 
>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>он создал директорию которая содржит одну и ту же папку и

>/usr/home/kopic/fun/........много......./fun/fun/fun/fun/fun/fun/fun/fun
>

А может попробовать сделать жесткую ссылочку на то, докуда добираешься, тем самым уменьшив имя ?


"RE: Помогите удалить"
Отправлено xtc , 29-Окт-02 20:15 
все началось с того что я поставил quota на юзеров
и решил посмотреть Show directory sizes  в хомах
чтоб увидеть кто уже из юзеров перескочил за quot'у так как я ставил новую систему, и fstab переписался и я забыл его поправить. И не заметил этого сразу, забыл. А многие просто на просто уже перскочили свои лимиты :)  я решил взглянуть как много человек ведаь когда доходила до этого юзера то на слетела. я не понял в чом дело, стал каждого юзера в отдельности проверять, и на шел этот косяк. так что блин теперь с ним делать не знаю.
Этот юзер говорит что он прочитал в какйто линух книги скопировал от туда этот скрипт и запустил получилось это , я его начал спрашивать что где как можно посмотреть на этот скрипт, а он говорит что уже нету от куда на него посмотреть. Так что вот такакя вот беда.



"RE: Помогите удалить"
Отправлено lavr , 29-Окт-02 20:32 
>все началось с того что я поставил quota на юзеров
>и решил посмотреть Show directory sizes  в хомах
>чтоб увидеть кто уже из юзеров перескочил за quot'у так как я
>ставил новую систему, и fstab переписался и я забыл его поправить.
>И не заметил этого сразу, забыл. А многие просто на просто
>уже перскочили свои лимиты :)  я решил взглянуть как много
>человек ведаь когда доходила до этого юзера то на слетела. я
>не понял в чом дело, стал каждого юзера в отдельности проверять,
>и на шел этот косяк. так что блин теперь с ним
>делать не знаю.
>Этот юзер говорит что он прочитал в какйто линух книги скопировал от
>туда этот скрипт и запустил получилось это , я его начал
>спрашивать что где как можно посмотреть на этот скрипт, а он
>говорит что уже нету от куда на него посмотреть. Так что
>вот такакя вот беда.

пи...т, так один из старых exploit'ов работал


"RE: Помогите удалить"
Отправлено xtc , 30-Окт-02 17:01 
>>вот такакя вот беда.
>
>пи...т, так один из старых exploit'ов работал

?



"RE: Помогите удалить"
Отправлено qq , 30-Окт-02 21:03 
>>>вот такакя вот беда.
>>
>>пи...т, так один из старых exploit'ов работал
>
>?
имелось ввиду что наверное версия freebsd старая, и в ней имеется баг, позволяющий юзеру создавать хардлинки на директории, и для этой уязвимости когда то появлялся 'exploit'-программа для реализации этой уязвимости, которую по всей видимости этот юзер и применил.
хотя я и не нашел нигде описания подобной дыры, наверно старая совсем


"RE: Помогите удалить"
Отправлено xtc , 31-Окт-02 08:56 
то появлялся 'exploit'-программа для реализации этой уязвимости, которую по всей видимости
>этот юзер и применил.
>хотя я и не нашел нигде описания подобной дыры, наверно старая совсем
>

FreeBSD 4.6R  может росто не так настроена?


"RE: Помогите удалить"
Отправлено qq , 31-Окт-02 15:10 
>то появлялся '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 и затирать глючную запись в директории руками.


"RE: Помогите удалить"
Отправлено tcsh , 31-Окт-02 16:52 
>>то появлялся '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 и затирать глючную запись в директории руками.



"RE: Помогите удалить"
Отправлено qq , 31-Окт-02 20:45 
действительно, даже если посмотреть в 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 доступ к диску... других идей пока нет
интересная ситуация.... %-)

"RE: Помогите удалить"
Отправлено xtc , 01-Ноя-02 00:48 
>тогда видимо такой эффект можно получить только непосредственно редактируя запись в директории,
>имея raw доступ к диску... других идей пока нет
>интересная ситуация.... %-)

что значит raw?


"RE: Помогите удалить"
Отправлено qq , 01-Ноя-02 02:57 
>>тогда видимо такой эффект можно получить только непосредственно редактируя запись в директории,
>>имея raw доступ к диску... других идей пока нет
>>интересная ситуация.... %-)
>
>
>
>что значит raw?
"прямой", низкоуровневый доступ
доступ на запись в файл устройства, который соответствует диску.

"RE: Помогите удалить"
Отправлено LS , 01-Ноя-02 01:11 
>>На одном из серверов один из пользователей чтото натворил, непонятно каким образом
>>он создал директорию которая содржит одну и ту же папку и
>
>>/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 все нормально пришиблось...


"RE: Помагите удалить"
Отправлено and , 29-Окт-02 17:31 
попробуй проверить систему с помощью fsck.ext2

"RE: Помагите удалить"
Отправлено wwwuser , 29-Окт-02 19:08 
помню у меня после '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 удобнее использовать для этого.


"RE: Помагите удалить"
Отправлено Bart Simpson , 31-Окт-02 09:10 
>Я сам являюсь администратором 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" или еще какой тебе нравится, тогда полное имя самого последнего станет меньше), такая же фигня есть в виндовс.


"RE: Помагите удалить"
Отправлено LS , 01-Ноя-02 01:17 
>>Я сам являюсь администратором 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" или еще какой тебе нравится, тогда
>полное имя самого последнего станет меньше), такая же фигня есть в
>виндовс.

Дельная мысль :) (нет - правдо дельная, и что самое главное - универсальная), но по моему надо сначала разобраться что там такое есть (от чего и почему - никакой РЕАЛЬНОЙ ИНФОРМАЦИИ - читай "полезной" до сих пор нет - одна жалоба на длинное имя файла и корявого пользователя).


"RE: Помагите удалить"
Отправлено xtc , 01-Ноя-02 02:09 

благодаря 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";


который все и замочил !


"RE: Помагите удалить"
Отправлено LS , 01-Ноя-02 02:56 
>
>благодаря 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";
>
>
>который все и замочил !


Спасибо :) - уже видел...


"RE: Помагите удалить"
Отправлено gennady , 03-Ноя-02 11:40 
>Я сам являюсь администратором 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


"RE: Помагите удалить"
Отправлено gennady , 03-Ноя-02 11:43 
>>Я сам являюсь администратором 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