цКЮБМЮЪ ЯРПЮМХЖЮ


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : FAQ Robot                            2:5049/1.118   10 Feb 2001  17:07:14
 To : All
 Subject : FAQ - третья часть из четырех
 -------------------------------------------------------------------------------- 
 
   4.3.  Шак изменить максимальное количество открытых файлов?
 
   В ядрах 2.2.10 и более новых:
 
   echo 30000 > /proc/sys/fs/file-max
   echo 30000 > /proc/sys/fs/inode-max
   и сделать ulimit -n 2000 перед запуском нужного демона. Сифры
   подбираются под задачу.
 
   (Yuriy Kaminsky 2:5020/517.21)
 
   Ы не забыть, что если программа использует select, то будет
   большой-большой облом. Вплоть до затирания стека и падения (at least
   glibc-2.0 - см. /usr/include/gnu/types.h - и иже с ним; исправления
 
   #define __FD_SETSIZE    1024
   на нужное число и пересборки  всех  приложений и  библиотек , которые
   могут заюзать select для дескрипторов выше 1024 будет достаточно
   [т.е., скажем, если X'овому приложению нужно открывать более 1024
   файлов, то необходимо  пересобирать Xlib и Xt как минимум]; ах, да,
   саму libc пересобирать, вроде, не нужно).
 
   4.4.  ╗одскажите, pls, www/ftp где можно получить доку по
   администрированию Linux'а.
 
   <http://www.linuxdoc.org> Hа русском языке - посмотрите на
   <http://linux-ve.chat.ru>
 
   4.5.  Q/A: development site для libc, binutils, ld.so
 
   <ftp://ftp.yggdrasil.com/private/hjl> - если кому-то понадобилась
   тухлятина. В частности, именно там надо искать libc5 последних версий)
   Сейчас все это лежит на  <ftp://ftp.kernel.org/pub/linux/software/> и
   его локальных миррорах. [а теперь все дружно:
   <ftp://ftp.ru.kernel.org> - У-Р-Ъ-Т-Ы!  ╗оскольку не миррорят .bz2
   архивы, а многое из этого в .gz не выкладывается. Ребята - может, мне
   вам винт на несчастный гигабайт подкинуть, на бедность? Взялись быть
   русским миррором - так делайте это как следует. Hе можете -
   откажитесь, по крайней мере, майнтейнеры не будут ошибочно уверены,
   что в России нормальный миррор. (Alex Korchmar) Тобавка от Alex
   Kanavin для  <ftp://ftp.chg.ru>: если уж вы миррорите, например,
   redhat,  то делайте это целиком и каждый день, а не раз в месяц
   кусочками. Я то апдейты  у вас появляются через месяц после того, как
   они были выложены на  ftp.redhat.com, да и то - только к последней
   версии. Hу и кому нужен такой  "официальный" mirror? ]
 
   4.6.  Шак загружается система?
 
   Ъчень коротко, подробнее можно прочесть в вышеназванных источниках:
   ядро монтирует корневую файловую систему, и запускает первый процесс
   init, разыскав его исполняемый файл в нескольких стандартных местах.
   Этот процесс читает свой конфигурационный файл /etc/inittab (man
   inittab) и запускает все остальные процессы согласно инструкциям из
   этого файла. Ъбычно в inittab прописывается запуск процессов *getty,
   управляющих терминалами, виртуальными консолями и последовательными
   линиями (то есть именно *getty ответственны за запуск login
   (сравнивающий имя и пароль, указанные пользователем, с тем, что
   прописано в /etc/passwd и в случае успеха запускающий соотв. shell),
   pppd, ifcico и т.д., что именно запускается и в каком случае - зависит
   от конкретного getty). Тля виртуальных консолей обычно используется
   mingetty, для модемов - mgetty.
 
   Шроме того, здесь же прописываются скрипты, запускающиеся на различных
   т.н.  "уровнях выполнения", из которых в свою очередь запускаются все
   остальные системные сервисы, осуществляется настройка сети, проверка
   файловой системы и т.д. Существует два подхода к организации этих
   уровней и скриптов: BSD и SysV. Ъба они описаны в книжке Э. Hемет (см.
   выше), а про 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'е - кто угодно. Hехоpошо это
   как-то. Щожет быть, есть путь это испpавить?
 
   Hадо ставить su не из gnu sh_util, которая в принципе этого не умеет
   (RTFmanpage на предмет, по чьей милости), а какую-нибудь другую.  Hо
   ежели 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овать на
   ходу.  Hап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  Hужно, что бы было
 
   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-файлов. Hаверное, все
   известные программы его используют, но все же.
 
   В-третьих, они должны видеть локи друг друга. То есть, в их
   конфигурации должен быть указан один и тот же каталог для создания
   локов, они должны использовать один и тот же формат имен файлов
   (обычно LCK..<имя файла порта>), один и тот же формат самих файлов
   (обычно десять символов -- PID программы в ASCII), и иметь привилегии,
   достаточные для создания и удаления своих лок-файлов.
 
   4.12.  В чем pазница между /dev/cua* и /dev/ttyS*?
 
   Hе надо пользовать 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.  Hепосредственно редактировать стартовые скрипты не нужно.
   Шроме того, этот параметр и 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.  Hадо заставить 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) так долго думает при старте?
 
   Hадо заглянyть в директорию /var/log и посмотреть, нет ли в логах
   сообщений от этой программы.  Тля sendmail - 99% воплей пpо долгое
   думанье объясняется попыткой pезолвинга адpесов локальных интеpфейсов.
   Hадо эти адpеса занести в /etc/hosts.  Яльтеpнативный ваpиант - O
   DontProbeInterfaces=True в /etc/sendmail.cf.
 
   4.17.  Я чего бы такого крутого предпринять по части безопасности
   системы?
 
   Тля начала прочтите /usr/doc/HOWTO/Security-HOWTO.
 
   Hа  <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. Ъбычно там перечислены только
 
  * Message split, to be continued *
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 + Gateway NEWS (http://in.kazan.ru) <=> FidoNet (2:5049/1)
 + of Kazan Physical-Technical Institute
 + ( http://kfti.knc.ru ; http://kazinfo.knc.ru )
 + 
 + User email address:   FAQ.Robot@p21.f155.n5030.z2.fidonet.org
 + User FidoNet address: 2:5030/155.21.
 --- NewsGate+ v0.8Р3
  * Origin: Kazan Physical-Technical Institute, Gateway NEWS  (2:5049/1.118)
 
 

бЕПМСРЭЯЪ Й ЯОХЯЙС РЕЛ, ЯНПРХПНБЮММШУ ОН: БНГПЮЯРЮМХЕ ДЮРШ  СЛЕМЭЬЕМХЕ ДЮРШ  РЕЛЮ  ЮБРНП 

 рЕЛЮ:    юБРНП:    дЮРЮ:  
 FAQ - третья часть из четырех   FAQ Robot   10 Feb 2001 17:07:14 
юПУХБМНЕ /ru.linux/3341057415cf.html, НЖЕМЙЮ 2 ХГ 5, ЦНКНЯНБ 10
ъМДЕЙЯ.лЕРПХЙЮ
Valid HTML 4.01 Transitional