Server for Information Technologies
Сервер поддерживается
Центром Информационных Технологий
(095) 932-9212, 932-9213, 939-0783
E-mail: info@citforum.ru
Сервер Информационных Технологий содержит море(!) аналитической информации

Что поправить в свеже-проинсталлированном Linux

Я знаю единственный дистрибутив Linux, который можно было использовать сразу, не ковыряясь в его конфиг-файлах, в пользовательском окружении, и т.п. - Slackware 1.0 образца 1994 года.
Все последующие релизы Slackware, а тем паче RedHat перед употреблением требуют хирургического вмешательства.

     fstab: Пропал диск C:, где дискетки A:, B:

Проблемы:

  1. Как работать с досовскими дискетами? RedHat предполагает, что настоящий unixоид пользуется дискетками формата ext2, и не встречается с FAT-овскими досовскими флоппи.
  2. Не подключаются досовские разделы жесткого диска. Потому что инсталлятор "забыл" сделать mount-point для них.
  3. Что делать с CDROM-ом?

Лечение: Создать соответствующие каталоги
 mkdir /a
 mkdir /b
 mkdir /cdrom
 mkdir /dos
 mkdir /dosd

В файле /etc/fstab добавить/исправить строчки:
/dev/fd0   /a      msdos   defaults,user,umask=000,noauto         0 0
/dev/fd1   /b      msdos   defaults,user,umask=000,noauto         0 0
/dev/cdrom /cdrom  iso9660 defaults,user,ro,exec,dev,suid,noauto  0 0
/dev/hda1  /dos    msdos   defaults,user,umask=000                0 0

startx: Экономим один виртуальный терминал и немного памяти

Проблема: После запуска X, startx занимает один виртуальный терминал, и оставляет за собой два sleeped процесса.
Лечение: В файле /usr/bin/X11/startx исправить строчку

 xinit $clientargs -- $serverargs
        на
exec xinit $clientargs -- $serverargs &

lpd: удаленная печать - permition denied

Проблема: RedHat host по умолчанию не дозволяет печатать на своем принтере удаленным lpr клиентам.
Лечение: (вообще-то так оно и должно быть - security) В файл /etc/hosts.lpd вписать все хосты, которым дозволено печатать.

RedHat: отсутствует pcnfsd

Проблема: PC с клиентами NFS не получают доступ к сетевому диску.
Лечение: то, что нужно вписать в /etc/exports хотя-бы такую строчку

/ (rw)

это, полагаю, особого удивления вызывать не должно. Но, в RedHat не входит демон pcnfsd !
Скомпилируйте pcnfsd из исходников, или возьмите его из RedHatовского Contrib'а или из Slackware, и добавьте запуск rpc.pcnfsd в файл активизации nfsserver'а /etc/rc.d/rc3.d/S60nfs
        daemon rpc.mountd
        daemon rpc.nfsd
+       daemon rpc.pcnfsd
        echo

profile: Проблемы с кирилицей из-за кривого окружения

Проблема: vi рисует русские буквы восьмиричными кодами. Less рисует русские буквы шестнадцатеричными кодами. Bash не позволяет ввести в командной строке русских букв и мерзко пищит при этом.
Лечение: В /etc/profile добавьте команды

 LC_CTYPE=iso_8859_1  export LC_CTYPE  # Это спасает русские буквы в VI
LC_LOCALE=iso_8859_1  export LC_LOCALE # Это спасает русские буквы в VI
LESS="-e -r"          export LESS      # Чтоб less русские буквы не калечил

/etc/inittab: RedHat стирает экран перед выводом Login:

Проблема: перед тем, как вывести приглашение login, стирается экран. Кстати, из-за этого сбрасывается русский алфавит и перекодировку koi2alt приходилось восстанавливать ручками echo -e '\033(K'
Лечение: В /etc/inittab поправить строчки запуска getty (добавить "--noclear")

1:12345:respawn:/sbin/mingetty --noclear tty1
  . . .

profile: Как расправиться с неудобным приглашением bash

Проблема: Приглашение командного интерпретатора bash во первых невразумительно, а во вторых в разных окошках оно разное.
Лечение: Приглашение задается переменной окружения PS1. Наивен, кто считает, что достаточно установить ее в своем пользовательском .profile . Увы, следы кривого окружения надо выкорчевывать с корнем.
В файлах /etc/profile /etc/skel/.bashrc $HOME/.profile добавьте/исправьте команду

PS1='\u@tty2:\w/\$ ' export PS1

Файл /etc/bashrc уничтожьте. Все что было в нем разумного (IMHO - ничего в нем разумного нет) верните на свое законное место в /etc/profile

/etc/skel: Лажовое пользовательское окружение

Проблема: Выставляется безумное значение переменной PS1. Не отрабатывается пользовательский .profile
Лечение: Удалить в домашнем каталоге файлы

 .bash_logout
 .bash_profile

Исправить файл .bashrc на
PS1='\u@tty2:\w/\$ ' export PS1

Чтобы прекратить "осчастливливание" всех своих юзеров, проделать ту же операцию в каталоге /etc/skel

Начало работы в системе

crontab: масса излишних работ

crontab root'а лежит у RedHat в нестандартном месте - /etc/crontab . Может быть для БОЛЬШОГО много пользовательского internet-сервера и нужен такой огромный список планируемых работ, но все равно, рекомендую на него посмотреть, сократить частоту запуска раз эдак в 10, а кое-что совсем закомментировать.
Конкретно: сократить частоту atrun

0,10,20,30,40,50 * * * * root /usr/sbin/atrun

Trim log files

увеличить размер при котором log-файл удаляется с 16 до 256kb
Если используется uucp то добавить чистку uucp-ишых log-файлов.

Проблема: В Redhat Linux ежедневно пускается команда updatedb, создающая индекс для locate. Однако в этот индекс попадают файлы только из корневого каталога.
Лечение: исправить ключи команды updatedb в файле /etc/cron.daily/updatedb.cron

    с
 --localpaths='' --netpaths='/'
    на
 --localpaths='/' --netpaths=''

Конфигурация XDM

Проблема: Поставляемый с RedHat файл Xsession неработоспособен.
Лечение: Поправьте в /etc/X11/xdm/Xsession нижний фрагмент текста на примерно такой:

################## moshkow #############################
sysprofile=/etc/profile
profile=$HOME/.profile
[ -f "$sysprofile" ] && . $sysprofile
[ -f "$profile"    ] && . $profile
[ -f "$resources" ] || resources=$HOME/.Xdefaults
[ -f "$resources" ] || resources=$HOME/.Xresources
[ -f "$startup"   ] || startup=$HOME/.xinitrc
[ -f "$startup"   ] || startup=$HOME/.xsession
[ -f "$startup"   ] || startup=/usr/lib/X11/xinit/xinitrc
if [ -f "$startup" ]; then
        xrdb -load "$resources"
        exec sh "$startup"
fi
################## moshkow #############################

Разное. Нерешенные проблемы

Команда man по завершении просмотра стирает экран с мануалом. Называется "а у тебя ведь хорошая память? Isn't it?"

После перекомпиляции ядра ВСЕ модули, пришедшие с дистрибутивом перестают работать. Их остается только уничтожить. Но iBCS уничтожать жалко - а он скомпилирован почему-то под версию ядра 2.0.13 вместо 2.0.18. Приходится искать исходник iBCS и перекомпилировать.

Security:

Штатная поставка sendmail 8.7.5 имеет security hole - локальный юзер имеет возможность получить root права.

Штатная поставка sendmail 8.7.5 неработоспособна вообще - примерно четверть всех писем не доставляется по причине delivery errors

Единственный метод лечения - upgrade до версии 8.8.5, у которого этот bug залечен

Поставляемый с RedHat 3.0 mount имеет security hole - локальный юзер имеет возможность получить root права.

Произведите update на исправленную версию, ftp://ftp.redhat.com/pub/redhat/redhat-3.0.3/i386/updates/RPMS/mount-2.5k-1.i386.rpm или снимите setuid-бит с команд mount/umount

#   chmod u-s /bin/mount /bin/umount

Конфигурирование tcp-wrapper'а

По умолчанию все сервисы в /etc/inetd.conf открыты. Рекомендуется ограничить доступ к своей машине, оставив его только доверенным хостам и своей локальной сети.
Перекрыть доступ снаружи на узловую машину: В файл /etc/hosts.deny вставить строчку

ALL : ALL

Открыть доступ на узловую машину с машин локальной сети 195.0.1.0
В файл /etc/hosts.allow вставить строчки
ALL : \
127.0.0.1
ALL : \
195.0.1.0/255.255.255.0

А какой версии sendmail на вашей машине?
Кстати CERT советует ставить Sendmail 8.8.5. Более ранние версии позволяют удаленно выполнять любые команды от имени суперпользователя на вашей машине.

     httpd: дырявые cgi-скрипты

Штатная поставка Apach-httpd имеет cgi-скрипт /home/httpd/cgi-bin/phf, который позволяет выполнять произвольные команды на вашей машине от имени юзера nobody

/etc/rc.d : Лишние команды при начальной загрузке

Проблема: при начальной загрузке запускается большое количество излишних сервисов (что особенно нервирует на домашних standalone машинах)
Лечение: Зайти в каталог /etc/rc.d/rc3.d и переименовать "лишние" файлы:

mv S45pcmcia s45pcmcia
 . . .

/etc/sysconfig/network-scripts/ : Некорректные установки статического роутинга

Проблема: Если пытаться устанавливать статический роутинг сетей через "control-panel -- Network" - то не работает.
Лечение: Либо добавить команды

route add -net network.address gw your-host
  в файл /etc/rc.d/rc.local

Либо исправить в конце /etc/sysconfig/network-scripts/ifup-routes
grep "$1 " /etc/sysconfig/static-routes | while read device args; do
    route add -$args $device
done

на
grep "$1 " /etc/sysconfig/static-routes | while read device args; do
    route add -$args # $device
                     ##########
done

Расположение ядра /vmlinuz или /boot/vmlinuz ?

Проблема: заморочки с ядром. С инсталляции рабочее ядро кладется в /boot/vmlinuz и /etc/lilo.conf затачивается под него, а при перекомпиляции, по команде make zlilo ядро забрасывается в /vmlinuz
Лечение: Поправить /etc/lilo.conf ручками, и сказать lilo

Настраиваемые параметры ядра

Проблема: На сильно загруженных системах начинается игра в нехватку:

cannot fork try again, no more filedescriptors, no more pty...

Лечение: Увеличьте настраиваемые параметры и перекомпилируйте ядро.
Число псевдотерминалов (а следовательно число xterm'ов, телнетов...)
/usr/src/linux/include/linux/tty.h
#define NR_PTYS   256 /* этот параметр трогать не рекомендуется */

И не забудьте mknod для большего числа pty
Максимальное число процессов
/usr/src/linux/include/linux/tasks.h
#define NR_TASKS        512
#define MIN_TASKS_LEFT_FOR_ROOT 4

Число файлдескрипторов и открытых файлов.
/usr/src/linux/include/linux/fs.h
#define NR_OPEN    256
#define NR_FILE   1024
/usr/src/linux/include/linux/limits.h:
#define NR_OPEN    256

Update RedHat 3.0.3 --> 4.0

Нормально можно поставить RedHat с CD или по NFS. А вот с локального жесткого диска...

 #$%^#$&&^)#%$@$&^*%%^

а еще он стер мой файл /etc/hosts, /etc/httpd/conf/*, переименовал /etc/sendmail.cf, /etc/lilo.conf

Короче, я-то поставил. А Вы?



Присылайте свои советы/замечания/дополнения по поводу всего вышесказанного

Максим Мошков. moshkow@ipsun.ras.ru


Comments: info@citmgu.ru
Copyright © CIT