Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
9.56 Mб
Скачать

 

 

 

 

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

 

 

 

 

Load_Cycle на моем ноутбучном винте

 

 

 

 

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

 

 

 

 

Выбор планировщика ввода-вывода

Деньги за баги в OpenSource-продуктах

В статье я уже упоминал про программу «Деньги за исправление багов» от Mozilla Russia. Подобных программ не так уж и много, но они есть. Во-первых,

это «The Mozilla Security Bug Bounty Program» —

правда, платят там не за исправление багов, а за их поиск (как ясно из названия, подходят только уязвимости). За хорошую уязвимость можно получить до $3000 и фирменную футболку :). Подобная программа есть и у Гугла для Chrome/Chromium — Vulnerability Rewards Program. По этой программе за уязвимость можно получить от $500 до $1337.

ужесложно), багберетсвоеначалопримерносUNIX V6 (которыйбылвыпущенвмае1975) илиUNIX V7.

Самый глупый

Первыйпретендентнаэтуноминацию— GRUB2, в версии1.97 которогобылобнаруженбаг, позволяющий оченьпростоподобратьпарольназагрузчик. Смысл ошибкивтом, чтодлявводапаролянеобязательно знатьвесьпарольцеликом— GRUB’убылодостаточно хотябыегочасти. Например, еслипароль— xakep, то достаточнобыловвести«xake», «xak», «xa» илидаже просто«x». Такимобразом, подобратьлюбойпароль можнобыло, простоподобравпервыйсимвол. Багбыл быстренькопофиксенвновойверсии1.97.1.

Следующийучастник— Ping of Death вOpenBSD Packet Filter (CVE-2009-0687), былобнаружен9 апреля2009

годаиисправленспустядвадня. Какможнопонятьиз названия, ошибказаключаласьввозможностивызвать kernel panic спомощьюспециальносформированногопакета. Неточтобыбагсампосебеоченьглупый. Простототфакт, чтоOpenBSD можновоттакзапросто положитьоднимпингом— этононсенсибольшепохоже напервоапрельскуюшутку. Уязвимыбыливсеверсии OpenBSD сpf вплотьдо4.5, навсехархитектурах, а такжеNetBSD 5.0 RC3. Причем, никакихособыхэксплоитовненужно, достаточносделать:

nmap -sO $target_IP

или

hping -0 -H 58 $target_IP

Ксловусказать, этонеперваяуязвимостьподобного родавOpenBSD, простонамоейпамятисамаяшироко распространенная.

Кпримеру, в2005 годуиз-заошибкивдрайверебес- проводногоадаптераral(4) прииспользованииIPsec

ОСтожепаниковала, ноужеотсамогообычногопинга

— достаточнобылоотправить2 эхо-запроса. Прим. ред.: самсебянепохвалишь, никтонеузнает— этот багбылобнаруженмнойвовремянастройкидомаш- негоWi-Fi. Послеисследованияпроблемыяотправил разработчикамдетальноеописаниесценария, при которомвозникаетremote crash, конфигиpf.conf, isakmpd.conf иisakmpd.policy, атакжеtraceback ядра,

полученныйспомощьюотладчикаddb(4). ТеодеРаадту

икомандепонадобилосьтрисполовиноймесяца, чтобы странитьэтубрешь. И, наконец, чемпионвноминации«Самыйглупый» — глюквпрошивкепервого Android-телефонаHTC G1. Оказалось, чтовсенажатия клавишпереадресовывалисьврутовуюконсоль. То есть, например, набралтывSMS слово«reboot», апотом<Enter>, иоченьудивился, чтотелефонпослушался

иушелвребут. Аведьможноичтопострашнеенабрать! Нонетхудабездобра— спомощьюэтойошибкинаG1 можнобылолегкопоставитьDebian. Эх, такойбагпофиксили! :)

Самый «железный»

Нидлякогонесекрет, чтобагивПОмогутвыводитьиз строяжелезо. Хорошо, чтовстречаютсятакиеошибки оченьредко, аширокоераспространениеполучаютеще реже. Самыйскандальный(авероятнее, простораздутый) запоследнеевремябагтакоготипа— «Ubuntu убиваетноутбучныевинты».

Винтвноутбукеотличаетсяотвинтанадесктопетем, чтововремяработыотбатареионпериодическиостанавливается(паркуетголовку). Частоприэтомслышен характерныйщелчок. Этореализованорадиэкономии зарядабатареи(ещеодинплюс— востановленномсостояниивинтспособенвыдержатьбольшиеперегрузки отвстряхиванийипадений).

ИUbuntu всеправильноделала— останавливалавинт, когдаонбылненужен. Воттольконанекоторыхмоделяхэтопроисходиломногократно— частичноповине прошивкисамоговинта. Сбольшойдолейвероятности натакихмоделяхнаблюдаласьбычастаяпарковка головокподлюбойОС. Посмотреть, подверженлитвой винттакомубагу, можноследующимобразом. Ставим пакетsmartmontools:

$ sudo apt-get install smartmontools

Еслитвойвинт— sda, то:

$ sudo smartctl -a /dev/sda | grep Load_Cycle

Последнеечисловэтойстроке— этоколичествопарковокголовки. Уменяэтозначениеравно13 137, что совсемнемного. Ресурсобычногоноутбучноговинта, гарантированныйпроизводителем, можетдоходитьдо 600 000. Теперьможноподождатьнесколькоминут/ча-

INFO

info

Ubuntu Hundred Paper Cuts — специ-

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

HTTP://WWW

links

Подробности про баг с доступом к каталогу в BSD: goo.gl/qH316;

Ping of Death в OpenBSD: goo.gl/uHoCj;

Описание планировщиков вводавывода в Linux: goo.gl/LJ2B1.

XÀÊÅÐ 06 /149/ 2011

089

 

 

 

 

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

 

 

 

 

bug#1 на bugs.launchpad.net

совисновапроверитьэтозначение, чтобыпримерноопределить скорость, скоторойонорастет.

Поидее, быстрорастинедолжно, таккакфиксбылдоступенеще для8.04 (путемактивациименееагрессивногорежимасохраненияэнергии). Еслибагвсежеприсутствует, томожнопопробовать отключитьпарковкуголовокспомощьюAPM (Advanced Power Management):

$ sudo hdparm -B 254 /dev/sda

Еслиипослеэтогопроблемаосталась(каквариант, попалась модельснестандартнымизначениямиAPM илиневозможностью управлятьAPM впринципе), тополезнопочитатькомментариина страничкеgoo.gl/bTNhy, тампредлагаетсянескольковозможных решений.

Иещеодиндовольносвежийбаг, связанныйсжелезом. Правда, к OpenSource оннеимеетособогоотношения. Развечтототфакт, что онтакжепроявляетсяина*nix-системах. РечьпойдетозакрытыхдрайверахотNvidia. Весной2010 годанаофициальномсайте появилисьновыеверсиидрайверов— 196.75 и195.36.

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

Самый массовый

Вышеяописывалбаги, которыевстречаютсянеувсехинечасто. Пришлапорарассмотретьболеемассовыеэкземпляры, скоторыми сталкивался, пожалуй, любойпользователь*nix-систем. Первыйбаг ужепофиксен, но, думаю, многиеегопомнят: неработающиехоткеи Firefox врусскойраскладкена*nix’ах(goo.gl/Hiagm). Былобнаружен в2001 году, аисправлентолькоспустясемьлет, вFirefox 3 beta 2. На болеестарыхверсияхможнобылорешитьпроблемукостылемввиде аддонаRussian hot keys bugfix. Примечателенбагещеитем, чтоон былисправленврамкахпрограммы«Деньгизаисправлениебагов» от Mozilla Russia. Имягероя— ОлегКрылов. Mozilla Russia готоваплатить заустранениебагов, специфичныхдляроссийскихпользователей. Размервознаграждениянеоченьбольшой— от$300 до$500, авсе «лоты», накоторыхегоможнозаработать, указанынастраничкепроекта: goo.gl/dhYxN. Подробнеепровознаграждениязаотстрелбаговв OpenSource-продуктахчитайвоврезке.

Следующийпретенденттожесвязансхоткеями, нотеперьпроектуже посолиднее— X.Org, даизатрагиваетэтотбагвсехпользователей, внезависимостиотраскладки. Описатьегоможнотак: применение хоткеяпроисходитпринажатии, анеприотпусканииклавиш. Приведу пример: допустим, переключениераскладкиклавиатурывсистеме забинденона<Alt+Shift>. Тогдавместеспрокручиваниемназадсписка

Nautilus Filename Repairer — тоже иногда выход. Если пользоваться нечасто :)

открытыхокон(Alt+Shift+Tab) будетпереключатьсяраскладка. В багтрекереX.Org багвиситс2004 года: goo.gl/GaRqQ. Новсяпроблемавтом, чтопатч(дружноскажемзанегоспасибоИльеМуравьеву), устраняющийглюк, нарушаетспецификациюXKB. Аспецификации, какизвестно, нарушатьнельзя:). Поэтомупокавапстримпатчне будетпринят, покрайнеймере, довнедренияXKB2 (аэтосчастливое событиеоткладываетсяуженескольколет). Единственныйизвестный мнедистрибутив, которыйужевключилэтотпатч— Ubuntu (сверсии 11.04). ДляболеестарыхверсийможноустановитьпатченыйX.Org изppa. Ссылканабагвубунтовскомтрекере: goo.gl/7E6uK. Следующийинтересныйидостаточноизвестныйвузкихкругахбаграньше былсерьезнымконтраргументомпротивиспользованияFreeBSD на десктопе.

Вызватьегобылопросто: втыкаемUSB-флешку, монтируем, вытаскиваемфлешкунеотмонтировав— хоп, получаемKernel Panic. Жила себеэтаошибкапреспокойноссамойпервойверсииFreeBSD вплоть довосьмой, вкоторойпоменяливесьUSB-стек.

И, наверное, самыйраспространенныйбаг— кракозябрывнелатинскихименахфайловприраспаковкеRAR иZIP-архивов, созданных подWindows. ВслучаесRAR проблема, какправило, решаетсяочень просто:

$ sudo apt-get remove rar

$ sudo apt-get install unrar

СZIP всегораздосложнее. Наlaunchpad’еужедавновиситбагgoo. gl/Y5YVj, собравшийболеесотникомментариев(правда, невсеизних одинаковополезны) иоколо1000 голосов(благодарянедавнопрошедшему«флешмобу» багподнялсянавтороеместовlaunchpad по количествуголосов), подтвердившихсуществованиепроблемы. Одно времяэтуошибкуноминироваливкатегориюHundredPaperCuts – это позволилобылонадеятьсянато, чтоеескороисправят. Однаковскоре одумались(видимо, посчитав, чтофиксслишкомсложен). Рассмотрим, какиерешенияестьнаданныймомент.

1.ПоставитьAltLinux, тамэтапроблемарешена.

2.ПопытатьсяприкрутитьрешениеизAltLinux всвойдистрибутив. К сожалению, невсетактривиально, какможетпоказатьсянапервый взгляд. Кромесамогопатчанаzip/unzip, придетсяприкручивать ещеспециальнуюбиблиотекуlibnatspec. ДляUbuntu естьppa: goo. gl/AFSQq (здесьлежатпатченныеzip/unzip) иgoo.gl/eGGAe (здесь— libnatspec).

3.Собратьпоследнююбета-версиюunzip: goo.gl/0Bd9Y. Ксожалению, эторешениеработаеттолькодлянекоторыхархивовинеустраняет проблемуполностью.

4.Перекодироватьименараспакованныхфайловспомощьюconvmv

090

XÀÊÅÐ 06 /149/ 2011

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Фрагмент отчета OpenBSD remote crash vulnerability

(которыйнадопредварительноустановить):

$ convmv -f cp866 -t utf8 -r --notest *

5. ПоставитьскриптдляNautilus:

$ sudo apt-get install nautilus-filename-repairer

Самыйнеуловимый

Этоттитулбезоговорочноотходит#12309. 12309 — баг-легенда, летучийголландец. Импугаютначинающихлинуксоидов, егоиспользуюткакжелезныйаргументвхоливарахLinux vs FreeBSD vs Windows. Проявляетсяоннаабсолютноразномжелезеинаразных конфигурацияхядраифайловыхсистем. Самбагзвучиткак«Large I/O operations result in poor interactive performance and high iowait times», иегообсуждениесобралоболее550 комментариев: goo.gl/ uMKEn. Багбылописанвдекабре2008 годаинаданныймомент имеетприоритетP1 high. Проверить, восприимчиваликнемутвоя система, оченьпросто. Нужновсеголишьзапустить:

$ dd if=/dev/zero of=/tmp/test bs=1M count=1M

ипонаблюдатьзаотзывчивостьюОС, особеннографическихприложений. Еслиприэтомдикоподскочетwa (аснимиLA), исистема станетнеюзабельнойчутьболее, чемполностью, — бинго, ты поймал12309.

Насамомделе12309 — этонеодин, анесколькобагов, смешанныхв кучу. Можновыделитьследующиеслучаипоявления:

прикопированиибольшихобъемовданныхсвинтанавинт(илис разделанаразделодноговинта);

принехваткеОЗУ(и, соответственно, дикомсвоппинге);

прикопированиинаUSB-девайсы;

прииспользованиизашифрованныхразделов;

Соответственно, фиксытожебудутразные:

1. Сменапланировщикаввода-выводанакакой-нибудьне-cfq. Посмотретьтекущийпланировщикможнотак:

$ cat /sys/block/sdX/queue/scheduler

гдеsdX — нужныйдевайс(обычно— sda). Используемыйвданный моментпланировщикбудетуказанвквадратныхскобках. Можно сменитьпланировщикипосмотретьнарезультат:

# echo deadline > /sys/block/sdX/queue/scheduler

Кракозябры в zip-архиве

Чтобы выбранный планировщик устанавливался при загрузке, нужно передать ядру параметр elevator=deadline. В случае с grub

необходимо изменить строку GRUB_CMDLINE_LINUX_DEFAULT в /etc/default/grub, а затем обновить конфигурацию:

$ sudo update-grub

2. НастроитьОСнаменееагрессивноеиспользованиеswap:

# echo 10 > /proc/sys/vm/swappiness

Теперьсистеманачнетиспользоватьswap тольковтомслучае, если свободнойОЗУостанетсяменьше10%. ВUbuntu, например, значениеswappiness поумолчанию— 60. Чтобызначениенеменялось послеребута, незабудьдобавитьегов/etc/sysctl.conf.

3.ДобавитьОЗУ. Частопроблемавозникаетприактивномиспользованииswap.

4.Внекоторыхслучаяхпомогаетсменаядраначто-нибудьстарше

2.6.17 илиновее2.6.34.

Кслову, ясамнесколькоразвидел12309, нотольконаядрах< 2.6.35. ИногдаглюкпроявляетсятолькоприкопированиинаUSB-носитель.

Самый-самый

Самыйважныйбагзарегистрированподгордымпервымномеромв багтрекереUbuntu, bugs.launchpad.net, 20 августа2004 иназывает-

ся«Microsoft has a majority market share». Авторствопринадлежит МаркуШаттлворту. Мойвольныйпереводописания:

«УMicrosoft доминирующееположениенарынкедесктопов. Ubuntu созданадлятого, чтобыпофикситьэтотбаг. ЗакрытоеПОсдержива- етинновациивIT-отрасли, ограничиваетдоступкIT длянебольшогопроцентамировогонаселенияинепозволяетразработчикамво всеммиревполноймеререализовыватьсвойпотенциал. Этотбаг оченьширокораспространен.

Способвоспроизведениябага:

Посетитькомпьютерныймагазинвсвоемрайоне.

Чтомытамувидим:

1.БольшинствоПКпродаетсяспредустановленнымзакрытымПО.

2.ОченьнебольшаядоляПКпродаетсяспредустановленной Ubuntu и/илидругимсвободнымПО.

Чтодолжныбудемувидеть:

1.Большинствоновыхкомпьютеровдолжнывключатьтолькосвободноепрограммноеобеспечение— напримерUbuntu.

2.Ubuntu должнапродвигатьсятакимобразом, чтобыееудивительныевозможностиипреимуществабылиочевидныиизвестнывсем.

3.Стечениемвременисистемадолжнастановитьсявсеболееи болеедружественнойпользователю.» Странно, чтонамоментнаписаниястатьиэтотбагзатрагиваетвсего

619человек, однакоимеет1500 комментариев. Будемснетерпениемждатьфикса:).

Заключение

Да, вбольшихOpenSource проектахмногобагов. Ноивбольших проектахсзакрытымиисходникамиихнеменьше— простоневсегдаонидоступныширокойобщественности. Большоепреимущество OpenSource здесьвтом, чтоприжеланиитысамможешьпровести аудиткодаипоправитьлюбойбаг. z

XÀÊÅÐ 06 /149/ 2011

091

 

 

 

 

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

Евгений Зобнин (execbit.ru)

 

 

 

 

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

 

 

 

 

ПЛЮШКИ ДЛЯ ДЕСКТОПА

Делаем рабочий стол проще и удобнее

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

Логинимсявиксыавтоматически

Линуксоидылюбятпароли. Оченьлюбят. Воттолькобольшинство изнихпочему-тозабывают, чтонадомашнеймашинеилиноутбуке парольнеимеетникакогозначения. Перезагрузитьмашинуизатем выбратьпунктменю, содержащийфразу«fail safe», взагрузчике Grub сможетдажетвоябабушкаилипятилетнийбрат. Поэтому, настроивавтологин, тынесделаешьмашинуменеебезопасной, зато навсегдаосвободишьсебяотнеобходимостивводаэтогодлинногозапутанногопароля. ВсредахKDE иGnome автологинможно настроитьспомощьюспециальныхграфическихконфигураторов, которымипростоилегкопользоваться. Ноутакогоспособаесть одинсущественныйнедостаток: менеджервходавсистему(вKDE онзоветсяkdm, авGnome — gdm) запускаетсявлюбомслучае, а

этодополнительныетормоза(kdm иgdm действительнодовольно толстыепрограммы, которыестартуютотнюдьнемгновенно). Однакоможноотказатьсяотменеджералогинасовсем. Одиниз лучшихметодоврешенияэтойзадачиописанвArchLinux Wiki (wiki. archlinux.org). Заключаетсяонвтом, чтобынапоследнемэтапезагрузкисразузапускатьиксысправаминужногопользователя. Для этогонадовсеголишьдобавитьвконецфайла/etc/inittab следующуюстроку:

x:5:once:/bin/su имя_юзера -l -c "/bin/bash

--login -c startx >/dev/null 2>/dev/null"

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

092

XÀÊÅÐ 06 /149/ 2011

 

 

 

 

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

 

 

 

 

Главное окно easystroke

пятогоуровня(вначалетогожефайладолжнабыть примернотакаястрока: «id:5:initdefault:»). Приэтом команды, необходимыедлязапускаграфической среды, нужнопоместитьвфайл~/.xinitrc. Например, еслитыиспользуешьKDE, тофайлдолженсодержать строку«exec startkde», Gnome — «exec gnome-session», Fluxbox — «exec fluxbox» итакдалее.

Особаякрасотаэтогометодазаключаетсявтом, чтоаккаунтпользователяостаетсявбезопасности, поскольку мынеменялиничеговегонастройкахинеобнулили пароль.

РулимWMизкомандной строкиискриптов

Существуеточеньполезныйстандарт, которыйописываетспособвзаимодействиямеждуменеджеромокони всемостальныммиромввидеутилит, демоновипрочих сервисов. НазываетсяонEWMH (Extended Window Manager Hints), аегопользазаключаетсявтом, чтоон, во-первых, делаетменеджерыоконуниверсальными (например, еслитысоберешьсязаменитьWM всвоем Gnome начто-тоболееинтересное, чемMetacity, то Gnome даженезаметитподменыибудетпродолжать исправнофункционировать), аво-вторых, определяет способуправлениялюбымEWMH-совместимымWM извне, безкаких-либодополнительныхкостылей. Естественно, дляуправлениянужнакакая-топрограм- ма, котораябудетвыступатьвроликлиентскойстороны впроцессеобменаEWMH-совместимымисообщениями сWM. Однаизтакихпрограммназываетсяwmctrl, иона умеетвертетьменеджеромоконкакугодно, делаясним практическивсе, чтоможносделатьнапрямую, используямышьиклавиатуру. Носамоеважное, чтоwmctrl

— утилитакоманднойстроки, поэтомуееможнолегко запихнутьвскрипт, которыйбудетвыполнятьсложные манипуляции.

Примерпервый. Допустим, чтокаждыйтвойдень начинаетсясвключениякомпа, запусканескольких приложенийивключениямузыки. Вручнуювсеэтозапускатьуженадоело, аменеджероконделаетэтокак-то неумело(либовообщенеделает). Ктомужебылобы удобнееиметьуниверсальноерешение, независящее отконкретногоWM, даещеиспособноерасполагать окнананужныхрабочихстолахивнужныхместахэкрана. Нетпроблем, простоустанавливаемwmctrl ипишем простойскрипт:

#vi ~/bin/wm-startup.sh

#!/bin/sh

#Запускаем нужные приложения

Запускаем Firefox через Gnome Do

chromium & audacious &

xterm -c mcabber &

#Ждем пять секунд, чтобы все это успело появиться на экране

sleep 5

#Отправляем chromium на второй рабочий стол и растягиваем на весь экран

wmctrl -r chromium -t 2

wmctrl -r chromium -b add,fullscreen

#Сворачиваем audacious, чтобы не мешал

wmctrl -r audacius -b add,shaded

#Отправляем xterm с открытым mcabber на второй рабочий стол, задаем ему нужный размер и располагаем в левой верхней части экрана (50,50) wmctrl -r mcabber -t 2

wmctrl -r mcabber -e ‘0,50,50,600,300’

#Делаем окно chromium активным, выводим его на передний план и переключаемся на его рабочий стол wmctrl -a chromium

Обрати внимание, что для управления mcabber я использовал его имя, несмотря на то, что mcabber не является графическим приложением, а значит, по логике, не может быть адресован с помощью wmctrl.

Но эта команда работает, поскольку, во-первых, wmctrl позволяет указывать только часть имени окна при его адресации, а во-вторых, xterm меняет имя своего окна, указывая в нем имя запущенного в данный момент приложения.

Пример второй. У всех нас есть набор приложений, которые всегда должны быть под рукой, но большую часть времени не нужны. Это, например, программа для ведения заметок, IM-клиент, терминал — обычно они висят в фоне/трее и ждут своего часа. Однако каждый раз использовать мышь, чтобы нажать на значок, который выводит программу из трея, либо разворачивает ее из таскбара, довольно утомительно. Лучше доверить работу wmctrl:

INFO

info

Когда будешь править конфиг xneur, имей в виду, что у программы нет вшитых дефолтовых настроек, поэтому удаленная строка из конфига = удаленная функция из программы.

Для xneur есть хорошая и очень функциональная графическая оболочка под названием gxneur (xneur.ru/downloads/).

Джедайский путь настроек горячих и мультимедийных клавиш — команда

xmodmap из комплек-

та X.Org.

Для настройки горячих клавиш также можно использовать команду xbindkeys

(bit.ly/8aHUib).

XÀÊÅÐ 06 /149/ 2011

093

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Окно настроек gxneur не умещается на рабочий стол

pytyle в Ubuntu 10.10

800x600

 

$ wmctrl -r mcabber -b toggle,hidden

Этовсе. Командавыводитокнонапереднийплан, еслионосвернуто, ипрячет, еслиокнонаходитсянаэкране. Достаточнопоместить еевскрипт, повеситьнахоткей, ипроблемарешена(ты, наверное, догадался, чтотакимобразомможнореализоватьаналогyakuake илиtilde, придетсятолькоизменитьназваниетерминала, чтобы wmctrl всегдабезошибочноегонаходил). Подобныескриптыможно использоватьнетолькодлязапусканужныхпрограммпослестарта ОС, ноидлямногихдругихзадач, например, переключениямежду «режимамиработы»: одинскриптактивируетнаборприложений дляотдыха(браузер, медиаплеер), другой— дляработы(средаразработки, браузерсоткрытойдокументацией). Ихможноповеситьна хоткеиизабытьпроручнуюраскладкуоконразинавсегда.

Делаемменеджер оконэффективнее

В кругах UNIX-джедаев часто можно слышать разговоры о так называемых тайловых менеджерах окон. Достоинство таких WM в том, что они никогда не накладывают окна друг на друга, размещая их таким образом, чтобы приложения делили между собой весь экран, а незанятых областей экрана не оставалось (скриншот хорошо демонстрирует эту концепцию). Такой способ расположения окон оказывается очень полезным на широкоформатных мониторах, большая часть пространства которых обычно оказывается пустующей. Ногдедостоинства, таминедостатки: ктайловымWM очень труднопривыкнуть, ктомужевосновномграфическийсофтпросто нерассчитаннаприменениевтакойконфигурации. Поэтомубыл придуманинструментподназваниемpytyle (pytyle.com), которыйнадстраиваетсянадсуществующимWM, добавляяемуфункциютайловой раскладкиокон. ПриэтомвсяфункциональностьоригинальногоWM сохраняется, атайлингактивируетсяидеактивируетсяспомощью клавиатурныхкомбинаций.

Инструментэтотдовольнопопулярен, ноотсутствуетврепозиторияхбольшинствадистрибутивов. Поэтомупридетсяустанавливать вручную:

$ sudo apt-get install python-xlib

$ wget http://goo.gl/V6rWY

$ tar -xzf pytyle-0.7.5.tar.gz $ cd pytyle-0.7.5

$ sudo python setup.py install

Запускстандартен:

$ pytyle

Рекомендуюсразупоместитьэтукомандувавтозагрузку, потомукакпо умолчаниюpytyle никаксебяневыдаетинеменяетповеденияWM, а вотпригодитьсяонможетвлюбуюминуту.

Самтайлингактивируетсяпосленажатиякомбинации<Alt+A>, для деактивациипредназначенакомбинация<Alt+U>. Комбинация <Alt+Z> переключаетмеждурежимамитайлинга(тоестьвариантамираскладкиокон). Что-тоещеговоритьздесьнеимеетсмысла, с тайлингомнужнознакомитьсялично, толькотогдаегосмыслстанет понятным. Приведулишьостальныевозможныеклавиатурныекомбинации:

Alt+J / Alt+K — переключиться между окнами; Alt+H / Alt+L — изменить размер окон;

Alt+Shift+C — закрыть окно;

Alt+M — перевести фокус на основное окно; Alt+C — сделать следующее окно основным;

Alt+Shift+D / Alt+Shift+B — включить или выключить декорацию окна и бордюров.

Всвоейработеpytyle используетвсетотжеEWMH, поэтомуон совместимслюбымболее-менеесовременнымWM (список EWMH-совместимыхWM можноувидеть, например, вВикипедии: en.wikipedia.org/wiki/EWMH).

Запускаемприложения быстроинепринужденно

Знаешь, чтоделаетработувMac OS X по-настоящемуудобной? Если тыдумаешь, чтоэтокачествоПО, сбалансированныйграфическийинтерфейс, скоростьработыилиещечто-товэтомроде, тоятебяразочарую: самоеудобное, чтоестьвмакосях— этоLauncher, программадля запускаприложений, рудиментарныйаналогкоторойможнонайти почтивлюбойграфическойсреде, еслинажать<Alt+F2>. Преимуществояблочноголончеравтом, чтопомимотупогозапуска программонвыполняетогромноеколичестводругихфункций: поиск файлов, сайтов, историибраузера, управлениедругимипрограммами, сложение, умножение, делениеимногоедругое. Всясутьвтом, что всеэтодоступночерезединоеокноввода.

Аналог(иоченьхорошийаналог) Mac OS X Launcher естьвKDE4. Он доступенчерезстандартнуюкомбинацию<Alt+F2>, хорошовыглядит, быстроработаетиимееткучуплагинов.

Ксожалению, вдругихсредахвседалеконетакрадужно. Например, вGnome иXFCE чего-топодобногонетдосихпор, астандартнаязапускалка, доступнаяпо<Alt+F2>, наводитгрустьипечаль. Приходится искатьсторонниепрограммы. Иониесть, этоGnome Do (do.davebsd. com) иLaunchy (launchy.net). Обехорошоразвитыиимеютпотенциал. Единственное, чтопортитобщеевпечатление, этотребованиеmono

094

XÀÊÅÐ 06 /149/ 2011

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Одно и то же сообщение notify-send в двух разных WM

дляGnome Do иQT дляLaunchy (который, ктомуже, вLinux работает нестабильно).

Создаемграфические уведомленияидиалоги изконсоли

Привыкнуврешатьрутинныезадачиспомощьюскриптов, раноили поздносталкиваешьсяспроблемойихинтеграциивграфическое окружение. Те, ктопишетнаpython, ruby идругихязыках, легкорешаютэтузадачуспомощьюграфическихбиблиотек, ночтоделать, если твойвыбор— bash?

Понятно, чтополноценновписатьbash вграфическуюсредунеполучитсяпростопопричинееготехническихограничений. Затовсегда можновоспользоватьсяспециальнымиутилитамикоманднойстроки, которыегенерируютпростыеграфическиеинтерфейсынаоснове опцийкоманднойстроки.

Однаизтакихутилитназываетсяzenity (live.gnome.org/Zenity). Этопотомокдовольнопопулярнойутилитыgdialog, которая, всвоюочередь, представляетсобойграфическуюверсиюdialog (накоторойпостроенымногиепсевдографическиеутилитыи, например, интерфейс инсталлятораSlackware Linux).

Утилитучрезвычайнопростоиспользовать, достаточновызватьее снужнымипараметрами, инаэкранепоявитсяграфическоеокно. Например, следующаякомандаотобразитнаэкранеокностекстом

«Hello World!»:

$ zenity --info --text "Hello World\!"

Такжеможноизобразитьполяввода('--entry'), сообщенияобошибке

('--error'), списки('--list'), прогресс-бары('--progress'), календарь

('--calendar') имногоедругое. Приэтоминформацияодействиях пользователя(какаяклавишанажата, какойэлементспискавыбрани такдалее) сокномвозвращаетсявстандартныйвывод, чтопозволяет строитьдовольносложныеинтерфейсы.

ЕслифункциональностьZenity кажетсятебеизлишнейдляпростого скрипта, которыйдолженвсеголишьвернутьнаэкрансвоиданные, самоевремявзглянутьнакомандуnotify-send.

Единственнаязадачаэтойкоманды— вывестинаэкранинформационноесообщениеиубратьегоспустяопределенныйпромежутоквремени. Длявыводаиспользуетсяинтерфейсlibnotify, такчтосообщениебудетвыглядетьроднымвлюбомменеджереокониграфической средесподдержкойэтойбиблиотеки(аэтовсенаиболеепопулярные

WM иDE).

Пользоватьсякомандойоченьпросто:

$ sudo apt-get install libnotify-bin

$ notify-send "Apache перезапущен!"

Дляразнообразияможнодобавитьиконкуиуказатьважностьсообщения:

$ notify-send -i gtk-dialog-info -u critical \

"Файловая система заполнена на 99%!"

Переключаемраскладку клавиатурыавтоматически

ОдноизсамыхизвестныхприложенийдляWindows называется Punto Switcher. Егозадачазаключаетсявтом, чтобыавтоматически

переключатьраскладкиклавиатуры, основываясьнаэвристических методаханализавведеннойпользователемстроки. ВLinux (даивлюбом*nix) аналогэтойпрограммыназываетсяxneur (X Neural Switcher) и, вотличиеотсвоегобратаизWindows, распространяетсябесплатно, даещеисисходниками.

Демонxneur можетсущественносэкономитьтвоевремяинервы, но чтобыоннесталпомехой, нужноуметьегоготовить, аточнее— правильнонастраивать.

Основнаяпроблема, скоторойсталкиваютсяпочтивсеновыепользователиxneur, этовездесущностьпрограммы. Поумолчаниюдействие xneur распространяетсянавсюсистему, хотявLinux, совсемиего эмуляторамитерминалов, запускалкамиприложенийипрочими двухрежимнымиvim’амибылобыгораздоправильнееприменять возможностиxneur толькокизбраннымприложениям(темболее, что снекоторымиизнихонработаетнекорректно).

Чтобынаучитьэтомуxneur, достаточносоздатьлокальнуюкопиюего конфигурационногофайла:

$ cp /usr/etc/xneur/xneurrc ~/.xneur/xneurrc

Иотредактироватьегоследующимобразом:

$ vi ~/.xneur/xneurrc

#Включаем обычный режим работы

ManualMode Yes

#Приложения, в которых xneur должен работать

вавтоматическом режиме

SetAutoApp Pidgin SetAutoApp Psi SetAutoApp Gedit SetAutoApp Chromium

# Приложения, несовместимые с xneur ExcludeApp Focuswriter

ExcludeApp Wine

Возможно, отавтоматическогорежимаследуетвообщеотказаться, воспользовавшисьподдержкойгорячихклавиш. Деловтом, что впроцессесвоейработыxneur непростоменяетраскладку, нои

исправляетчастьуженабранноготекста, аэтодаетвозможностьисправлятьвведенныесловане«налету», атолькопозапросупользователяужепослетого, каксловобылонабрано. Вомногихслучаяхэто оказываетсяболееудобнымипредпочтительнымвариантом. Всего xneur поддерживаетоколодесятиразличныхклавиатурныхкомбинаций, самыеполезныеизкоторыхперечисленыниже:

Клавиатурныесочетанияxneur

Break — исправить последнее введенное слово; Shift+Break — исправить выбранный текст; Ctrl+Print — изменить режим работы программы; Alt+Scroll Lock — применить к выбранному фрагменту транслитерацию ("привет" Æ "privet");

Ctrl+Tab — развернуть аббревиатуру; Win+D — вставить текущую дату

Болеетого, дажееслитынесобираешьсяиспользоватьxneur для переключенияраскладок, еговсеравностоитустановитьиз-зараз- личныхплюшек, которыеондаетпринаборетекста. Это, например, исправлениеслов, набранныхсосЛУЧАЙНОнажатымCapsLock,

XÀÊÅÐ 06 /149/ 2011

095

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пишем скрипт, управляющий менеджером окон

исправлениедвойныхПРописныхбукв, удалениеилидобавление лишних/нужныхпробеловпередипослезнаковпрепинания, автоматическоеисправлениестрочнойбуквынапрописнуюпослеточки.

Настраиваемуниверсальные горячиеклавиши

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

Ксчастью, решитьпроблемуможноспомощьювсетогожеxneur. Достаточнодобавитьвxneurrc записипримерноследующеговида:

$ vi ~/.xneur/xneurrc

AddAction Alt t Вызов терминала <cmd>gnome-terminal</cmd> AddAction Alt g Открыть Gedit <cmd>gedit</cmd>

AddAction Super_L Открыть Nautilus <cmd>nautilus ~/</cmd>

Обративнимание, чтопоумолчаниювконфигурационномфайлеуже естьнесколькооченьдажеполезныхклавиатурныхкомбинаций— например, дляпоискавыделеннойстрокивGoogle (Win+G) илипереводавыбранногослова(Win+R).

Активируеммультимедийные клавиши

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

KDE иGnome вбольшинствеслучаевраспознаюттакиеклавишии дажепозволяютменятьэффектотихнажатияспомощьюграфическогоконфигуратора, ноонипривязаныксамимграфическимсредам, ив каком-нибудьFluxbox ихбудеттруднозадействовать.

Вэтомслучаеспасетграфическаяпрограммаkeytouch (keytouch.df.net),

096

Редактируем конфигурационный файл xneur

котораяпозволяетнастроитькакмультимедийныеклавишиклавиатуры (дляэтогоимеютсяпреднастроенныеконфигидляразныхмоделей), такиклавиатурныекомбинации. Пользоватьсяейпросто: запускаем программу, выбираеммодельсвоейклавиатуры, принеобходимости переназначаемклавиши, используяграфическийинтерфейс. Программаснабженадемономkeytouchd, который«слушает» нажатияклавиш, поэтомуегопридетсядобавитьвавтозагрузку

(вDebian/Ubuntu этопроисходитавтоматическиприустановке пакета).

Выжимаемизмышивсе

Несмотрянаочевидноеудобство, клавиатурныекомбинациии мультимедийныеклавишиподходятдалеконевсем. Еслитыпривык использоватьмышьдлявыполнениялюбыхдействийвиксах, то «мышиныежесты» — этото, чтотебенужно.

ПоддержкажестовпоумолчаниюестьвKDE, такчтоеслитыпользовательэтойсреды, томожешьсразуидтивменюконфигурирования устройстввводаивыполнитьнастройку. Впротивномслучаеутебя остаетсятолькоодинвыбор: установитьпрограммуeasystroke (sf.net/ apps/trac/easystroke):

$ sudo apt-get install easystroke

Послезапускавтреепоявитсязначокпрограммыввидеразноцветнойзагогулины, символизирующейходмышиприрасчерчивании жеста. Послещелчкапозначкунаэкранепоявитсяокнопрограммы спустымспискомжестов. Щелчокпокнопке«Add Action» добавляет новыйжест, длякоторогонужновыбратьимяитипдействия(нашвыбор— Command, предназначенныйдлязапускановыхприложений). Далееследуетввестиимязапускаемойкомандыищелкнутьпоячейке колонкиStroke, послечегоможнонарисоватьнужныйжест. Делать этоследуетснажатойтретьейклавишеймыши(колесико) имаксимальнобыстро(нестоитпытатьсявырисоватькрасивыйжест, потому чтоегобудеттрудноповторить).

Проделываемэтидействиядлякаждойкомандыижеста, сворачиваемпрограммувтрей, наслаждаемся(стоитотметитьпревосходный уровеньраспознавания, 10 из10). Принеобходимостидобавляем easystroke вавтозапуск.

Выводы

У каждого их нас свои представления о красоте и удобстве графического интерфейса, поэтому универсальных рецептов его настройки не существует. Но выбрав из описанных в статье подходов те, которые близки именно тебе, ты сможешь сделать ОС проще и удобнее. z

XÀÊÅÐ 06 /149/ 2011

 

 

 

 

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

 

 

 

 

Реклама

 

 

 

 

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

 

 

 

 

CODING

Александр Эккерт (stannic.man@gmail.com)

 

 

 

 

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

 

 

 

 

ОБЛАМЫВАЕМ UAC

Так ли страшна программисту система контроля пользователей?

Уж не знаю, сколько раз в тырнетах поднималась пресловутая тема контроля за действиями пользователя (UAC): нужна ли она, насколько эффективна… Но мы рассмотрим этот вопрос еще раз, теперь с чисто прикладной, хакерской точки зрения. Плюсы и минусы системы, а также самое главное — как ее можно обойти.

Итак, чтожетакоеUAC сточкизрениябезопасности? Разработчики Windows (видимо, немалоозаботившисьунылымисведениямиизбагтраков, регулярнопополняющимисявсеновымииновымиуязвимостямивсамойраспространеннойОСвмире) решили, чтоеслиужвсеили почтивсеюзерысидятподправамиадминистратора, тонадосделать некийпрограммныйкомпонент, которыйбудетиспрашиватьуюзеров разрешения. Оставимвсторонехоливарнатему«Нужнылипростому юзеруправаадминистратора?», посколькусейкрайнефилософский вопросспорен: соднойстороны, праваадминапростомупользователю, действительно, ненужны, асдругой— онинужнытуевойхучедовольно повседневныхпрограмм. Итак, UAC призванаобеспечитьпользователямвозможностьработать, неприбегаякадминистративнымправам.

Обладаяадминистративнымиправами, пользовательможетпросматриватьиизменятьлюбуючастьоперационнойсистемы, включаякод иданныедругихпользователейидажесамойWindows. Безадминистративныхправпользователинемогутслучайноизменитьсистемные параметры, вредоноснаяпрограмманеможетизменитьпараметры системнойбезопасностиилиотключитьавер, апользователинемогут нарушитьбезопасностьважныхданныхдругихпользователейнаобщедоступныхкомпьютерах. Работасправамиобычногопользователя, такимобразом, помогаетуменьшитьколичествосрочныхвызововслужбы поддержкивкорпоративныхсредах, смягчитьущерботвредоносной программы, способствуетболеечеткойработедомашнихкомпьютерови защищаетуязвимыеданныенаобщедоступныхтачках.

098

XÀÊÅÐ 06 /149/ 2011

Соседние файлы в папке журнал хакер