Секция 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 - Предыдущая - Следующая
© faqs.org.ru