Я знаю единственный дистрибутив Linux, который можно было
использовать сразу, не ковыряясь в его конфиг-файлах, в пользовательском окружении, и т.п. - Slackware 1.0 образца 1994 года.
Все последующие релизы Slackware, а тем паче RedHat перед употреблением требуют хирургического вмешательства.
fstab: Пропал диск C:, где дискетки A:, B:
Проблемы:
mkdir /a mkdir /b mkdir /cdrom mkdir /dos mkdir /dosd
/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
Проблема:
После запуска X, startx занимает один виртуальный терминал, и оставляет за собой два sleeped процесса.
Лечение: В файле /usr/bin/X11/startx исправить строчку
xinit $clientargs -- $serverargs на exec xinit $clientargs -- $serverargs &
Проблема: RedHat host по умолчанию не дозволяет печатать на своем принтере удаленным lpr клиентам.
Лечение: (вообще-то так оно и должно быть - security)
В файл /etc/hosts.lpd вписать все хосты, которым дозволено печатать.
Проблема: PC с клиентами NFS не получают доступ к сетевому диску.
Лечение: то, что нужно вписать в /etc/exports хотя-бы такую строчку
/ (rw)
daemon rpc.mountd daemon rpc.nfsd + daemon rpc.pcnfsd echo
Проблема: 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 русские буквы не калечил
Проблема: перед тем, как вывести приглашение login, стирается экран. Кстати, из-за этого сбрасывается русский алфавит и перекодировку koi2alt приходилось восстанавливать ручками
echo -e '\033(K'
Лечение: В /etc/inittab поправить строчки запуска getty (добавить "--noclear")
1:12345:respawn:/sbin/mingetty --noclear tty1 . . .
Проблема:
Приглашение командного интерпретатора bash во первых невразумительно, а во вторых в разных окошках оно разное.
Лечение: Приглашение задается переменной окружения PS1. Наивен, кто считает, что достаточно установить ее в своем пользовательском .profile . Увы, следы кривого окружения надо выкорчевывать с корнем.
В файлах /etc/profile /etc/skel/.bashrc $HOME/.profile добавьте/исправьте команду
PS1='\u@tty2:\w/\$ ' export PS1
Проблема: Выставляется безумное значение переменной PS1.
Не отрабатывается пользовательский .profile
Лечение: Удалить в домашнем каталоге файлы
.bash_logout .bash_profile
PS1='\u@tty2:\w/\$ ' export PS1
crontab root'а лежит у RedHat в нестандартном месте - /etc/crontab . Может быть для БОЛЬШОГО много пользовательского internet-сервера и нужен такой огромный список планируемых работ, но все равно, рекомендую на него посмотреть, сократить частоту запуска раз эдак в 10, а кое-что совсем закомментировать.
Конкретно: сократить частоту atrun
0,10,20,30,40,50 * * * * root /usr/sbin/atrun
увеличить размер при котором log-файл удаляется с 16 до 256kb
Если используется uucp то добавить чистку uucp-ишых log-файлов.
Проблема: В Redhat Linux ежедневно пускается команда updatedb, создающая индекс для locate. Однако в этот индекс попадают файлы только
из корневого каталога.
Лечение: исправить ключи команды updatedb в файле /etc/cron.daily/updatedb.cron
с --localpaths='' --netpaths='/' на --localpaths='/' --netpaths=''
Проблема: Поставляемый с 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 и перекомпилировать.
Штатная поставка 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
По умолчанию все сервисы в /etc/inetd.conf открыты.
Рекомендуется ограничить доступ к своей машине, оставив его только доверенным хостам и своей локальной сети.
Перекрыть доступ снаружи на узловую машину: В файл /etc/hosts.deny вставить строчку
ALL : ALL
ALL : \ 127.0.0.1 ALL : \ 195.0.1.0/255.255.255.0
А какой версии sendmail на вашей машине?
Кстати CERT советует ставить Sendmail 8.8.5. Более ранние версии позволяют удаленно выполнять любые команды от имени суперпользователя на вашей машине.
httpd: дырявые cgi-скрипты
Проблема: при начальной загрузке запускается большое количество
излишних сервисов (что особенно нервирует на домашних standalone машинах)
Лечение: Зайти в каталог /etc/rc.d/rc3.d и переименовать "лишние" файлы:
mv S45pcmcia s45pcmcia . . .
Проблема: Если пытаться устанавливать статический роутинг сетей через "control-panel -- Network" - то не работает.
Лечение: Либо добавить команды
route add -net network.address gw your-host в файл /etc/rc.d/rc.local
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
Проблема: заморочки с ядром. С инсталляции рабочее ядро
кладется в /boot/vmlinuz и /etc/lilo.conf затачивается под него, а при перекомпиляции, по команде make zlilo ядро забрасывается в /vmlinuz
Лечение: Поправить /etc/lilo.conf ручками, и сказать lilo
Проблема: На сильно загруженных системах начинается игра в нехватку:
cannot fork try again, no more filedescriptors, no more pty...
/usr/src/linux/include/linux/tty.h #define NR_PTYS 256 /* этот параметр трогать не рекомендуется */
/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
Нормально можно поставить RedHat с CD или по NFS. А вот с локального жесткого диска...
#$%^#$&&^)#%$@$&^*%%^
Короче, я-то поставил. А Вы?
Максим Мошков. moshkow@ipsun.ras.ru