Журнал LinuxFormat - перейти на главную

LXF95:Ответы

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Ответы

Есть вопрос по Open Source? Пишите нам по адресу: answers@linuxformat.ru

Непонятки с удаленкой

В: Я в Linux уже давно, ставил еще Red Hat 5.1 на мой Amiga 4000, и изучил систему неплохо, но никак не могу запустить удаленный X-сеанс. Умею удаленно входить через SSH и работать в оболочке, но мне очень нужен доступ к моей удаленной машине именно через X.

Удаленный компьютер работает с MythTV на Kubuntu, а на том, с которого я хочу войти, установлен Gentoo. Доступ к рабочему столу нужен лишь для администрирования (не для просмотра MythTV), поэтому задача не кажется неразрешимой. Но я совершенно запутался: что считать сервером, а что – клиентом, что удаленной машиной, а что – хостом! У меня AMD64, некоторые его не хвалят.

Эндрю Уокер [Andrew Walker]

О: Эндрю, я тоже начинал с Linux на Amiga 4000 (с Red Hat 4.5) – помню, тогда все было намного сложнее, чем сейчас. Настроить удаленный X-доступ сравнительно легко, а в случае с MythTV еще и полезно, так как программа mythtv-setup может работать на удаленной машине, открывая при этом X-окно.

Применяя к X сетевую модель взаимоотношений «клиент-сервер», легко можно запутаться, если вы привыкли считать удаленную машину сервером, а свой компьютер – клиентом. X-сервер – это программа, создающая X-дисплей, и она работает на локальной машине. Клиентами же считаются программы, работающие на этом дисплее. Поэтому ваш Gentoo-компьютер – это сервер, а программы на машине с MythTV – клиенты. Запуск X-программы на удаленном сервере через SSH не вызывает затруднений и возможен при стандартных настройках SSH и на Gentoo, и на Kubuntu.

Войдите на Kubuntu-компьютер через SSH со своей Gentoo-машины с параметром -Y. вы получите возможность запускать там X-программы и заставлять их открывать свои окна на рабочем столе Gentoo. Например, вот такие команды:

[user@gentoo]$ ssh -Y kubuntu
user@kubuntu’s password:
[user@kubuntu]$ mythtv-setup

приведут к запуску на рабочем столе Gentoo программы mythtv-setup.

Иногда бывает, что после работы с X-программами сеанс SSH не заканчивается. Это значит, что какая-то программа запустила процессы, которые еще не закрыты: например, KMail открыла пару сокетов для подключения. С помощью ps в другом SSH-сеансе отловите и уничтожьте лишние процессы, тогда получите свое приглашение обратно.

Другие приложения, к которым вы можете обратиться – это инструменты общего доступа к рабочему столу, они или создают зеркальную копию, или открывают X-десктоп на удаленной машине. Для их работы необходимо, чтобы X был как минимум установлен на удаленном компьютере, а для зеркалирования он должен быть еще и запущен. Так как вы пользуетесь KDE, простейшим выбором для вас могут быть krfb и krdc. Первая из них – это сервер, работающий на удаленном компьютере и настраиваемый с помощью KDE Control Centre. Вторая запускается на локальном компьютере и отображает рабочий стол удаленного компьютера в окне. В Kubuntu обе программы установлены по умолчанию; в Gentoo-системе вам придется добавить kde-base/krdc.

VNC работает иначе, она предоставляет весь экран удаленному рабочему столу, отдельно от других экранных процессов локального компьютера. НБ

CentOS-конверсия

В: Согласно данным с сайта CentOS на http://www.centos.org, CentOS «намерен добиться 100%-ной двоичной совместимости» с продуктами «известной североамериканской Linux-корпорации». Тут я и призадумался. Можно ли перенастроить Yum системы Red Hat на хранилище CentOS? Во время обновления CentOS-системы я заметил, что многие пакеты по-прежнему сохраняют имя Red Hat (например, patch_for_что_то-RHEL-6.3.2). Таким образом, можно было бы попытаться обновлять сервер после прекращения поддержки Red Hat. Я понимаю, что это не идеальный метод, но он хотя бы работает?

Джон К. Нолл [John K. Nall]

О: Судя по сообщениям с форумов CentOS, такое вполне возможно, при условии, что осуществляется переход на эквивалентные версии, например с RHEL 5 на CentOS 5. У вас есть выбор: пользоваться хранилищами CentOS вместо Red Hat’овских, или полностью конвертировать инсталляцию Red Hat Enterprise Linux в CentOS.

Сначала убедитесь в том, что вы больше не зарегистрированы в Red Hat Network. Чтобы добавить хранилища CentOS, поместите в файл настройки Yum следующие данные:

[CentOS5 base]
name=CentOS-5-Base
mirrorlist=http://mirrorlist.centos.org/?release=5&arch=$basearch&repo=os
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
[CentOS5 updates]
name=CentOS-5-Updates
mirrorlist=http://mirrorlist.centos.org/?release=5&arch=$basearch&repo=updates
gpgcheck=1
 enabled=1
 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
 [CentOS5plus]
 name=CentOS-5-Plus
 mirrorlist=http://mirrorlist.centos.org/?release=5&arch=$basearch&repo=centosplus
 gpgcheck=1
 enabled=1
 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

Отключите RHEL-хранилища, заменив строку enabled=1 на enabled=0 для каждого из них. Эти действия включают gpgcheck, поэтому каждый пакет перед инсталляцией будет проверен на наличие ключей CentOS. Ключи можно установить так:

 rpm --import http://isoredirect.centos.org/centos/5/os/i386/RPM-GPG-KEY-CentOS-5

Если вы хотите полностью перейти на CentOS, понадобится установка двух небольших пакетов из хранилищ CentOS: centos-release-5-0.0.el5.centos.2.x86_64.rpm и centos-release-notes-5.0.0-2.x86_64.rpm или centos-release-5-0.0.el5.centos.2.i386.rpm и centos-release-notes-5.0.0-2.i386.rpm, в зависимости от Вашей системы (32 или 64-битной). Убедитесь в том, что удалены все *-release-* пакеты Red Hat.

Не исключено получение сообщений о конфликтах от Yum, вызванных тем, что в системе остается много пакетов RHEL-версий. Наилучшее решение в такой ситуации – конвертировать ее в чистую CentOS. Ведь у вас больше нет подписки на поддержку RHEL, поэтому бессмысленно беречь пакеты с маркой Red Hat, а полный переход на CentOS-систему позволит вам заручиться поддержкой CentOS-сообщества. НБ

Урезание OGG

В: Можно ли уменьшить битрейт OGG-файлов? Я кодировал их на 458 кб/с, но они занимают слишком много места на диске.

hubris, из форумов LXF

О: В спецификации Ogg Vorbis указано, что битрейт файла может быть снижен без перекодирования, но современное ПО пока не научилось осуществлять это, то есть каждый файл придется развернуть и закодировать снова. Это привело бы к некоторой потере качества при перекодировании с низких значений битрейта, но при таком высоком уровне, как у вас, потери будут минимальными. Если сохранились файлы-источники, то лучше всего было бы начать с нуля. В противном случае, единичный файл можно перекодировать вот такой строкой:

 oggdec oldfile.ogg -o - | oggenc -q N -o newfile.ogg -

N – значение качества. Задавая уровень кодирования не качеством, а значением битрейта, замените -q на -b. Конвертировать все файлы в директории можно так:

  mkdir -p smalleroggs
  for f in *.ogg
  for FILE in *.ogg
  do
    if oggdec “$FILE-o - | oggenc -q N –o “smalleroggs/$FILE” –
    then
       vorbiscomment -l$FILE| vorbiscomment –w -c /dev/stdin “smalleroggs/$FILEfi
  done

Файлы будут перекодированы, а тэги старых файлов переместятся в новые. Если необходимо проникнуть в поддиректории, то понадобится команда find для поиска всех *.ogg-файлов. Приведенный вариант удаляет файлы-источники, поэтому соблюдайте осторожность.

  find -name*.ogg’ | while read FILE
    NEWFILE=${FILE/.ogg/_new.ogg}
    if oggdec “$FILE-o - | oggenc -q N -o$NEWFILE” -
    then
       vorbiscomment -l$FILE| vorbiscomment -w  -c /dev/stdin “$NEWFILEmv -f$NEWFILE” “$FILEfi
  done

ПХ

А теперь — PHP

В: У меня проблемы с отображением PHP-файлов на моей Linux-машине (Mandriva 2007 Free). Вместо запуска, система упорно открывает их в KWrite. Я изучаю PHP, и, запуская HTML-файл, вызывающий PHP-процесс, совсем не хочу видеть код – мне надо, чтобы он, черт возьми, просто работал.

cynicalsurprise, из форумов LXF

О: PHP-файл через файловый менеджер вы не запустите. PHP – это скриптовый серверный язык, поэтому необходимо грузить PHP-страницу с сервера в web-браузер. Локально это простые текстовые файлы, вот файловый менеджер и делает то, что должен делать с такими файлами – просто открывает их в KWrite.

Это означает, что вам необходим собственный web-сервер – и не пугайтесь, не так страшен черт, как его малюют. Вызовите Mandriva Control Center (Центр управления Mandriva), перейдите в раздел инсталляции ПО, в поле поиска введите mod_php и выберите для инсталляции apache-mod_php-5. Будут установлены дополнительные пакеты, необходимые для обработки PHP-файлов. По окончании инсталляции перейдите в раздел System (Система) Центра управления и выберите пункт System Services (Системные службы). Убедитесь в том, что httpd (процесс Apache) настроен на запуск при загрузке, и если он еще не запущен, то запустите.

Укажите браузеру на http://localhost; должна появиться тестовая страница Apache, или, может быть, страничка ‘It works!’, подтверждающая наличие у вас работающего web-сервера. Теперь нужно поместить PHP-файлы в директорию DocumentRoot, где сервер ищет файлы для обработки. Mandriva по умолчанию использует /var/www/html, поэтому сохраните следующий файл как /var/www/html/test.php:

<?php
phpinfo();
?>

Загрузите http://localhost/test.php в браузер, и если вы увидите сведения о сервере и системе, на которой он работает, то Apache не только инсталлирован, но и настроен на обработку PHP-страниц, и вы можете смело продолжать изучение языка. Удачи!

При редактировании файлов в директории DocumentRoot могут возникнуть «правовые» проблемы. Устранить их можно, добавив своего пользователя в группу Apache и открыв членам группы доступ для записи в эту директорию. Для этого наберите в терминале:

gpasswd -a yourusername apache
chgrp apache /var/www/html
chmod g+w /var/www/html

Чтобы изменения вступили в силу, может понадобиться выйти из своей учетной записи, а затем войти снова. НБ

Нейл не совсем прав. PHP-скрипты можно запускать из файлового менеджера – классическим примером является утилита pptp-config, которая не только работает, но и предоставляет графический интерфейс на базе GTK. Для этого необходимо просто добавить в начало скрипта строку #!/путь/к/интерпретатору/php, например #!/usr/bin/php и сделать его исполняемым (chmod +x script.php). Программы, ориентированные на web (а с ними, скорее всего, и имеет дело автор вопроса) работать не будут, да и само использование PHP в качестве языка общего назначения вызывает множество вопросов, но технически препятствий нет ВС

Вопрос о синхронизации

В; Я установил Buffalo LS-250 LinkStation [сетевое хранилище] в свою домашнюю сеть, состоящую из Kubuntu Dapper и трех машин Windows XP. На ноутбуке Dapper нет никаких проблем с копированием файлов в обоих направлениях, да и настроить это было нетрудно.

Но! Мне хотелось бы синхронизировать ноутбук с LinkStation, а я не знаю, как это сделать. Я успешно настроил Unison для синхронизации ноутбука с одним из Windows-компьютеров, но не знаю, возможно ли это для LinkStation. Обратился было к rsync, но, похоже, для его работы надо установить дополнительное ПО и на ноутбук, и на LinkStation. Я бы обошелся командной строкой, написав скрипт для копирования в любом направлении только новых файлов, но ведь rsync именно для этого и предназначен.

А еще, на XP-машинах я открываю и редактирую файлы с LinkStation, а Samba позволяет открывать только копию на ноутбуке Dapper. Можно ли это исправить?

Ричард Мур [Richard Moore]

О; Фактически, в Вашей домашней сети два Linux-компьютера, ведь LinkStation тоже работает на Linux. На http://linkstationwiki.net можно разыскать множество информации о различных моделях LinkStation, включая LinkStation Pro, как у вас. Наиболее интересным для вас может быть проект замены прошивки. FreeLink заменяет стандартный firmware-файл Debian-вариантом. Это более рискованно, чем OpenLink, но дает больше гибкости, хотя и за счет потери web-интерфейса. OpenLink базируется на firmware с добавкой некоторых программ, наиболее интересные из которых – SSH и rsync. Правда, ваши LS-LG – это новые модели, и на момент написания ответа OpenLink их не поддерживал, хотя ко времени публикации ситуация может измениться.

Если вы не хотите возиться со своим firmware, есть решение и попроще. Монтируя устройство с помощью Samba, вы можете использовать rsync без инсталляции чего бы то ни было на удаленную машину, как будто синхронизируются две локальные директории.

rsync -avx ~/myfiles/ /mnt/buffalo/myfiles/

Через SMB можно работать с файлами непосредственно на устройстве. Так как у вас KDE, то лучше сначала пойти путем KIO slave, открыв файл как smb://name/path/to/file. Попробуйте поискать файлы в Konqueror и открыть их в редакторе. Если не удалось, то это, скорее всего, следствие неверной настройки прав доступа и Samba. Запуская программы из оболочки, вы можете узнать более подробные сведения из сообщений об ошибках, возвращаемых системой. Например:

kwrite smb://name/path/to/file

НВ

Слепой SUSE

В: Надеюсь получить простой ответ на простой аппаратный вопрос. Когда я пробую запустить SUSE 10.2 на моем новом 19-дюймовом плоскоэкранном мониторе, то получаю сообщение ‘not supported’ (не поддерживается). Как это исправить? На старом 14-дюймовом мониторе все работает прекрасно.

Пит Холлингс [Pete Hollings]

О: Аппаратная проблема, не связанная с проприетарными драйверами? Уже лучше! Значит, в центре экрана появляется это сообщение, и больше ничего? А это монитор сообщает, что сигнал компьютера выходит за пределы допустимого диапазона, так обычно бывает, когда компьютер пробует вывести изображение со слишком высоким разрешением или на слишком высокой частоте. Видимо, инсталлятор неверно распознает монитор и преувеличивает его возможности.

Так как вопрос касается лишь инсталлятора, простой ответ есть: предписать инсталлятору уменьшить значение разрешения. Для выбора разрешения нажмите F3 во время отображения загрузочного меню. Поднимайтесь по экрану (низкие разрешения отображаются в верхней части списка), пока не доберетесь до тех значений, с которыми монитор будет работать. В крайнем случае, можно инсталлировать в текстовом режиме. Это не столь приятно, к тому же требует некоторой сноровки, но полученная инсталляция будет абсолютно та же.

Проблема касается только инсталляции, вам нужно выбрать только такие параметры, которые позволят запустить графический рабочий стол. Уж он-тo наверняка безошибочно определит ваш монитор. МС

На ощупь

В: Я хочу получить доступ к удаленному компьютеру, работающему без монитора, через удаленное подключение (krdc). Удаленная машина загружается без монитора, поэтому X.org постоянно откатывается на VGA (640x480). Можно ли заставить X.org работать на более высоком разрешении? Я не хочу довольствоваться удаленным X, мне нужен весь рабочий стол. На компьютере стоит Debian Etch, свой xorg.conf прилагаю.

i.couchman, из форумов LXF

О: Такое поведение вызвано неверной настройкой Вашего X.org. Корень проблемы кроется вот в этом разделе xorg.conf:

 Section “Monitor”
   Identifier “BenQ T701”
   Option     “DPMS”
 EndSection

Как видите, здесь не приводятся данные ни о возможностях, ни об ограничениях монитора. Такой подход постепенно становится стандартным и работает почти со всеми современными мониторами, поддерживающими EDID (Extended Display Identification Data, расширенную идентификацию данных дисплея). Во время настройки система опрашивает монитор и получает информацию, необходимую для правильной настройки дисплея. А если на монитор направить сигнал такой частоты или разрешения, которые превышают его возможности – хотя большинство современных мониторов имеет соответствующую защиту – то он может быть серьезно поврежден. Именно поэтому, не получив ответа на запрос EDID, X.org и возвращается к разрешению 640x480x8-бит.

Решение простое: сами добавьте информацию о частотах вертикальной и горизонтальной развертки, необходимые X.org, и он перестанет опрашивать несуществующий монитор. Добавить надо параметры HorizSync и VertRefresh к вышеприведенной секции Monitor. Если вы хоть раз подключали монитор к этому компьютеру, то сможете найти нужные значения в руководстве к монитору. Если же монитор вы никогда не подключали и не собираетесь этого делать, то можете взять любые разумные значения, да хоть из того же руководства, чтобы воспользоваться ими, когда это все же понадобится. Перезапустив X, вы увидите, что дисплей открылся на разрешении, указанном в xorg.conf, 1280x1024. НБ

Верните Windows!

В: Недавно я установил Mandriva 2005 с вашего Специального выпуска [Linux FormatSpecial #1], это уже во второй раз. В первый раз я мог обращаться к жестким дискам Windows, а сейчас - нет. Я словно перед запертой дверью. Как мне получить прежний доступ к этим дискам? Предыдущая инсталляция была на другом винчестере, у меня его больше нет.

Барри Симпсон [Barry Simpson]

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

Вызовите Центр управления Mandriva, перейдите в раздел Mount Points (Точки монтирования) и выберите Create, Delete And Resize Hard Disk Partitions (Создание, удаление и изменение размеров разделов'). Выделите Windows-раздел, переключитесь в режим Expert и нажмите кнопку Options (Параметры). Поле в середине полученного окна будет содержать, скорее всего, ‘defaults’ (по умолчанию). Поставьте галочку в окошке с надписью Umask=0, затем OK и Done (Готово). Для применения настройки необходимо перемонтировать раздел. Можно было бы просто перезагрузиться, но ведь это Linux, а не Windows, поэтому откройте терминал и введите

 su -c “mount /mnt/windows -o remount”

заменив /mnt/windows именем Вашего Windows-раздела. Введите пароль администратора, и вы получите всесторонний доступ к Windows-разделу. Все дело в параметре umask=0, добавленном к остальным параметрам монтирования. Файловая система FAT32 лишена собственных прав доступа, а упомянутый параметр позволяет системе рассматривать раздел как доступный для чтения и записи кому угодно.

Все усложняется, если на Windows-разделе установлена система NTFS. Доступ для чтения к этой файловой системе существует давно, но полный доступ освоен лишь в последнее время. Доступ для чтения осуществляется с помощью вышеприведенных шагов, только команду remount нужно заменить на

 su
 umount /mnt/windows
 chmod 777 /mnt/windows
 mount /mnt/windows

Теперь вы можете читать Windows-раздел – нo не записывать на него. Хотя теоретически доступ для записи на Вашем дистрибутиве осуществить можно, но он весьма ограничен и не стоит затраченных усилий.

Mandriva 2005 сейчас считается устаревшим дистрибутивом, за прошедшее со времени его выхода время многое изменилось. Я рекомендовал бы обновиться до новейшей версии: Mandriva 2007 Spring можно инсталлировать с DVD нашего последнего номера. НБ

Бедствия Wi-Fi… опять!

В: У меня проблема, в чем-то сходная со случаем Эндрю Вуда из LXF90 Бедствия Wi-Fi, Ответы, только с адаптером D-Link DWL-G122 Rev C USB. Я пробовал NdisWrapper на другом D-Link DWL-G122, Rev B, и он работал на Windows-драйверах с сопроводительного диска. Но вот Rev C работать никак не хочет. Можно ли точно узнать, какой INF-файл следует использовать? Google сообщил, что на Rev C установлен чипсет Ralink RT73. Но как убедиться в этом локально, на Linux (Mepis)? Похож ли RT73 на чипсеты RT2x00?

Майкл Нг [Michael Ng]

О: К сожалению, это очень распространенная проблема. Изготовители меняют внутренности устройств, не меняя их внешнего вида и названия. Пользователи Windows даже не догадываются об этом, пользуясь сопроводительными дисками с драйверами. вам необходимо придерживаться такой же линии с NdisWrapper – используйте INF-файл с сопроводительного диска (скорее всего, rt73.inf).

Идентифицировать устройство можно командой lsusb. Она вернет два шестнадцатеричных числа - идентификаторы изготовителя и продукта. Например, мой D-Link выдал

    ‘Bus 001 Device 005: ID 2001:3700 D-Link Corp. [hex] DWL-122 802.11b’

где 2001 и 3700 – это идентификаторы изготовителя (VendorID) и продукта (ProductID) соответственно. Имея эти цифры, можно найти более подробные сведения на http://qbik.ch/usb/devices.

Чипсеты RT73 и RT25xx различны, хотя проект RT2x00 поддерживает и RT73, и RT61, только в другом варианте. На сайте RT2x00, http://rt2x00.serialmonkey.com, для RT73 доступен и отдельный пакет. Вероятно, его будет проще установить, вот и попробуйте. Загрузите архив rt73-CVS, распакуйте и следуйте инструкциям README-файла.

Если не сработает, попробуйте новый набор RT2x00, объединяющий драйверы для RT2400, RT2500, RT2700, RT61 и RT73 в один пакет. Так как он совершенно новый, загрузить его можно из репозитория Git, на странице загрузки есть ссылка на полные инструкции по установке.

Другой вариант – Linux-драйвер для RT73, доступный с сайта Ralink, текущий адрес http://www.ralink.com.tw/data/RT73_Linux_STA_Drv1.0.3.6.tar.gz. Архив содержит исчерпывающую инструкцию по установке. Понадобится компиляция драйвера из исходных текстов, то есть необходимо наличие инсталлированных исходных текстов ядра и GCC из стандартных пакетов Mepis. Необходимо также установить firmware-файл с http://www.ralinktech.com.tw/data/RT71W_Firmware_V1.8.zip.

По мере становления пакета драйверов RT2x00 ситуация должна выправляться. Я не поклонник NdisWrapper, но понимаю, почему им пользуются, ведь он зачастую «просто работает». НБ

Свобода общения

В: У меня есть офисный маршрутизатор, работающий под управлением Linux и подключенный сразу к нескольким провайдерам. У каждого из них есть свои бонусы (бесплатный трафик на те или иные ресурсы). Маршрутизацию по хостам настроить несложно, но некоторые провайдеры предлагают бесплатный трафик по определенным портам: IRC (6667-6669), ICQ(443) и т.д. Перебирать все возможные хосты проблематично, да и некрасиво. Как в Linux осуществить маршрутизацию на основании порта пункта назначения?

Алексей Ярославцев

О: Исходя из сказанного, я полагаю, что маршрутизация трафика между несколькими каналами у вас уже настроена и вопрос только в том, как осуществлять ее на основе порта назначения. Если это не так – прочтите раздел 4.2 в Linux Advanced Routing & Traffic Control HOWTO (http://lartc.org/howto): в нем вы найдете весьма подробное описание всех возможных тонкостей. Да и вообще, держите этот документ под рукой: когда провайдеров становится более одного, без LARTC не обойтись.

Сформулированная вами задача решается в два этапа. В первую очередь необходимо пометить интересующие вас пакеты – для этих целей в iptables предусмотрена цель MARK. Допустим, вас интересует трафик IRC. Тогда команда может выглядеть следующим образом:

iptables -t mangle -A PREROUTING --dport 6667:6669 -p tcp -j MARK --set-mark 64

Данное правило предписывает установить метку ‘64’ всем пакетам, порт назначения которых лежит в пределах 6667-6669/tcp. Значение метки можно выбирать любым – главное, чтобы оно было уникальным в пределах системы.

Затем необходимо настроить политику маршрутизации. Для этого служит утилита ip из пакета iproute2. Мы должны проинструктировать ядро проверять значение метки на пришедшем пакете и, если оно равно 64, маршрутизировать его по особой таблице, единственная запись в которой предписывает использовать шлюз соответствующего провайдера. Итак, приступим.

Придумайте название для таблицы маршрутизации – скажем, IRCFriendly, а также цифровой идентификатор (100). Их необходимо дописать в конец файла /etc/iproute2/rt_tables, при этом выдуманные вами значения, естественно, не должны совпадать с существующими:

echo 100 IRCFriendly >> /etc/iproute2/rt_tables

Добавьте в таблицу IRCFriendly шлюз по умолчанию Поскольку стандартная команда route модифицирует только таблицу с говорящим названием default, воспользуйтесь утилитой ip:

ip route add default via 1.2.3.4 dev eth1 table  IRCFriendly

eth1 и 1.2.3.4 естественно, необходимо заменить на интерфейс, к которому подключен кабель провайдера и адрес его шлюза по умолчанию. Маршрут до узла 1.2.3.4 должен быть известен Linux – иначе команда выдаст ошибку.

Заключительный шаг – заставить ядро маршрутизировать все пакеты, имеющие метку 64, согласно таблице IRCFriendly. Для этого нужно создать соответствующее правило:

ip rule add fwmark 64 table IRCFriendly

Вот, собственно, и все. При желании можно избежать правки файла rt_tables, напрямую указывая выбранный идентификатор таблицы во всех командах. ВС

Обновить Debian без сети

В: У нас есть много Debian-компьютеров без подключения к Интернет. Некоторые даже не в сети. Как лучше всего обновлять на них систему? В настоящее время мы копируем Deb-файлы на CD, затем вручную инсталлируем их на каждый компьютер, но я уверен, что есть способ получше. Мы подумывали о локальном Debian-зеркале, но такой метод съедает слишком много сетевых ресурсов, а для изолированных систем и вовсе бесполезен.

Ричард Кросс [Richard Cross]

О: Вам может помочь одна полезная штучка: пакет APTonCD. Программа создает хранилище на CD (или DVD), которым можно пользоваться для инсталляции или обновления изолированных машин. APTonCD также полезный инструмент клонирования и резервного копирования: создаваемые им диски содержат все пакеты, установленные на компьютере в настоящее время, и с них можно переустановить систему или установить один и тот же набор пакетов на разные машины. Если у вас Ubuntu Feisty, то APTonCD можно устано вить через Synaptic. В стандартном хранилище Debian Etch этого пакета нет, поэтому возьмите его на http://aptoncd.sourceforge.net и установите на каждый из своих компьютеров командой

dselect --install aptoncd_0.1~rc-0ubuntu1_all.deb

Проще всего пользоваться программой так: пусть один из компьютеров будет подключен к Интернету, а уже на нем можно нарезать диски для обновления остальных. Сначала запустите программу на подключенном компьютере и выберите Create APTonCD (Создать APTonCD). Программа просканирует систему и разыщет пакеты, находящиеся в /var/cache/apt/archives, где содержится все, что вы когда-либо инсталлировали (если, конечно, эту директорию специально не чистили). Вам будет представлен полный список пакетов. Удалите из списка все, что вам не нужно (например, чтобы втиснуть все на один диск) и добавьте дополнительные пакеты. APTonCD сама добавит необходимые зависимости для каждого пакета, если только вы не запретите это явно. APTonCD нарезает CD или DVD и создает столько дисков, сколько необходимо для размещения всех файлов. Нажмите OK, и APTonCD сформирует один или несколько ISO-образов, готовых к прожигу на любом записывающем приложении. Программа предложит начать прожиг вскоре после того, как подготовит ISO-образы.

Записав образы на диск(и), поместите их на одну из изолированных машин, запустите APTonCD и выберите вкладку Restore (Восстановление). Два первых пункта касаются восстановления системы с CD и в принципе могут понадобиться, но к Вашему вопросу отношения не имеют. Третий пункт добавляет диск к системе в качестве хранилища, которое может быть использовано apt-get, Synaptic или любым другим диспетчером пакетов для обновления компьютера. Заглянув в /etc/apt/sources.list или выбрав Settings –> Repositories (Настройка –> Хранилища) в Synaptic, вы увидите, что новый CD был причислен к числу доступных источников ПО. Запустите Update Manager (Диспетчер обновлений) – вы сможете увидеть и применить любое обновление системы. Неплохо бы при каждом обновлении очищать sources.list, иначе здесь будет создано несколько записей, по одной для каждого CD. НБ LXF

Шаг за шагом: Репозиторий на диске

Шаг 1

Загрузите APTonCD Пользователи Debian могут загрузить пакет APTonCD с http://aptoncd.sourceforge.net/download.html.

Шаг 2

Или инсталлируйте его На Ubuntu (и Kubuntu) все, что нужно для инсталляции – это набрать aptoncd в поле поиска Synaptic.

Шаг 3

Сканирование системы APTonCD сканирует все архивные Deb-файлы, чтобы составить список пакетов для включения в свое хранилище.

Шаг 4

Отбор Добавляйте и удаляйте файлы по своему усмотрению, затем задайте параметры для записи диска. Для добавления пакетов пользуйтесь кнопкой Add Packages (Добавить пакеты) или перетаскивайте файлы в окно.

Шаг 5

Добавление хранилища Запуск APTonCD на другом компьютере добавит только что созданный диск к числу источников ПО для apt.

Шаг 6

Завершенный CD Synaptic отображает новый CD как источник для загрузки обновлений. Не забудьте удалить старые хранилища APTonCD, когда они станут не нужны.

* О правах

В: Мой Squid-бокс нормально работал до тех пор, пока скачок напряжения не уничтожил загрузочный сектор жесткого диска. Я переустановил систему (заодно обновил ее до Debian Etch). Моя проблема в том, что при загрузке динамически создается папка winbind_privileged, причем с неверными правами доступа. Мне необходимы права root:proxy, чтобы проксисервер мог использовать авторизацию AD [Active Directory]. Как устранить эту проблему?

TwIsT, из форумов LXF

О: Единственное надежное решение этой проблемы может показаться несколько безалаберным: позволить создание директории, а затем изменить групповую принадлежность. Запустите свой текстовый редактор как суперпользователь, откройте /etc/rc.local' и перед завершающей строкой добавьте следующее:

  if [[ -d /path/to/winbind_privileged ]]
  then
     chgrp proxy /path/to/winbind_privileged
  fi

конечно, указав правильный путь к winbind_privileged. Этот скрипт запускается в самом конце процесса загрузки. Если вы хотите запускать его раньше, скажем, сразу после запуска Squid, понадобится отдельный скрипт. Поместите в /etc/init.d/fixsquid следующие строки:

  #!/bin/sh
  if [[ -d /path/to/winbind_privileged ]]
  then
     chgrp proxy /path/to/winbind_privileged
  fi

Опять же, не забудьте подставить верный путь к winbind_privileged. Теперь сделайте скрипт исполняемым, а запуск сразу после старта Squid задайте следующими командами (под root’ом):

chmod +x /etc/init.d/fixsquid
ln -s ../init.d/fixsquid /etc/rc2.d/
S35fixsquid

Init-скрипты запускаются в алфавитно-цифровом порядке, а Squid запускается из S35fixsquid, следом запустится и наш скрипт (S означает startup; файлы, имена которых начинаются с K [Kill], запускаются при завершении работы, убивая процессы). МС

Коротко про… Файловые ссылки

Что такое жесткая (hard) и символическая (symbolic) ссылки?

В Linux широко используются файловые ссылки, в основном символические (гибкие). Файловые ссылки – это способ представить файл или директорию в двух или более местах или под разными именами. Можно просто скопировать файл в каждое из нужных мест, но у такого метода есть недостатки: расходуется дисковое пространство, а в случае обновления одного из файлов его копия не обновляется.

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

Символические ссылки гораздо эффективнее, любая Linux-система буквально пронизана ими. Просмотреть такие ссылки можно, запустив ls с параметром -l, отображаются они и большинством файловых менеджеров. Классический пример – директория /usr/src, в которой /usr/src/linux – символическая ссылка на исходные тексты текущего ядра, например linux-2.6.15. Таким образом, у вас может быть инсталлировано несколько ядер, и каждая программа, которой необходим исходный код, будет искать свое в директории /usr/src/linux. Символические ссылки широко используются и в /etc/rc.d.

Создать символическую ссылку можно так:

 ln -s /path/to/file /path/to/link

Один или оба пути могут быть относительными.

Часто задаваемые вопросы… Что такое руткит?

Не подцепите!
  • Rootkit звучит безобидно, но я слышал, что это какая-то мерзость?

Верно: руткит – это комплект ПО, устанавливаемый кракером, чтобы скрыть свое присутствие на вашем компьютере. Например, модифицированные версии ls и ps, не отображающие процессы и файлы, принадлежащие крэкеру. Они обычно скрываются, как трояны, чтобы не вызывать подозрений, а их название обусловлено тем, что они инсталлируются и исполняются от имени суперпользователя (root). Зараженный компьютер описывается как ‘rooted’ (да не обидятся наши австралийские читатели: на их сленге это нехорошее слово).

  • Какой ущерб может причинить руткит?

Сам по себе он почти безвреден. Его назначение – позволить хозяину-кракеру делать свое черное дело на вашем компьютере, не вызывая подозрений. Руткит изменяет программы для наблюдения за состоянием компьютера, чтобы те не подняли тревогу. В этом отношении руткиты отличаются от троянов.

  • А это что такое?

«Троянский конь» (сокращенно «троян») – это вредоносная программа, маскирующаяся под нечто благовидное. Название происходит от уловки, использованной древними греками для проникновения в Трою. Отсюда и фраза «Бойтесь данайцев, дары приносящих» (а также добрых хакеров, предлагающих взломанное ПО). Adware (к счастью, пока не досаждающее Linux-пользователям) – характерный пример трояна, так как оно потихоньку «стучит хозяевам».

  • Имеет ли это отношение к музыкальным CD?

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

  • Как догадаться о том, что компьютер заражен?

Существуют различные программы для проверки файловой системы на наличие признаков деятельности руткита. Они практикуют два метода: проверка кодовых последовательностей на соответствие находящимся в базе данных образцам руткитов или сравнение контрольных сумм MD5 различных файлов с данными, полученными при сканировании незараженной системы. Для успеха второго метода необходимо запускать такие программы сразу после инсталляции, пока система гарантированно «чиста». Вот две такие программы: Rootkit Hunter с http://www.rootkit.nl и chkrootkit с http://www.chkrootkit.org. Запускайте их регулярно – лучше с cron – когда компьютер подключен к Сети, и программы будут автоматически обновлять свои базы данных с образцами известных руткитов.

  • А могут ли эти программы вылечить компьютер?

Нет. Как только руткит инсталлируется, компьютер теряет доверие. Руткит скрывает все следы деятельности кракера, чем бы он ни занимался, поэтому поражена может быть любая часть компьютера. Единственный выход – резервировать файлы данных и настройки и переустанавливать систему.

Персональные инструменты
купить
подписаться
Яндекс.Метрика