Автор: Анна Гуэреро.
Оригинал: «Fail2ban: an enemy of script-kiddies», 29 апреля 2007 г.
Держу пари, лишь малая часть пользователей Linux, знающих об auth.log, не имела удовольствия видеть тысячи строк журнала о неудачных попытках входа. Если вы еще не смотрели в auth.log, просто запустите
$ zgrep 'Failed password for illegal user' /var/log/auth.log* | wc -l
В той системе, где я это выполнила, получилось 125 835, и это с июля 2006 года! Да-да, 99,999% этих неудачных попыток — тупые атаки со словарем, которые (увы) для какого-то процента случаев срабатывают. Вы уверены в том, что ваш пароль и пароли пользователей системы довольно хороши, чтобы сдержать подобную атаку?
Также, я думаю, есть (надеюсь, небольшая) группа системных администраторов, которые испытывали радости DoS-атак на свои веб-сервисы, или тех, кто постоянно видит попытки доступа к несуществующим файлам вроде /php/bla-admin.X.Y.bleh.
Для этих несчастных (и для испытывающих другие проблемы) есть очевидное решение — забанить IP негодяев, как только вы узнаете о попытке неавторизованного доступа. Увы, мы не смотрим круглые сутки на логи, поэтому не можем вовремя сработать. Чтобы заменить это слабое звено процесса (живого оператора), Кирилл Жакиер написал Fail2ban.
Идея Fail2ban очень проста: временно или навсегда отправлять в бан IP, с которых проделывалось несколько нежелательных действий — неудачный вход, доступ к запрещенной области, и так далее. Сначала программа была разработана для отлавливания безуспешных попыток входа по SSH, но позже выросла в легко настраиваемый инструментарий быстрого реагирования на разного рода события (неудачные попытки входа), фиксируемые в логах.
Здесь я расскажу немного больше подробностей настройки Fail2ban, но эти знания не требуются для того, чтобы приступить к работе. Вы просто должны сделать «apt-get install fail2ban». Чтобы включить некоторые дополнительные опции, доступные из Fail2ban, вы должны почитать ниже раздел «тюрьмы».
Fail2ban доступен в Sarge с backports.org и на обычных правах присутствует в Etch и Sid.
Версия для Sarge — из ветки 0.6, и ее схема настройки отличается от таковой в текущей ветке 0.7 (готовится 0.8). В 0.7 используются отдельные конфигурационные файлы, и разделены понятия фильтра (вроде регулярного выражения Python, связанного с набором файлов) и действия (бан при помощи iptables / hosts.deny, отправка электронной почты).
Fail2ban есть и в Ubuntu, начиная с Dapper.
Настройки по умолчанию в обеих ветках (0.6 и 0.7) включают отслеживание входов по SSH; Fail2ban может работать сразу после установки, ничего менять не нужно.
Если требуется, все изменения в настройках Fail2ban 0.6.x нужно делать в исходном конфигурационном файле, а разделы включать при помощи опции командной строки (например, -e iirc, но помните, что эта опция есть только в пакете для Debian и непредставлена в общей версии программы). В ветке 0.7 схема настройки совершенно другая и очень удобная: любое изменение или дополнение, сделанное в /etc/fail2ban/X.conf, может быть сделано в файле /etc/fail2ban/X.local — параметры .local замещают параметры .conf. В этом случае файл .conf остается целым, и при обновлении нет необходимости возиться с изменением конфигурационных файлов, если они не менялись в общем пакете. Я предпочитаю 0.7.x, поэтому опишу в деталях настройку для этой версии.
Как уже было отмечено, ветка 0.7 идет с независимой настройкой фильтров и действий. Фильтр задает, что искать («failed login attempt from…» в auth.log или сообщения «Миша, свари пожалуйста кофе» в .xchat/history/private.log), а действие определяет, как поступить (забанить IP, прислать кофеварке указание сварить свежую чашечку).
Вот пример фильтра:
$ grep -v '^#' /etc/fail2ban/filter.d/sshd.conf
[Definition]
failregex = Authentication failure for .* from <HOST>
Failed [-/w]+ for .* from <HOST>
ROOT LOGIN REFUSED .* FROM <HOST>
[iI](?:llegal|nvalid) user .* from <HOST>
ignoreregex =
failregex — список регулярных выражений Python («» обозначает краткую запись «(?:::f{4,6}:)?(?P<host>\S+)»), задающих шаблоны IP или имени хоста. «ignoreregex» позволяет пропускать через фильтр некоторые ложные срабатывания.
Стандартная установка Fail2ban в Debian Sid идет со многими фильтрами для различных сервисов (ssh, ftp, http), различных реализаций (exim, postfix; proftpd, pure-ftpd, wuftpd, и так далее) и некоторых дополнительных событий (обычная неудачная попытка входа ssh и DDOS-атака sshd).
Если вы хотите написать свой фильтр /etc/fail2ban/filter.d/blah.conf, есть очень полезный инструмент fail2ban-regex, который может проверить регулярное выражение на существующем логе и сообщить, работает ли оно.
$ fail2ban-regex /var/log/auth.log 'Failed [-/w]+ for .* from <HOST>'
Running tests
=============
Use regex line : Failed [-/w]+ for .* from <HOST>
Use log file : /var/log/auth.log
Results
=======
Failregex:
[1] Failed [-/w]+ for .* from <HOST>
Number of matches:
[1] 2 match(es)
Addresses found:
[1]
69.115.175.240 (Sun Apr 01 23:58:20 2007)
69.115.175.240 (Sun Apr 01 23:58:27 2007)
Date template hits:
2 hit: Month Day Hour:Minute:Second
0 hit: Weekday Month Day Hour:Minute:Second Year
0 hit: Year/Month/Day Hour:Minute:Second
0 hit: Day/Month/Year:Hour:Minute:Second
0 hit: Year-Month-Day Hour:Minute:Second
0 hit: TAI64N
0 hit: Epoch
Success, the total number of match is 2
However, look at the above section 'Running tests' which could contain important
information.
Вместо тестирования регулярного выражения, можно просто передать файл пробного фильтра.
Обычно действие состоит в занесении IP в черный список при помощи iptables:
$ sudo grep -v '^#' /etc/fail2ban/action.d/iptables.conf
[Definition]
actionstart = iptables -N fail2ban-<name>
iptables -A fail2ban-<name> -j RETURN
iptables -I INPUT -p <protocol> --dport <port> -j fail2ban-<name>
actionstop = iptables -D INPUT -p <protocol> --dport <port> -j fail2ban-<name>
iptables -F fail2ban-<name>
iptables -X fail2ban-<name>
actioncheck = iptables -n -L INPUT | grep -q fail2ban-<name>
actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP
actionunban = iptables -D fail2ban-<name> -s <ip> -j DROP
[Init]
name = default
port = ssh
protocol = tcp
По умолчанию, версия 0.7 работает с iptables-multiport, чтобы банить несколько портов за раз. Кроме того, доступны другие действия, такие как
Мы подошли к тому моменту, когда понятия фильтра и действия используются вместе. «Тюрьма» («jail») — это определение с фильтром и желаемым набором действий. Вот пример из исходной версии /etc/fail2ban/jail.conf.
[ssh-iptables]
enabled = false
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
mail-whois[name=SSH, dest=yourmail@mail.com]
logpath = /var/log/sshd.log
maxretry = 5
В этом примере «тюрьма» «ssh-iptables» задает имя используемого фильтра (полный путь к файлу будет /etc/fail2ban/filters.d/sshd.conf). Также задается перечень действий: 22-й порт TCP будет занесен в черный список после 5 неудачных попыток, а о произошедшем будет проинформирован yourmail@mail.com.
При создании Debian-пакета Fail2ban, мной был адаптирован jail.conf так что определения «тюрем» сводятся к минимуму — большинство из них используют одно и то же действие. Если нужно особое действие, его можно указать в поле «action», а так в версии для Debian приведенное выше определение jail.conf будет выглядеть примерно так:
[ssh]
enabled = true
port = ssh,sftp
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
Так как основные «тюрьмы» из jail.conf по умолчанию отключены, желаемые из них можно легко добавить в /etc/fail2ban/jail.local. Вот часть моего локально адаптированного jail.local:
[DEFAULT]
bantime = 3600
destemail = root@localhost
banaction = shorewall
action = %(action_mwl)s
[apache]
enabled = true
maxretry = 4
[sasl]
enabled = true
[courierauth]
enabled = true
# особое определение, которого нет в jail.conf
[apache-noscript]
enabled = true
port = http
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 6


Автор: Грант Томас.
Оригинал: «Amarok: listening to music will never be the same», 25 апреля 2007 г.
Amarok — полнофункциональный музыкальный плеер, хорошо встроенный в среду KDE. Amarok использует базу данных (SQLite, MySQL, PostgreSQL), что дает быстрый доступ к коллекции и широкий набор методов поиска и сортировки.
Список текущих возможностей (составленный по http://amarok.kde.org/wiki/What_is_Amarok?):
Amarok может проигрывать через один из движков многие аудиоформаты: mp3, ogg, flac, wma, wav и другие. Практически каждый файл формата, поддерживаемого выбранным движком, может использоваться в Amarok. Для дополнительной информации смотрите http://amarok.kde.org/wiki/Audio_Engine_Comparison.
Amarok включает полную поддержку last.fm, позволяющую записывать каждый трек, проигранный сетевым сообществом. Из last.fm Amarok может выбирать схожих музыкантов и похожие песни, получать рекомендации. Amarok работает со списками воспроизведения last.fm, которые позволяют пользователям делиться своими музыкальными предпочтениями со всем миром.
Amarok также поддерживает альбомы Magnatune и сетевые покупки в Magnatune. Magnatune не навязывает DRM, поэтому вы можете делать с приобретенной музыкой всё что угодно. См. http://magnatune.com/info/whynotevil.
Amarok расширяем и уже имеет растущую библиотеку скриптов и модулей.
Amarok также работает с Musicbrainz, что позволяет анализировать и идентифицировать треки без тегов.
Заметьте, что если вы применяете к списку воспроизведения фильтры, то плеер будет выбирать из отсеянных песен. Это может быть удобным или неудобным в зависимости о того, что вы делаете; просто возьмите на заметку.
Интерфейс Amarok также включает несколько полезностей.
.Amarok есть во всех последних версиях Debian и Ubuntu.
Автор: Диего Эссая.
Оригинал: «sshfs: Easy (and secure) access to a remote file system», 22 апреля 2007 г.
Уверен, вы уже знакомы с командой ssh. Если нет, то, наверное, эта статья не для вас. Скорее всего, вы также много лет назад познакомились с scp. Но, возможно, вы еще никогда не слышали о SSHFS.
SSHFS — клиент файловой системы, основанный на протоколе передачи файлов SSH. Он позволяет монтировать удаленную файловую систему и работать с ней как с локальной директорией. Кроме того, что протокол защищен (соединение шифруется), основное преимущество SSHFS — простота установки и использования. Есть только два несложных требования:
Для начала нам нужно установить на локальной системе SSHFS:
# apt-get install sshfs
SSHFS есть в хранилищах пакетов Debian и Ubuntu.
Теперь убедимся, что первое требование исполнено. В локальной системе как root сделайте
# modprobe fuse
Это загрузит модуль ядра FUSE. Помимо SSHFS, он позволит работать с многими другими крутыми штуками, в их числе файловые системы BitTorrent, Bluetooth, CryptoFS; ФС с контролем версий и сжатая ФС только для чтения.
Что до второго требования, то оно, возможно, уже исполнено: сервер OpenSSH установлен и работает в большинстве систем с Debian и Ubuntu. Если у вас не так, то просто запустите на удаленной машине
# apt-get install ssh
К счастью, использовать SSHFS очень просто. Команда
$ sshfs user@host: mountpoint
монтирует домашнюю директорию учетной записи user@host в локальную директорию mountpoint. Да, mountpoint должна существовать и на нее должны иметься соответствующие права.
Если хотите смонтировать какую-то директорию помимо домашней, укажите ее после двоеточия. На самом деле, общая команда выглядит примерно так:
$ sshfs [user@]host:[dir] mountpoint [options]
Традиционные альтернативы для удаленных систем — NFS и SMBFS. Основные преимущества SSHFS:
Если вы делите файлы с Windows-машинами, то, пожалуй, лучше будет SMBFS. Нужна скорость, а не безопасность — используйте NFS.
Автор: Эммануэль Бузнот.
Оригинал: «most: an alternative and powerful pager program», 20 апреля 2007 г.
Most — это мощная программа вроде more и less, написанная на C с использованием библиотеки slang. Most может показывать
Чтобы сделать Most программой разбивки текста по умолчанию, занесите ее в скрипт запуска сеанса (~/.bashrc, ~/.zshrc, и так далее):
[ -x /usr/bin/most ] && export PAGER=most
Можно также поставить Most на замену more и less:
[ -x /usr/bin/most ] && alias more='most' && alias less='most'
Most давно есть в Debian и Ubuntu и хорошо поддерживается разработчиками.
Автор: Эрих Шуберт.
Оригинал: «enigma: addictive puzzle game with a high dose of dexterity», 18 апреля 2007 г.
Enigma — увлекательная головоломка, основанная на старой игре «Oxyd» для Atari, Mac и DOS с сотнями уровней и улучшенной графикой.
Суть игры проста: открыть пары камешков, как в настольной игре «терпение» (известной и под названием «память» или «пары»).
Звучит просто? Да. Легко? Не очень!
Сначала нужно достичь этих камней. Вы действуете за черный шарик, управляемый мышью и находящийся под влиянием физических явлений. Различные покрытия имеют различное трение, чтобы сдвинуть блоки в нужном направлении, нужно хорошо ударить по ним; отражатели удара, горки и резиновые ленты должны отклонять и толкать шарик в направлениях, отличных от тех, куда вы хотите попасть. Иногда нужно прицелиться точно под прямым углом, чтобы отскочить от блока в направлении цели.
Еще блоки спрятаны в лабиринтах, защищены лазерами и ловушками и всяческими головоломками, которые нужно будет разрешить, прежде чем достигнуть цели.
По своей сути уровни Enigma очень различаются. Какие-то взяты из Сокобана (за исключением того, что нужно быть осторожным и не двигать ящики, не предназначенные для этого) и похожих головоломок, измененных под работу шариком; некоторые представляют собой большие лабиринты, где нужно аккуратно балансировать на узком уступе. Какие-то уровни требуют скорости и «мышиной» сноровки, другие нужно решать логически. Управление десятью шариками, связанными резиновыми лентами и заряженными различными магнитными полюсами — лишь одно из испытаний, с которыми вы встретитесь в Enigma. Подобные уровни, объединяющие воедино весь арсенал, иначе чем «загадками» не назовешь.
Вот некоторые снимки экрана; другие ищите на домашней странице игры.
Enigma есть в Debian Sarge и Ubuntu Warty. Увы, Enigma 1.00 не успела попасть в Debian Etch. В дистрибутиве была версия 0.92, когда все изменения в пакетах были заморожены.
Автор: Джон Бейсли.
Оригинал: «moreutils: A collection of useful command-line tools», 15 апреля 2007 г.
Moreutils содержит набор утилит для пользователей командной строки; они написаны различными авторами и сами по себе довольно просты, но вместе составляют полезное дополнение к существующим.
Вот несколько примеров инструментов Moreutils и их использования.
Многие пользователи командной строки делали ошибку вроде этой:
$ grep -v someuser /etc/passwd > /etc/passwd
Как толко интерпретатор запустит команду, целевой файл будет незамедлительно стерт, после чего для него будет выполнено grep. В итоге получится пустой файл — естественно, не то, что ожидалось! Научившись на своих ошибках, пользователь должен вместо этого перенаправлять вывод во временный файл, а потом замещать им исходный:
$ grep -v someuser /etc/passwd > /etc/passwd.tmp
$ mv /etc/passwd.tmp /etc/passwd
Sponge прост, но удобен. То же действие можно произвести в один шаг:
$ grep -v someuser /etc/passwd | sponge /etc/passwd
Sponge «впитает» свой стандартный ввод и подождет его завершения, прежде чем писать в указанный файл вывода. В этом случае результат совпадает с ожиданиями, но фокусы со временным файлом не нужны.
Иногда лучше перенестись в середину связки команд, где быстренько отредактировать содержимое, а не создавать сложные фильтры с sed и компанией. Может быть, передаваемое содержимое будет неизвестным — списком файлов, которые пользователь должен отредактировать вручную.
Пусть нужно избирательно сделать touch для файлов текущей директории:
ls | vipe | xargs -d '\n' touch
В этом примере список файлов откроется в вашем редакторе (заданном переменной окружения EDITOR или VISUAL), где список файлов можно будет поменять на свое усмотрение. Как только вы закончите, сохраните файл и закройте редактор, и vipe перенесет в стандартный вывод вашу правку; тронуты будут только те файлы, имена которых вы сохранили в редакторе.
Применение операций теории множеств к строчкам двух текстовых файлов тоже может быть полезным. Например, нужно узнать, какие имена файлов у двух директорий совпадают.
Этой командой Bash списки файлов можно записать в два файла, готовых к использованию combine:
ls /path/to/foo > foo_list && ls /path/to/bar > bar_list
Найти, какие файлы есть в обеих директориях, может быть сложно; здесь за дело берется combine:
$ combine foo_list and bar_list
tom
Как насчет файлов, которые есть в foo, но отсутствуют в bar?
$ combine foo_list not bar_list
harry
Но стоит предупредить: «or» может использоваться для поиска полного списка, однако у нее есть побочный эффект: общие строки двух файлов будут упоминаться дважды.
$ combine foo_list or bar_list
harry
tom
dick
tom
Получение объединения двух списков уже потом можно произвести стандартной командой sort:
$ cat foo_list bar_list | sort -udickharrytom
В этом введении в Moreutils мы коснулись только немногих команд. Стоит поэкспериментировать с другими:
Moreutils есть в тестовой и нестабильной ветке Debian и в Ubuntu Edgy.
Автор: Дейв Сефф.
Оригинал: «glabels: Label, business card and media cover creation program», 13 апреля 2007 г.
GLabels — программа для создания наклеек и визиток. Она создана для лазерной и струйной печати на клеящихся этикетках и бумаге для визиток, которые можно найти в большинстве магазинов офисных принадлежностей.
Это просто находка для всех, кто хочет создавать свои наклейки, этикетки, обложки и все подобное. Имеется расширяемая база форматов бумаги основных марок: Avery, Neato и Memorex. Также существует возможность создавать шаблоны для особых задумок. Для примера я расскажу вкратце, как создать набор визитных карточек.
Когда вы выберите «Новый» в меню «Файл», будет показан список стандартных наборов бумаги. Я выбрал «Avery 5871» — эти заготовки я приобрел в магазине.
После этого приступайте к дизайну. Вы можете разместить и отформатировать на свой вкус текст, изображения, основные фигуры. Не беспокойтесь о том, чтобы копировать свою работу для покрытия всего листа — GLabels сам размножит и распределит визитки в соответствии с выбранным вами шаблоном. Как только вы закончите с дизайном, положите в принтер бумагу и направьте файл на печать.

Как можно видеть, интерфейс довольно прост в использовании. Процесс редактирования этикеток интуитивно понятен. За новостями, обновлениями и поддержкой обратитесь к домашней странице проекта: http://glabels.sourceforge.net/.
GLabels написан для оконного менеджера Gnome, но, как и большинство приложений для Linux, будет работать в любой среде. В KDE есть похожее приложение — KBarcode; имя программы обманчиво, потому что делает она то же самое. Кажется, KBarcode не столь проста, как GLabels, но зато поддерживается пакетная печать — это полезно, если вы делаете этикетки в большом количестве для коммерческого использования.
GLabels есть в Debian со времени Sarge и в Ubuntu, начиная с Warty.
Автор: Бастиан Вентур.
Оригинал: «Reportbug-NG: An easy to use alternative to Debian’s classic reportbug», 11 апреля 2007 г.
Reportbug-NG — замена традиционной утилиты Debian reportbug, созданная с заботой о конечном пользователе. Приятный и аккуратный интерфейс на Qt позволяет искать имеющиеся отчеты и легко и быстро фильтровать их. Можно дополнять существующие тексты или создавать новые. В обоих случаях вам будет нужно ответить на относящиеся к делу вопросы (краткое описание, критичность ошибки, ключевые слова), после чего останется только запустить любимый почтовый клиент, вставить полный отчет и нажать кнопку отправки.
Вот анимация, запечатляющая Reportbug-NG в работе:
Основные преимущества перед reportbug:
Пользователи Ununtu должны обратить внимание на то, что отчеты отправляются в систему отслеживания ошибок Debian, так что жаловаться на ошибки в пакетах Ubuntu бесполезно.
Reportbug-NG активно разрабатывается и поддерживается Бастианом Вентуром. Сейчас программа имеет полную функциональность; серьезных ошибок не замечено. Так как она довольно нова, пакет есть только в нестабильной ветке Debian.
В ближайшей версии планируется
Страница проекта: http://reportbug-ng.alioth.debian.org/.
Автор: Джульен Варлов.
Оригинал: «TinyCA: simple user interface to manage a small CA», 8 апреля 2007 г.
TinyCA призвана помочь вам в работе с центром сертификации (certification authority). Несмотря на простой и даже интуитивно понятный интерфейс, программа предоставляет расширенные функции для опытных пользователей, желающих упростить свою жизнь.
Это работает как надстройка над OpenSSL и предоставляет (почти) те же возможности, среди которых
Пользователи, уже знакомые с OpenSSL, могут сразу приступать к работе с TinyCA, а менее опытные должны почитать где-то об управлении сертификатами.

TinyCA оказывается особо полезной, если нужно управлять целым набором сертификатов, как в случае тоннеля OpenVPN. Жалко только, что программа не может создавать ключи Диффи-Хеллмана — приходится использовать командную строку OpenSSL.
Версия для GTK есть в Debian Sarge; в тестовой и нестабильной ветке содержится сборка на связке Perl-Gtk2 (это заставило главного разработчика назвать новое поколение разработки TinyCA2, в то время как пакет Debian оставил название tinyca). Пакет доступен пользователям Ubuntu из компонента universe.
Не ищите ярлык TinyCA в стартовом меню Gnome или KDE — его не будет. Вместо этого откройте меню Debian или просто выполните в эмуляторе терминала tinyca2.
Если вы используете TinyCA, держите в секрете директорию ~/.TinyCA — там содержатся личные ключи к центру сертификации и ваши сертификаты! Кроме того, передавайте ключи в зашифрованном виде, например, с SSH.
Авторы: Адам Виктор Назарет Брандицци, Педро Вас де Мелло де Медейрос, Педро Араужу Чавес Жуньора.
Оригинал: «Gobby: A Collaborative Text Editor», 4 апреля 2007 г.
Gobby — свободная программа для совместного редактирования текста. То есть, в ней пользователи могут в одновременно работать над общим файлом.
Использовать Gobby просто: создайте сессию, и другие авторы смогут подключиться к вашей машине и присоединиться к работе над одним из публично доступных текстов в диалоге «Список документов», либо создать новый общий файл. Сразу несколько файлов открывается в различных вкладках главного окна. Любой пользователь может вносить в общее хранилище свои файлы, прямо как владелец сессии, и каждый имеет возможность сделать себе локальную копию.
Пользовательский интерфейс прост и понятен: основное окно разделено на две части: редактируемый текст и чат в духе IRC (но поддерживается только одна команда IRC — старое доброе /me ;-). В главном окне каждый фрагмент текста раскрашивается, чтобы обозначить, какой пользователь что написал. Список подключившихся на данный момент пользователей и соответствующих цветов можно получить в узле «В сети» диалога «Список пользователей».
Gobby поддерживает распространенные возможности редактирования вроде автоматического выравнивания, замены табуляций пробелами, работы с клавишей Home, выбора шрифта, подсветки синтаксиса, и так далее. Gobby пытается определить подходящий тип файла, но если что-то не так, вы можете поменять подсветку в выпадающем меню. Также можно задать защищенный паролем сеанс — если хотите управлять перечнем пользователей, которым можно присоединиться.
Чат предоставляет отдельный канал для управления совместной работой, особенно полезный, если нужно обсудить что-то, не связанное напрямую с редактированием текста. Или можно просто использовать редактор как простую болталку с друзьями ;-)
Разработчики Gobby также опубликовали спецификацию Obby — протокола для совместной работы над текстом, выделенный сервер Obby sobby, и библиотеку libobby для разработчиков, которые хотят делать свои клиентские и серверные приложения.
На сайте Gobby есть ряд отчетов о падениях программы. Хотя сами мы ни с чем таким не столкнулись. Что до функциональности, в Gobby нет отмены/возврата действий; этого нам очень не хватало. Еще нельзя следить за удаленным текстом. Не показываются различаемые курсоры всех пользователей, но это должны добавить в Gobby 0.5.0.
Gobby лицензирован GNU GPL второй версии.
Gobby есть в Debian Etch и Sid, Ubuntu Universe, начиная с Breezy Badger. Подробности на домашней странице Gobby.
Автор: Горава Вайдья.
Оригинал: «fortunes: Fortune cookies for all», 1 апреля 2007 г.
Программы в духе этой хранят кучу цитат, изречений, афоризмов, поговорок, логов IRC и любых других текстов, которые могут быть интересными. С незапамятных времен (ну хорошо, с 1979 года) пользователи Unix добавляли программы в файлы .bashrc (или аналогичные), чтобы при каждом создании терминала видеть случайную цитату. Цитаты выбирались из источников и тем, интересных гикам, от Уильяма Шекспира до Дугласа Адамса, от Амброза Бирса до героя комиксов Зигги, от Линуса Торвальдса до самих авторов программы.
В Debian и Ubuntu подобные штуки доступны из пакета fortunes.
Запустить программу до смешного просто, /usr/games/fortune или /usr/bin/fortune показывает краткую цитату:
“I assure you the thought never even crossed my mind, lord.”
“Indeed? Then if I were you I'd sue my face for slander.”
А может, что-то глубокомысленное:
It's hard to tune heavily tuned code. :-)
Или что-то со ссылкой на себя же:
This fortune would be seven words long if it were six words shorter.
Или вот:
《无题》
作者:李商隐
相见时难别亦难,东风无力百花残。
春蚕到死丝方尽,腊炬成灰泪始干。
晓镜但愁云鬓改,夜吟应觉月光寒。
蓬莱此去无多路,青鸟殷勤为探看。
Хотя все прекрасно работает и без аргументов командной строки, возьмите на заметку:
-o-a-wwhile true; do fortune -w; done; в Bourne shell будет показывать цитату за цитатой с соответствующим временем на чтение. Я предпочитаю while true; do echo === `date` ===; fortune -w; echo; done; — то же самое, но с указанием времени перед каждым изречением.Поставьте пакет fortunes — в нем содержится 15 000 цитат; он зависит от fortune-mod, где собраны исполняемые файлы, и дополнений к цитатам fortunes-min. В Debian и Ubuntu пакеты есть давно.
Другие пакеты (и для Debian, и для Ubuntu) позволят читать цитаты на китайском, болгарском, португальском, чешском, словацком, немецком, эсперанто, испанском, французском, ирландском, итальянском, польском, а также советы по работе в Debian и оправдания BOFH.