faqs.org.ru

 Главная > Операционные системы > Семейство UNIX >

RU.LINUX FAQ list

Секция 3 из 4 - Предыдущая - Следующая
Все секции - 1 - 2 - 3 - 4

файловой системы и т.д. Существует два подхода к организации этих
уровней и скриптов: BSD и SysV. Оба они описаны в книжке Э. Немет (см.
выше), а про SysV можно еще прочесть на
<http://www.sensi.org/~alec/unix/redhat/sysv-init.html>.

4.7.  После удаления /var/log/syslog и /var/log/messages и
пеpезагpузки эти файлы не пополняются и некотоpые сообщения идут на
консоль. Как пpавильно чистить log-и?

Логи могут быть от syslog'а и от отдельных демонов.  syslog'овые логи
чистятся так:

mv $log ${log}.old (или rm если не нужен, но лучше сохpанить)
touch $log
kill -1 `cat /var/run/syslogd.pid`


Процесс автоматизируется с помощью logrotate.

Как чистить не-syslog'овые логи - только RTFM на конкpетную тулзу и
никак иначе.

4.8.  * Где взять документацию на pam?

<http://www.kernel.org/pub/linux/libs/pam/>

4.9.  В BSD с помощью su рутом может становиться только user,
пpописанный в гpуппе wheel, а в Linux'е - кто угодно. Нехоpошо это
как-то. Может быть, есть путь это испpавить?

Надо ставить su не из gnu sh_util, которая в принципе этого не умеет
(RTFmanpage на предмет, по чьей милости), а какую-нибудь другую.  Но
ежели su пользует pam (в Red Hat, напpимеp и основанных на нем
дистрибутивах, а также в Debian 2.2), подобное поведение достигается
добавлением стpочки:

su      auth     required       pam_wheel.so


в /etc/pam.conf, если pam дpевний, или:

auth     required       pam_wheel.so



в /etc/pam.d/su, если поновее.

Такой механизм получше будет, поскольку поведение можно ваpьиpовать на
ходу.  Напpимеp, манипулиpуя паpаметpами 'group' и 'deny', pазpешить
это делать всем, кpоме одной гpуппы:

pam_wheel.so group=guest deny


Пpавда, модуль этот стpанный, забывает смотpеть на gid, а смотpит
только на groups... А может так и надо...

В Debian 2.1 надо поставить пакетик secure-su и посмотреть на файл
suauth.

В Slackware от 3.3 (гаpантиpовано) это pешается путем pедактиpования
/etc/login.defs  Нужно, что бы было

SU_WHEEL_ONLY   yes


тогда su смогут использовать только входящие в гpуппу root.  В
слаквари от 3.4 (до 4.0, где su опять из другой банки) лучше прочесть
сперва man 5 suauth - там возможна гораздо более гибкая настройка su,
чем тупая "группа ноль".

Если память не вpет, то это же спpаведливо в SuSe 6.x. В SuSE 5.3 su
из sh_util, со всеми вытекающими. К сожалению, su, понимающая
login.defs и suauth, страдает другими болезнями - в частности, не
имеет удобных ключиков -m и -s. Если секьюрити важнее удобства...

4.10.  Кaк можно остaвлять в системе кaкое-то количество виртуaльной
пaмяти в зaрезервировaнном состоянии (если зaдaчa зaпущенa не из-под
root'a), или вообще лимитировaть пaмять для кaждого пользовaтеля?

man setrlimit

4.11.  Как сделать так, чтобы программы XXXX и YYYY могли одновременно
использовать модем или еще что-то на терминальном порту?

Во-первых, они должны использовать одно и то же имя файла для доступа
к порту, скажем, /dev/modem. Если одна программа использует
/dev/ttyS0, а другая /dev/cua0 (а третья -- /dev/modem, который линк
на один из этих двух :), - то они точно передерутся.

Во-вторых, они должны использовать механизм lock-файлов. Наверное, все
известные программы его используют, но все же.

В-третьих, они должны видеть локи друг друга. То есть, в их
конфигурации должен быть указан один и тот же каталог для создания
локов, они должны использовать один и тот же формат имен файлов
(обычно LCK..<имя файла порта>), один и тот же формат самих файлов
(обычно десять символов -- PID программы в ASCII), и иметь привилегии,
достаточные для создания и удаления своих лок-файлов.

4.12.  В чем pазница между /dev/cua* и /dev/ttyS*?

Не надо пользовать cua*. То есть вообще. Они в ядре - только для
обратной совместимости со схемой, принятой в BSD. В BSD /dev/cuXX --
это "Call Up" порты, т.е. для исходящих звонков -- на них всегда есть
CD.  В Linux /dev/cuaXX не применяется и новые ядра даже выдают
предупреждение.




4.13.  Как правильно настроить время на машине с Linux?  Как
синхронизировать его с Интернетом?  Как синхронизировать клиентов с
сервером?

Для установки времени в CMOS используется утилита hwclock из свежего
комплекта util-linux.

Если на вашей машине стоит только Linux, то очень удобно записать в
CMOS время по Гринвичу, а в одном из стартовых скриптов сказать

        /sbin/hwclock --hctosys --utc


Если на машине стоит, кроме Linux, какая-то другая операционная
система, то в CMOS пишется местное время, а в стартовом скрипте
пишется просто

        /sbin/hwclock --hctosys


Для того, чтобы программы правильно определяли местное время (с учетом
летнего времени и тому подобных обстоятельств), надо:

-  убрать из стартовых скриптов всякие упоминания переменной окружения
   TZ, если таковые имеются;

-  сделать так, чтобы файл /etc/localtime был правильной символической
   ссылкой на соответствующий файл из /usr/share/zoneinfo, например,

           rm -f /etc/localtime
           ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime



В Red Hat-based системах параметр utc задается в файле /etc/syscon|
fig/clock.  Непосредственно редактировать стартовые скрипты не нужно.
Кроме того, этот параметр и timezone можно задать с помощью утилиты
timeconfig.

Проверить правильность задания времени можно, запустив сначала
``date'' (должна показать правильное местное время), а затем ``date
--utc'' (должна показать правильное время по Гринвичу).

Для того, чтобы синхронизировать время с часовыми серверами в
Internet, сходите на  <http://www.ntp.org>.  Там раздается пакет xntpd
и приведен список публично доступных часовых серверов в Интернете.  Из
всего комплекта xntpd вам потребуется лишь программа ntpdate.
Периодически, например, при каждом звонке провайдеру, выполняйте,
например, такую команду:

        /usr/local/bin/ntpdate ntp1.gamma.ru


Если на вашей машине под Linux установлена Samba, то клиенты под MS
Windows могут синхронизировать время с этой машиной с помощью команды

        C:\> NET TIME \\LINUXBOX /SET /YES


(Alexey Mahotkin <mailto:alexm@hsys.msk.ru>)

4.14.  Надо заставить uucico ходить на телнетовский порт, а в логах
наблюдается откровенный мусор: \177}\030\177} \177}#\177}



     port type pipe
     port command /bin/telnet -8E hostname



4.15.  А как смонтировать дискету если я не root?

Попробуйте fdmount /dev/fd[0-9] mountpoint, ну и не забыть почитать
man fdmount, или root мог написать 'user' в /etc/fstab, и обычный
пользователь может говорить "mount <mountpoint>". man 8 mount.  Еще
лучше вовсе не монтировать дискеты, а пользоваться mtools.

4.16.  Отчего кое-кто (INN, SENDMAIL) так долго думает при старте?

Надо заглянyть в директорию /var/log и посмотреть, нет ли в логах
сообщений от этой программы.  Для sendmail - 99% воплей пpо долгое
думанье объясняется попыткой pезолвинга адpесов локальных интеpфейсов.
Надо эти адpеса занести в /etc/hosts.  Альтеpнативный ваpиант - O
DontProbeInterfaces=True в /etc/sendmail.cf.

4.17.  А чего бы такого крутого предпринять по части безопасности
системы?

Для начала прочтите /usr/doc/HOWTO/Security-HOWTO.

На  <http://www.openwall.com> можно найти патч Solar Designer-а,
который помогает от исполняемого стека и еще восьмидесяти восьми
болезней.  Кроме того, рекомендуется придирчиво изучать
<http://rootshell.com> <http://packetstorm.securify.com>,
<http://www.linuxsecurity.com> , и подписаться на списки рассылки
bugtraq, linux-security, и список по безопасности того дистрибутива,
которым вы пользуетесь.  Еще одна, хотя и несколько радикальная
ссылка: <http://www.infowar.co.uk/thc/files/thc/anonymous-unix.html>

4.18.  Хочу скопировать один диск на другой. Как?


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

   ( cd /old_fs && tar cf - . ) | ( cd /new_fs && tar xvpf - )

-  dump 0f - /old_fs | ( cd /new_fs && restore xf - )

   и набирать побыстрее, и понять легче, и кое-что, что у tar не
   получится или получится с трудом, таким образом можно скопировать
   (атрибуты, файлы с "дырками"). Для tar можно и попроще:

   tar -C /old_fs -cf - . | tar -xpf - -C /new_fs

   - GNU tar более интеллектуальная штука, чем dump.

-  Подробное руководство есть в /usr/doc/HOWTO/mini/Hard-Disk-Upgrade

4.19.  Зачем нужны странные права доступа на каталогах, например,
sticky или setgid bit?

Sticky bit (chmod +t) на каталоге означает, что файлы в этом каталоге
могут стирать только их владельцы или суперпользователь.  Обычно на
/tmp и /var/tmp этот бит включен.

Setgid бит (chmod +g) на каталоге означает, что файлы, созданные в
этом каталоге, будут иметь ту же группу-владельца, что и сам этот
каталог.  Также, если в setgid-каталоге создаются другие каталоги, то
они также будут иметь setgid-бит.

По словам ДиДжея Бернстайна, "есть три метода задания групп-владельцев
файлов: BSD-шный, бесполезный и SVR4-й.  При BSD-шном методе файлы
всегда получают ту же группу-владельца, что и каталог, в котором они
были созданы.  Это очень удобно с точки зрения администратора.(*)  При
бесполезном методе новые файлы принадлежат основной группе, на правах
которой выполняется текущий процесс.  Этот случай моментально приводит
к настоящему кошмару. SVR4-й метод почти совпадает с бесполезным, но
если на каталоге есть setgid-бит, то включается BSD-шный метод."

Заметьте, что с помощью флага монтирования bsdgroups можно включить
BSD-шный метод работы с группами-владельцами.  Подробности --
mount(8).

(*) Объяснение, почему удобно, можно найти в руководстве Red Hat -
rhref/s1-sysadmin-usr-grps.htm, Users, Groups and User-Private Groups)

4.20.  * Сообщения на экране или в логах: modprobe: Can't locate mod|
ule <имя-модуля>

Такое сообщение может появляться по нескольким причинам:

-  Такого модуля действительно нет. В этом случае нужно выяснить его
   назначение и причину, по которой система пытается его загрузить.
   Затем, в зависимости от результатов выяснения, либо прописать в
   modules.conf (про формат которого есть man-страница) такую строку:

   alias <имя-модуля> off


либо собрать этот модуль из его исходных текстов или исходных текстов
ядра Linux.

-  Такой модуль существует, но программа modprobe, вызываемая ядром,
   не может установить соответствие между именем модуля, которое
   передает ядро и реальным именем файла, содержащего этот модуль. В
   этом случае нужно либо обновить пакет modutils, либо прописать в
   /etc/modules.conf:

   alias <что-не-может-найти> <имя-файла-без-.o>


(я буду признателен тому, кто укажет способ установить это
соответствие, если оно не прописано внутри modprobe)

4.21.  * Sendmail ругается: sh: <что-то> not available for sendmail
programs

Прочтите man smrsh или /usr/share/doc/sendmail/README.smrsh

5.  Сетевое администрирование


5.1.  Почему telnet не пускает пользователя root? Как зайти удаленно с
правами root?

telnet (а точнее, login) не пускает root потому, что root может
заходить в систему только со специальных защищенных терминалов,
перечисленных в /etc/securetty. Обычно там перечислены только
виртуальные консоли tty1-ttyN.  Другие места считаются небезопасными,
потому что пароль, вводимый оттуда, может передаваться по сети
открытым текстом (что и происходит в случае использования telnet), а
значит его может узнать злоумышленник, "прослушивая" сеть и анализируя
"чужие" пакеты.

Ответов на второй вопрос несколько:

-  быстрый и неправильный способ - удалить файл /etc/securetty или
   прописать в нем псевдотерминалы /dev/ttyP*. Это опасно потому, что
   дает злоумышленнику возможность не только узнать пароль, но и
   воспользоваться им для удаленного захода на машину.

-  менее быстрый, но все равно неправильный способ - заходить на
   машину обычным пользователем, а затем использовать команду su или
   sudo. И в этом случае оба пароля передаются открытым текстом, со
   всеми возможными последствиями.

-  самый правильный способ - полностью отключить сервисы telnet,
   не-анонимный ftp, rsh, rlogin и заменить их на ssh, шифрующий все,
   что передается через сеть и поддерживающий аутенификацию не только
   через пароль, но и с использованием криптографии с открытым ключом.
   Клиент и сервер ssh для Unix можно взять на
   <http://www.openssh.com>, про клиенты для Windows написано в
   разделе "Прочее".

5.2.  Надоело запускать ppp (slip) руками. Хочу чтобы сам звонил,
когда надо.

Медленно и печально идем на  <http://diald.sourceforge.net>, сливаем
diald, разворачиваем, читаем README, совершаем _минимальные_
телодвижения на предмет конфигурации и инсталляции, и получаем
эмулятор выделенной линии. Как только требуется выйти во внешний мир,
diald дозванивается до провайдера, устанавливает роутинг и можно
работать.  Внимание: учтите, что с ядрами 2.2.x нормально работает
diald-1.99 и выше. 0.16, лежащий везде, в том числе и в некоторых
дистрибутивах, предназначен только для 2.0. (почему-то эта информация
пропущена в Changes) Да, еще...  Рекомендации лучших линуксоводов: в
файле /etc/resolv.conf надо размножить строчки nameserver
xxx.xxx.xxx.xxx раза по три, чтобы он по таймауту не отваливался
раньше, чем diald дозвонится. Полезно также удалить default route на
eth0.

А еще можно так: в diald.rc пишем

ip-up "cp /etc/resolv.conf.connected /etc/resolv.conf"
ip-down "cp /etc/resolv.conf.local /etc/resolv.conf",


где в resolv.conf.connected написано:

search yourdomain
nameserver xxx.xxx.xxx.xxx (я предпочитаю 127.0.0.1)


а в resolv.conf.local написано:

domain yourdomain


Хорошо настроить и использовать локальный DNS-cервер в режиме caching-
only. Его можно поднимать и опускать через ip-up и ip-down как сказано
чуть выше, или через /etc/ppp/ip-up.local и ip-down.local. Как его
настроить: раньше вариант был только один - почитать книжку и
настроить  таки bind. Теперь есть более простой вариант: к редхату
прилагаются  готовые настройки для cache-only bind'а (в пакете
caching-nameserver) или можно установить демон nscd, который умеет
только кешировать DNS-запросы (а также запросы к базе пользователей и
групп).

А еще можно сходить посмотреть на  <http://alexm.here.ru>



5.3.  Есть ли такая пpогpама для Linux, чтобы в сети Netware обойтись
без tcpip - чтобы был только ipx?

Есть mars -- netware server для линукса (эмуляция нетваpевского
сеpвеpа) ipx*, ncp*, nw* (из дистpибутива mars) - клиент.

Посмотрите Caldera Open Linux ( <http://www.caldera.com>) - компания
Caldera владеет исходными текстами Novell и переносит их на Linux.
Netware for Linux -
<http://www.calderasystems.com/support/docs/netware/>.

Не забудьте про IPX-HOWTO:  <http://linuxdoc.org/HOWTO/IPX-HOWTO.html>

5.4.  Пpинтеpы расшаpены чеpез самбу, но после отпечатывания стpаницы
(или задания) пpобpасывается N листов впустую. HP пpокpучивает один
лист, а Epson два. Как лечить?


PRINTCAP / Begin
 my_favourite_printer:\
 lp=/dev/lp1:\
 sd=/var/spool/lpd/my_favourite_printer:\
 sh:lf=/dev/tty10:ff=:
PRINTCAP / End



5.5.  Как подружить Самбу и 1С ?

(Zahar Kiselev, 2:5030/382)

Вот что достаточно сделать чтобы работало:

Взять вот этот патч. Взять ядро 2.0.38 с ftp.kernel.org - он к нему
подходит без исправлений. Прочитать текст внутри самого патча на
предмет команда echo в некие файлики в файловой системе /proc. Патч
применить, командочки вписать куда-нибудь в стартовый скрипт.

Version 8.04.2 - for linux-2.0.37

This patch (and it's updates are available from
<http://www.linux.org.za/filehandle.patch.linux> and
<ftp://ftp.is.co.za/linux/local/kernel/filehandle.patch.linux> The
following patch allows you to increase the maximum number of
files/network sockets openable to any number. The default kernel only
allows 256 filehandles

Если у кого-то руки чешутся использовать ядро 2.2 (а зачем?), то пойти
на dejanews и рыться в архиве ру.линукс за прошедшее лето (1999) - тут
пробегали несколько рецептов переделки лимита в этом ядре, причем один
был весьма корректный, а другой, наиболее понятный для повторения,
проходил 4 августа.

Взять Самбу >=2.0.5a, важно, чтобы она понимала  параметр в smb.conf
"ole lock compatible", установить его в "no". Остальное настроить в
соответствии с любой из многочисленных рекомендаций по установке
Самбы, главное - не запрещать ей работать с блокировками(я знаю одного
человека, который до этого додумался). Запустить и все будет работать.
Чтобы несколько пользователей могли лезть в одну базу - поместить их в
одну юниксовую группу и поставить права на файлы так, чтобы был доступ
на запись для группы. Вобщем-то по-моему все. Остальные настройки
Самбы влияют только на скорость, и то незначительно. Да, если кто-то
решит собирать Самбу из исходников, например чтобы отучить ее от
авторизации через PAM, то могут вылезти две вещи - в зависимости от
версии GCC возможно придется выключить оптимизацию(изничтожить как
минимум из двух мест флажок -O, на скорость работы 1С это не влияет -
проверено), и проверить что написало configure в файле config.h - оно
там любит почему-то некоторые системные типы (ino_t,pid_t,еще штук
пять) переопределять по-своему - после этого у меня вылез интересный
эффект - все файлы на самбовом диске были видны с длинной 4к :)
Признаком этого явления могут служить предупреждения, выдаваемые при
сборке относительно empty declarations. Закомментировать эти
определения - и все собирается нормально.

Если кто-нибудь все вышесказанное повторит и у него не заработает -
можно спросить у меня что еще может влиять. Я на своей машине
конфигурацию системы полностью руками ставил, причем давно, так что
могут быть какие-то мелкие особенности. Например Самба при работе
хочет создать файлики browse.dat, wins.dat - так вот надо поставить
права так, чтобы она могла их читать в том числе и тогда, когда
работает от имени виндового пользователя - иначе могут быть большие
таймауты при выполнении команды net use в виндах, и может не работать
столь любимое многими чайниками "сетевое окружение".


5.6.  PPP сервер/клиент с поддержкой callback, соединение с NT/2000
сервером и прочие проблемы при настройке ppp

Про клиент pppd + callback можно прочесть файл README.cbcp в
дистрибутиве pppd.

Про все остальное - читайте  <http://www.nitek.ru/~igor/pppd/> или
<http://nitek.east.ru/~igor/pppd/>.

5.7.  Имеется сеть из PC + Linux, телефонная линия на Linux-e.
Хотелось бы: с любого рабочего места отправить факс. Какой софт под
Linux для этого существует в природе ?

hylafax - есть все, что в подобных случаях может понадобиться и
сказано, где взять "клиентов" под DOS, Windows, etc. НО! принимать по
одной линии (тел) и факсы и фидо не получится. :( Можно использовать
mgetty, но факс-сервер придется делать самому, как делать можно
подглядеть в hylafax. :)

5.8.  Как настроить PPTP на Linux ?

<http://www.moretonbay.com/vpn/pptp.html>

5.9.  * Как настроить SSL на smtp, pop3?

Нужно найти (например, на freshmeat) программу stunnel. Она
прописывается в конфиге inetd примерно так:

spop3 stream tcp nowait root /usr/sbin/stunnel /usr/sbin/popa3d
ssmtp stream tcp nowait root /usr/sbin/stunnel /usr/sbin/sendmail


Victor Wagner предупреждает о подводном камне:

Желательно в качестве argv[0] запускаемому демону указать что-то
отличное от его имени файла.  А то, если программа собрана с
поддержкой tcpwrappers и используется hosts.allow/hosts.deny для
разрешения доступа без ssl только из локалки, то при совпадении
argv[0] не-ssl-ного и ssl-ного демона, и с SSL будут не пускать откуда
нельзя.

5.10.  Имеется сетка из машин под NT, Win95, и DOS, в ней же есть
Linux с диалапным PPP к провайдеру. Как сделать так, чтобы все
пользователи из локалки могли ходить по интернету?

Нужно настроить маскарадинг. Предположим, что внутренняя локалка имеет
адреса 192.168.0.0 (как и положено по RFC-1918). Тогда :
#!/bin/sh

/sbin/insmod ip_masq_autofw
/sbin/insmod ip_masq_user
/sbin/insmod ip_masq_cuseeme
/sbin/insmod ip_masq_ftp
/sbin/insmod ip_masq_irc
/sbin/insmod ip_masq_mfw
/sbin/insmod ip_masq_portfw
/sbin/insmod ip_masq_quake
/sbin/insmod ip_masq_raudio
/sbin/insmod ip_masq_vdolive

/sbin/ipchains -F

/sbin/ipchains -P forward DENY

/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/16 -d 0.0.0.0/0


Если Linux имеет адрес 192.168.0.1, то этот ip должен быть определен
на хостах внутренней сети как default gateway.

Также полезно прочитать HOWTOs:

Firewall  <http://linuxdoc.org/HOWTO/Firewall-HOWTO.html>

IPCHAINS  <http://linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html>

IP-Masquerade  <http://linuxdoc.org/HOWTO/IP-Masquerade-HOWTO.html>

Русская дока есть на  <http://www.fima.net/masquerade.html>

В 2.0 ядрах вместо ipchains используется ipfwadm, в 2.4 - netfilter,
про который также есть HOWTO на  <http://netfilter.kernlenotes.org>

Если ничего не работает - проверьте, что находится в
/proc/sys/net/ipv4/ip_forward :

$ echo "1" > /proc/sys/net/ipv4/ip_forward


(в Red Hat 6.2 и выше - не забудьте поправить /etc/sysctl.conf)

Утилиты для графического управления firewall-ом : fBuilder
<http://www.innertek.com/> Mason
<http://users.dhp.com/~whisper/mason/>

5.11.  Как настроить socks5 ?

Cофт лежит на  <http://www.socks.nec.com>

Предположим, что у вас есть машина с двумя интерфейсами (PPP/Ethernet
или Ethernet/Ethernet). На внутреннем Ethernet-e адрес : 192.168.0.1.
Самый простой вариант - аутентификация клиентов локалки только по
адресу.

/etc/socks5.conf

permit - - 192.168.0. - - -
set SOCKS5_BINDINTFC 192.168.0.1:1080
set SOCKS5_NOIDENT


ICQ 99/2000 работает. Подробнее 'man socks5', 'man socks5.conf',
<http://www.socks.nec.com>. [там есть FAQ]
5.12.  Как вырезать баннеры из веб-страниц?

Простейший способ - занесение соответствующих хостов - поставщиков
рекламы в /etc/hosts с фиктивными ip адресами.

Более сложный, но и более гибкий - при помощи прокси-сервера Squid.
Чаще всего для фильтрации используют ACL (Access Control List) типа
"url_regex" (squid.conf, раздел ACCESS CONTROLS) типа:

acl Reclama_Banners url_regex ^http://www1\.reklama\.ru/cgi-bin/banner/*
http_access deny Reclama_Banners


Или из файла :

acl Banners url_regex "/etc/squid/banners"
http_access deny Banners


В /etc/squid/banners вписываешь своих врагов (в виде регулярных
выражений), например:

^http://banners\.rambler\.ru/advert/.*\.gif
^http://kulichki.rambler.ru/reklama/banners/.*\.gif
^http://www.*\.yandex\.ru/cgi-bin/banner/*
^http://www1\.reklama\.ru/cgi-bin/banner/*
^http://www\.reklama\.ru/cgi-bin/banner/*
^http://www\.reklama\.ru/cgi-bin/href/*
^http://www\.100mb\.net/images/ban/banner.*\.gif
^http://www\.bizlink\.ru/cgi-bin/irads\.cgi.*
^http://www\.linkexchange\.ru/cgi-bin/rle\.cgi
^http://www\.linkexchange\.ru/users/.*/goto\.map
^http://www\.netcq\.com/banners/banner\.gif
^http://1000\.stars\.ru/cgi-bin/1000\.cgi


Еще лучше с задачей фильтрации справляется специальная
программа-фильтр squidguard  <http://www.squidguard.org>, ставится в
дополнение к squid.

Более полный список баннеродержателей можно получить на
<http://pail.pu.ru/>

Можно сделать Transparent Proxy <http://www.lexa.ru/lexa/transparent-
proxy.html>

Можно поставить редиректор squirm  <http://www.senet.com.au/squirm/>,
его задача - подменять одни URLs другими.

6.  X Window

Идеология иксов и многие базовые вещи без привязки к Window Manager-ам
и интегрированным средам хорошо описаны на
<http://ep2-ts2.inp.nsk.su/lecture/>

6.1.  Как заставить pаботать в иксах <cупер-новую карточку> ?

Поискать название вашей карточки в  <http://www.xfree86.org/FAQ/> или
/usr/X11R6/lib/X11/doc/

Взять последнюю версию иксов, собранную производителем вашего
дистрибутива, или, если производитель ее еще не собрал, то на
<ftp://ftp.xfree86.org>. Стоит сперва ограничиться _только_сервером_
под эту самую карточку, и, как правило, лучше на этом и остановиться
(вот если он работает, но ищет конфиги где-нибудь не там, где они у
вас лежат - можно подумать о замене всего остального.) Намек: если вы
не видите сервера с именем вашей карты - проверьте, не поддерживает ли
ее сервер SVGA. Он не так прост, как можно подумать по названию. В
XFree 4 остался единственный сервер, а поддержка конкретных карточек
вынесена в подгружаемые модули. Поэтому (теоретически), если у вас
четвертые иксы, то нужно найти только модуль для вашей карточки.

6.2.  Как рассчитать Modeline под требуемую частоту развертки?

По идее, если вы правильно указали максимальные возможности вашего
монитора в утилите настройки иксов (xf86config, XF86Setup,
Xconfigurator), то эта утилита должна сама прописать в файле
конфигурации ModeLine, выжимающий максимум из вашего монитора. Если вы
не хотите полагаться на ее интеллект, то можно посмотреть готовые
стандартные Modeline через strings `which xf86setup` и найти
подходящую. Если по каким-то причинам с этой ModeLine возникают
проблемы, то воспользуйтесь советом от Alexei Dets
<mailto:dets@china.formoza.ru>:

Для начала находите Modeline с требуемым вам разрешением, но не
устраивающей вас частотой, т.е. слишком низкой, например. Найти такую
строчку можно, например, в XF86Config, сгенеренным инсталлятором
дистрибутива.

Проверяете работоспособность данного видеорежима на вашем мониторе.
Если видеорежим устанавливается, пусть даже с некоторым смещением
картинки от центра экрана, чуть-чуть другим размером и т.п. можно идти
дальше. Иначе рекомендуется выбрать другую Modeline или подогнать эту
при помощи xvidtune. Скажем, у нас имеется строчка:

Modeline "640x480"     25.175 640  664  760  800   480  491  493  525


Какая здесь сейчас установлена частота развертки?

Ответ: 25175000/800/525=59,9 Гц.

Т.е. необходимо первую цифру, умноженную на миллион, разделить на
пятую и на последнюю.  Соответственно, как получить требуемые нам,
например, 120 Гц?

Ответ: 800x525x120/1000000=50,4

Соответственно, результирующая строчка:

Modeline "640x480"     50.4 640  664  760  800   480  491  493  525


Можете пробовать :-) Скорее всего, картинка будет неправильно
центрирована и будет иметь неверный размер, но это легко лечится при
помощи xvidtune. Полученная при помощи него строчка будет уже
окончательной. Владельцы современных мониторов могут просто подстроить
размеры и центровку из меню :-)

Примечание: все данное "шаманство" подробно объяснено в
/usr/X11R6/lib/X11/doc/VideoModes.doc или на русском в
<http://knot.pu.ru/faq/xfaq.html>.

Примечание 2 от Alex Kanavin: в XFree86 4.x произошли некоторые
изменения.  Во-первых, в X cервере теперь определен набор стандартных
VESA режимов, из которых подбирается оптимальный, исходя из параметров
конфигурационного файла HorizSync и VertRefresh. То есть очень
возможно, что вы получите наилучший результат, вовсе не прописывая
ModeLine в конфиге, но только если интересующая вас частота развертки
- одна из 60, 70, 75, 85 Hz. Имена у этих режимов традиционные -
"640x480" и т.д., вплоть до "1920x1444" :-)

Во-вторых, в будущем X сервер сможет получать информацию о
возможностях монитора непосредственно от него самого через VESA DDC.
Для некоторых чипсетов она печатается при загрузке сервера, но пока не
используется. Неясно также, как можно будет выбирать из режимов с
одинаковым разрешением, не полагаясь на интеллект сервера.

6.3.  Как переключать глубину цвета, не выходя из иксов?

При работающем X сервере уже не переключиться, но можно запустить
рядышком еще один - если это XFree, а не какой-нибудь коммерческий
сервер (через startx -- :1 -bpp 8 или добавив аналогичную строку в
/etc/X11/xdm/Xserver, если используется xdm). В XFree 4 глубину цвета
можно переключать на лету через DGA2, но подробности пока неизвестны.

6.4.  * Разница между иксовыми сервером и клиентом

(Alec Voropay <mailto:a.voropay@globalone.ru>, Alex Kanavin, Alexander
Pevzner)

В системе X Window понятия "клиент" и "сервер" кажутся перепутанными.
В действительности, никакого противоречия тут нет.

Весь вопрос лишь в том, что такое "cервер" ? Возмем например print-
server или file-server. Это какое-то устройство для коллективного
использования "ресурса". Например, единственный print-server на
организацию.

Так вот когда-то давно (лет 30 назад ;) комплект из цветного дисплея и
памяти на 256К был страшно дорогой игрушкой :-) и обслуживал кучу
программ. Это и был display-server или, в комплекте с мышью и
клавиатурой, X-server.

Таким образом, X-server - это программа для управления
Video-подсистемой, мышью и клавиатурой и выполняющая команды типа
"нарисовать красную точку" или "вывести букву А фонтом Arial".
Существует куча X-Server-ов : cвободные XFree86, коммерческие
AcceleratedX, под MS Windows : eXceed, X-Win, под VAX VMS и даже в
виде отдельных железок c дисплеем : NCD, Tatung (их еще называют X-
Terminal).

Таким образом, пользовательские программы, например Netscape - это
"X-клиенты", которые обращаются к "X-серверу" для отображения и ввода.
Связь между X-сервером и X-клиентом может быть по TCP/IP, по Unix-
Socket, по IPX или даже по COM-порту. Поддержка конкретных способов
связи зависит от реализации серверов и клиентских библиотек, например
XFree знает только про первые два способа и еще DECNet.

Всякая X-программа ("X-клиент") сначала должна уcтановить соединение с
X-сервером. Его местонахождение X-клиент узнает через переменную
окружения DISPLAY= или ключ в командной строке. Один X-сервер может
обслуживать множество программ, работающих на разных хостах. Как
наиболее простой случай, все они, и X-сервер и Х-программы работают на
одном и том же компьютере.

Обычные, "консольные" (алфавитно-цифровые) программы тоже можно
запустить под X, через эмулятор терминала (например xterm, rxvt, eterm
e.t.c.).  Это специальная X-программа, которая с одной стороны
работает как эмулятор терминала:), отрисовывает символы и отрабатывает
ESC-последовательности, а с другой стороны представляется как обычный
терминальный порт (через псевдотерминалы ptyXX).

Cледует заметить, что с точки зрения системы нет разницы между
иксовыми и обычными программами. И те и другие используют один и тот
же набор системных вызовов. Разница же упрятана в библиотеку XLib, с
которой слинкованы иксовые программы, - именно она устанавливает связь
с X сервером, посылает ему команды, принимает ответы итд. Кроме того,
некоторые программы (emacs, например) могут работать как через X
сервер, так и без него (через обычный терминал).

6.5.  Возможно ли одновpеменно pаботать в full screen и в X Window и
пеpеключаться между ними? Если да, то как?

Да, Ctrl-Alt-F# (из иксов в текстовый режим) или Alt-F# (обратно,
только нужно найти первую свободную от getty консоль, обычно седьмую).

6.6.  Как установить глубину цвета по умолчанию?

man XF86Config на предмет DefaultColorDepth

6.7.  * Как сделать так, чтобы иксы автоматически стартовали при
загрузке компьютера? (и регистрация пользователей осуществлялась бы
уже в них?) Наоборот, как отключить такую загрузку и получить обычный
текстовый режим? Как входить таким же (графическим) образом в
удаленные системы?

Нужно запустить (запретить запуск) Display Manager, например xdm
(поставляется с cамими иксами), gdm (из GNOME), kdm (из KDE). Он может
запускаться из rc скриптов или как сервис SysV, но чаще всего его
прописывают в /etc/inittab:

x:5:respawn:/etc/X11/xdm -nodaemon


Поэтому там же нужно поменять runlevel по умолчанию:

id:3:initdefault:


В Red Hat display manager грузится на пятом runlevel, а обычный
"текстовый" runlevel - 3, в других дистрибутивах это может быть не
так. Изучите содержимое /etc/inittab, прочтите man inittab и
действуйте по обстоятельствам.

Display manager можно использовать не только для запуска и управления

Секция 3 из 4 - Предыдущая - Следующая

Вернуться в раздел "Семейство UNIX" - Обсудить эту статью на Форуме
Главная - Поиск по сайту - О проекте - Форум - Обратная связь

© faqs.org.ru