Текст будет пополняться.
Я знаю единственный дистрибутив Linux, который можно было
использовать сразу, не ковыряясь в его конфиг-файлах, в
пользовательском окружении, и т.п. - Slackware 1.0 образца 1994
года.
Все последующие релизы Slackware, а тем паче RedHat перед
употреблением требуют хирургического вмешательства.
Отработать локальный скрипт Expect'ом удаленно через ssh
Скрипт читается локально, и выполняется построчно
#!/usr/bin/expect -f
spawn ssh root@server
expect "root\@server\:\~\# "
set infile [open "myfile.sh" r]
while { [gets $infile line] >= 0 } {
send "$line\n"
expect "root\@server\:\~\# "
}
close $infile
Как пропустить ALT-клавиши в RDP-окно (и все остальные)
Заголовок окна -> Advanced -> Special window settings ->
Workarounds -> Block global shortcuts -> Force temporarily -> Ок
Как автоматически включать NAT при активации WLAN-интерфейса
/etc/sysconfig/network/ifcfg-wlan0 в этот файл добавить
POST_UP_SCRIPT=wlan_nat_up
/etc/sysconfig/network/scripts/wlan_nat_up :
#!/bin/sh
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -j MASQUERADE
service dhcpd restart
# в DHCPD назначить себя в качестве default-router
Управления яркостью в HP elitebook 8740w
Origin: http://www.linlap.com/wiki/hp+elitebook+8740w
/sys/devices/platform/hp-wmi/als
To prevent kacpid consuming 100% CPU on one thread, had to upgrade to kernel
2.6.35-020635rc6-generic and add the following to /etc/rc.local:
echo disable > /sys/firmware/acpi/interrupts/gpe01
HOWTO get s2ram working, is obsolete since kernel-2.6.37 (gentoo).
to get suspend to ram working, you can try to unload the
xhci_hcd (usb3 driver) module before suspending.
rmmod xhci_hcd
s2ram -f
modprobe xhci_hcd
Логин по сканеру отпечатков (finger print, fprint)
Необходимы пакеты: libfprint0 - поддержка FP,
fprint-demo - тест работоспособности
libpam-fprint(убунта), pam_fp(openSUSE) - pam-модуль для FP-авторизации
yast2-fingerprint-reader
bioapi ?
zypper install fprint-demo pam_fp libfprint0 yast2-fingerprint-reader
В файле /etc/pam.d/common-auth
auth sufficient pam_fprint.so
auth [success=1 default=ignore] pam_unix.so nullok_secure
pam_fprint_enroll --enroll-finger 7 # сканировать правый указательный
Как обеспечить туннелирование X11 при ssh-логине
server: /etc/ssh/sshd_config
X11Forwarding yes
client: /etc/ssh/ssh_config
ForwardX11 yes
А если это не помогает, и в syslog'е "Failed to allocate internet-domain X11"
Значит sshd запутался в IPv6, и sshd надо запускать с ключом -4
server: /etc/sysconfig/sshd
SSHD_OPTS="-4"
Как проверить скорость сети
На одной машине запускаем сервер с максимальными настройками
iperf -s -m -w 1M -l 24K -M 100000
На другой - клиента изменяя размер пакета (-M) (-t 10 = на 10 минут)
iperf -c server.name -m -w 1M -l 24K -M 1500
Как перевернуть экран (не работает?)
Статически:
Section "Device"
BoardName "GeForce Go 7900 GS"
Option "Rotate" "Inverted"
. . .
Динамически:
Section "Device"
BoardName "GeForce Go 7900 GS"
Option "RandRRotation" "on"
. . .
затем выполнять команды
xrandr -o inverted
xrandr -o normal
xset b off
xset b on
иногда помогает
setterm -bfreq 10
иногда помогает
rmmod pcspk
Как отключить автозагрузку апплетов гномовской сессии
ls -al /usr/share/gnome/autostart/
Как отключить dma при загрузке ядра
libata.dma=0 в параметры ядра при загрузке
Чтобы экран терминала не гас
setterm -blank 0 -powerdown 0 -powersave off
Чтобы mandatory locking работал
1. файловая система должна быть смонтирована с опцией mand
2. файл должен иметь sgid бит и не иметь group-exec бита
(chmod g+s,g-x filename)
при соблюдении обоих условий другие процессы не смогут писать в файл
Оптимизация системы
Для этого надо перекомпилировать все пакеты под свой процессор
http://community.livejournal.com/ru_linux/2078221.html
Звук, камера, микрофон
# убеждаемся, что дравер запускается
lsmod | grep -i snd_hda_intel
# если нет - в /etc/modprobe.conf добавляем:
options snd-hda-intel model=auto # автоопределение, или
options snd-hda-intel model=3stack-dig # конкретны йподтип для eepc 701
alsactl # единоразово для настройки звуковой подсистемы
alsamixer # дефолтные уровни звука
1. Установить i-Mic как Input source
2. Настройте Capture и i-Mic Boost по вкусу
3. Отредактируйте /etc/asound.state - в секции 'Capture Switch'
значения value.0 и value.1 true
alsactl restore
# если USB-видеокамера разпознается дравером, возникает /dev/video0
# skype и другие приложения подберут его по умолчанию
# Просмотр потока с видеокамеры
mplayer -fps 15 tv://
Снижение нагрузки на SSD диск
На SSD-диске файловую систему лучше делать нежурналируемую - напр. ext2
В опциях монтажа в /etc/fstab добавляем noatime
/var/log монтируем на TMPFS
tmpfs /var/log tmpfs size=10M 0 0
Подцепляем сканер HP Scanjet G3110
Ищем свой сканер
http://www.sane-project.org/sane-mfgs.html
выясняем название дравера для sane-backend - например hp3900
# sane-find-scanner -q
found USB scanner (vendor=0x03f0 [hewlett packard], product=0x4305 [hp scanjet], chip=RTS8822L-01H) at libusb:005:007
ls -al /dev/bus/usb/005/007
файл должен принадлежать группе lp. если нет - добавляем productId в /etc/udev/rules.d/55-libsane.rules
SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="4305", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"
Задаем какой дравер использует SANE:
echo hp3900 >> /etc/sane.d/dll.conf
Драверу hp3900 указываем, на каких USB-девайсах сидит "его" сканер
/etc/sane.d/hp3900.conf
usb 0x03f0 0x4305
Проверяем:
# scanimage -L
Если нарвались на
No scanners were identified. - то пытаемся отладиться
# SANE_DEBUG_DLL=255 scanimage -L
Дальше действуем по обстановке
возможно, требуется проинсталлировать более свежую версию backend'а sane-hp3900
http://sourceforge.net/projects/hp3900-series/
Теперь конфигурим сетевой доступ к своему сканеру
подробности см. в man saned
Сервер сканера:
/etc/sane.d/saned.conf
Прописывает сетки и хосты, которым разрешен доступ к скаneru
Активируем службу saned через xinetd
# grep sane /etc/services
sane-port 6566/tcp # SANE Control Port
sane-port 6566/udp # SANE Control Port
# cat /etc/xinetd.d/sane-port
service sane-port
{
socket_type = stream
port = 6566
wait = no
user = root
group = root
server = /usr/sbin/saned
disable = но
}
# service xinitd restart
в firewall'e открываем IN доступ к порту sane-port
Удаленный клиент сканера
# echo net >> /etc/sane.d/dll.conf
В файл /etc/sane.d/net.conf вписываем хост-сервер сканера
WinXP хорошо грузится только с загрузочного диска (hd0)
####### GRUB-секция для Win на 1-й партиции 3-го диска (hd3,0)
title Windows
# "переделать" 4-й диск в как-бы 1-й
map (hd3) (hd0)
rootnoverify (hd3,0)
makeactive
chainloader +1
Мапить можно как диск целиком, так и отдельный раздел
# map (hd1,0) (hd3,0)
Кстати, в SUSE 11.1 заменили grub-install, и он перестал понимать опции
перед запуском придется редактировать /etc/grub.conf
А порядок именования-нумерации дисков задается в
/boot/groob/device.map
Номера в нем должны соответствовать тому, что о нумерации думает BIOS
Ограничение скорости интернет-соединения
клиент, подключеный по ВПН (ppp0) из локалки и получивший IP 10.1.0.11
правилами iptables
*mangle
-A FORWARD -j USERS
-A INC_TARIFF_1 -j MARK --set-xmark 0x1/0xffffffff
-A USERS -d 10.1.0.1/32 -j INC_TARIFF_1
*nat
-A POSTROUTING -s 10.1.0.11/32 -j SNAT --to-source 94.25.11.182
*filter
-A FORWARD -j ULOG --ulog-prefix "FORWARD" --ulog-cprange 48 --ulog-qthreshold 50
далее лимитирую входящий трафик клиенту:
/sbin/tc qdisc del dev ppp0 root
/sbin/tc qdisc add dev ppp0 root handle 1: htb
/sbin/tc class add dev ppp0 classid 1:1 htb rate 256kbit ceil 256kbit
/sbin/tc filter add dev ppp0 protocol ip handle 1 fw classid 1:1
Условный роутинг отдельной подсетки на другой гейтвей
From: LJ user br0ziliy
Одну локалку пускаем как обычно.
Для второй в файрволл добавляем такое правило:
iptables -t mangle -I PREROUTING -s $LAN2_NET -j MARK --set-mark 0x70
Маскарадинг для каждого ppp-интерфейса отдельно:
iptables -t nat -I POSTROUTING -o ppp1 -s $LAN2_NET -j MASQUERADE
iptables -t nat -I POSTROUTING -o ppp0 -s $LAN_NET -j MASQUERADE
Далее iproute'ом разруливаем вс? хозяйство:
ip ru add fwmark 0x70 lookup 115
ip r add default dev ppp1 t 115
Ну, и в /etc/sysctl.conf добавить
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
и потом sysctl -p
Howto run a script when a USB device is pluged in
http://ubuntuforums.org/showthread.php?t=502864
This explains how you could run a script made by you
(say /usr/local/my_script) when you plug a specific USB device.
1. First run lsusb to identify your device. Example:
$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 040a:0576 Kodak Co.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
2. After doing this you know that
- the vendor ID of your device is 040a
- the product ID of your device is 0576
3. Now is time to create your UDEV rule:
Code:
vi /etc/udev/rules.d/85-my_rule.rules
4. And add the text
Code:
ACTION=="add", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="040a", SYSFS{idProduct}=="0576", RUN+="/usr/local/my_script"
Параметр SUBSYSTEM=="usb_device" иногда нужно заменить на SUBSYSTEM=="usb" а
можно и вообще опустить. Если SYSFS не установлен и не используется -
применяется ATTRS{idVendor}=="040a"
Explanation: When the usb_device product identified as 0576 of vendor 040a
is added, run /usr/local/my_script Note that '==' and "!=" are comparators,
while = and += are assingments
x x x
1. if you had GROUP="dialout", the device will belong to that group. This
means that all users in the dialout group have special permissions to work
with the device. Code:
ACTION=="add", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="040a", SYSFS{idProduct}=="0576", GROUP="dialout"
2. if you had SYMLINK+="ladys_camera", a ladys_camera device will be added
to your /dev. This could be very usefull if you use several usb devices (as
most of us do), because their device (/dev/ttyUSB[0-9]) is set depending on
plug order. This way /dev/ladys_camera will always be your lady's camera.
Code:
ACTION=="add", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="040a", SYSFS{idProduct}=="0576", SYMLINK+="ladys_camera"
3. Also notice that udev rules work with all king of devices: usb, serial,
pcmcia, ... udev rules is a simple and easy way to configure all devices
(it can configure, load modules, run scripts, set permissions for all your
hardware).
Final notes:
A. Each line is a device. If you want to break a line add \ at the end
Code:
ACTION=="add", SUBSYSTEM=="usb_device", \
SYSFS{idVendor}=="040a", SYSFS{idProduct}=="0576", \
SYMLINK+="ladys_camera"
B. You can add simultaneous actions in the same line (like group assignment
and symbolic link)
Code:
ACTION=="add", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="040a", SYSFS{idProduct}=="0576", GROUP="dialout", SYMLINK+="my_modem"
C. The rules file must be in /etc/udev/rules.d/. Restart udev service (sudo
/etc/init.d/udev restart) after changes.
D. The rules filename must start with two digits, plus a dash (-), and must
end with .rules The two digits have a reason. See /etc/udev/rules.d/README
Промаршрутизировать своих wifi соседей NAT'ом в интернет
# вторая карта (или алиас на первой), которая глядит в интернет:
ifconfig eth1:1 192.168.0.1 netmask 255.255.255.0 up
route add default gw 192.168.0.254
# разрешение гонять трафик через себя
sysctl -w net.ipv4.ip_forward="1"
# NATирование трафика всем страждущим из внутренней сетки (eth0)
iptables -t nat -A POSTROUTING -o eth1:1 -j MASQUERADE
или
iptables -t nat -A POSTROUTING -s 10.12.1.0/24 -j MASQUERADE
Показ видео на TV-out
Скорее всего видеокарта - Nvidia. Ставим дравер
1. Yast - Software repository - добавляем Community repository "NVidia"
2. zypper search nvidia
zypper install x11-video-nvidiaG02
# либо x11-video-nvidia - если видеокарточка старых моделей
3. Активируем дравер
nvidia-xconfig # познавательно потом запустить его с --help и -A
CTRL+ALT+BackSpace
По умолчанию TV конфигурится в режиме TwinView No (т.е. на телевизор
показывается индивидуальный X-screen (а не дубляж основного) PAL-D, SVHS -
при необходимости эти режимы можно подправить руками в xorg.conf или ключами
команды nvidia-xconfig, либо графическим настройщиком nvidia-settings
nvidia-xconfig --tv-standard=PAL-D --tv-out-format=SVIDEO --twinview --no-logo
Чтобы окошко показывалось на телевизор - надо отправлять его на :0.1
xterm -display :0.1
Показывать видео - надо конечно же с помощью MPlayer. Ставим его
1. Yast - Software repository - добавляем Community repository "Packman"
2. zypper search mplayer
zypper install MPlayer
mplayer -display :0.1 -fs file.avi
При показе в TV-Out дравер nvidia забирает изображение в 1024x768.
Однако у меня дравер слегка резал картинку - выводя ее на TV расширенной
и со смещением, пришлось сдвигать и поджимать картинку ключами.
Для точного попадания в TV видеоокно должно иметь габарит 920x724
(обращаем внимание, что 920*3/4=690 !) и сдвиг 60x25
mplayer -display :0.1 -stop-xscreensaver \
-geometry +60+25 -x 920 -y 724 Sherlok_Holms.avi
Если aspect кадра не 4/3, то кадр придется дополнительно пересчитать.
Скажем, для фильма 704x384 получаем:
mplayer -display :0.1 -stop-xscreensaver \
-geometry +60+124 -x 920 -y 526 Wse_umrut_a_q_ostanus.avi
Последним штрихом: в /etc/mplayer/mplayer.conf добавляем
stop-xscreensaver=yes # во время просмотра не запускать Screensaver
Копируем кириллический verdana.ttf в /etc/mplayer/subfont.ttf
Прописываем кодировку субтитров в файл ~/.mplayer/config
subcp=koi8-r # кодировка субтитров. Или у вас cp1251 ?
Как узнать серийный номер HDD
hdparm -i /dev/sda
-----------------------
#include
int fd;
struct hd_driveid id;
fd = open ("/dev/hda", O_RDONLY);
ioctl (fd, HDIO_GET_IDENTITY, &id);
close (fd);
printf ("%s\n", id.serial_no);
-----------------------
Кодировки в смонтированном NTFS
Не видны файлы, в имени которых есть русские буквы.
Лечится указанием локали в /etc/fstab:
/dev/sda7 /d ntfs-3g locale=ru_RU.UTF-8,...
kcontrol # Control Centre (AKA Persona setting)
Desktop --> Behavior->MouseButton action=>Left=No Middle=WinList Right=ApplMenu
Desktop --> Multiple Desctops => 4 штуки
Desktop --> Panels => Size=33
Desktop --> Windows behavior => Focus Policy=FollowMouse AutoRaise=No
Для запуска автостартовых приложений - создать application-пункт в каталоге
~/.kde/Autostart
Разблокировать CTRL и CTRL+Shit Fункциональные
kcontrol # Control Centre (AKA Persona setting)
Regional&Accessibility -> Keyboard Shortcuts
Затереть или заменить все ключи вида C-F1, S-F1 и C-S-F1...
А так же переключатель клавиатуры не должен сидеть на Ctrl+Shift,
а назначен, скажем, на Alt+Shift:
setxkbmap -option "grp:alt_shift_toggle,grp_led:scroll"
Отключение у ноутбука тачпада если подключена мышка
Варианты:
золотинка от шоколада, сложенная вдвое
x11-input-synaptics или
xserver-xorg-input-synaptics содержит syndaemon , который отключает тачпад,
если юзер набирает на клавиатуре.
# опция -t запрещает tapping и scrolling
syndaemon -d -t -i 2.5 # возвращать тачпад чере 2.5 сек по окончании печати
Или настройка через gsynaptics
Или заменить в описании мышки/точпада Option "Device" "/dev/input/mice" на соответственно
Option "Device" "/dev/input/mouse0"
Option "Device" "/dev/input/mouse1"
(можно так же применить event1 event2) и ненужный девайс просто закомментировать
Или через sysclient (работает при активированном SHMConfig
lsusb | egrep -i 'Mouse|03f0:2003.*Hewlett-Packard|046d:c521.*Logitech' > /dev/null && synclient TouchpadOff=1 || synclient TouchpadOff=0
Естественно, в xorg.conf должен быть описан тачпад с дравером synaptic
Section "InputDevice"
Driver "synaptics"
Identifier "Mouse[3]"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "on"
Option "Name" "Touchpad"
Option "SHMConfig" "on"
# Option "SHMConfig" "true" есть версии, что "true"
Option "Vendor" "Synaptics"
Option "ZAxisMapping" "4 5"
# MaxTapTime отключает тач-клик
Option "MaxTapTime" "0"
# левый клик, средний клик, правый клик по прикосновениям
# одного, двух и трех пальцев соответственно.
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
EndSection
Section "ServerLayout"
Identifier "Layout[all]"
. . .
InputDevice "Mouse[1]" "CorePointer"
InputDevice "Mouse[3]" "SendCoreEvents"
. . .
EndSection
создать /etc/udev/rules.d/99-mouse.rules - в нем написать:
ENV{ID_CLASS}="mouse", ATTRS{manufacturer}=="Logitech", ACTION=="add", RUN+="/usr/bin/synclient touchpadoff=1"
ENV{ID_CLASS}="mouse", ATTRS{manufacturer}=="Logitech", ACTION=="remove", RUN+="/usr/bin/synclient touchpadoff=0"
будет выключать/включать тачпад при втыкании/вытаскивании USB-мышки
Настройки чувствительности тачпада:
Option "VertScrollDelta" "100"
Option "HorizScrollDelta" "100"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "MinSpeed" "0.09"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.015"
NAT-маршрутизатор
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s IP-NAT-клиента -d 0/0 -j MASQUERADE
если ppp интерфейс, то не мешает добавить
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Температура диска (и много дополнительной info)
smartctl --all /dev/sda |grep -i temp
Температура системы
cat /proc/acpi/thermal_zone/THM/temperature
Как понизить скорость DVDROM
hdparm -E 8 /dev/dvd
setcd -x
CentOS. Сборка rpm ядра из оригинального src.rpm
http://www.centos.org/modules/newbb/viewtopic.php?topic_id=403
http://www.howtoforge.com/kernel_compilation_fedora
Поставляемый пакет kernel-devel для сборки ядра непригоден.
Надо скачать и установить src.rpm
rpm -ivh kernel-*.src.rpm
cd /usr/src/redhat/SPECS/
vi kernel-2.6.spec
можно поменять например версию ядра, отключить часть патчей (попарно)
rpmbuild -bp --target=i686 kernel-2.6.spec
после этого обязательно отредактировать Kernel Identification String
cd ../BUILD/kernel-2.6.18/linux-2.6.18.i686
vi Makefile
EXTRAVERSION = -17.0-custom
далее
make xconfig
Загрузить "Alternate Configuration File" и выбрать .config
make
make install
# Хотя initrd и инсталляция модулей теперь делается автоматически,
# лучше повторить ее ручками. Ибо...
make modules_install
mkinitrd /boot/initrd-2.6.18-17.0-custom.img 2.6.18-17.0-custom
RHEL3. Сборка rpm ядра из оригинального src.rpm
rpmbuild --rebuild bla-bla.src.rpm
Больше тонкостей открывается при
rpm -ivh kernel-*.src.rpm
vi /usr/src/redhat/SPECS/kernel-2.6.spec
... [custom]
rpmbuild -ba /usr/src/redhat/SPECS/kernel-2.6.spec
make rpm
cd ../RPMS/i386
rpm -ivh kernel-2.6.18custom2.6.18.2-1.i386.rpm
mkinitrd /boot/initrd-2.6.18-custom-2.6.18.2.img 2.6.18-custom-2.6.18.2
vi /boot/grub/menu.lst
RedHat 8-9, FC, Advanced server
lockkit --disable -q # отключить файрволл
RedHat 5.1
From: Сергей Богомолов.
Глючит, сил нет. Но мой SoundBlaster только в нем работает.
From: Дмитрий Волошин
Глючный.
From: Максим Мошков
Глюки, а какие - сам не пойму, вроде и не впомнишь на что
жаловаться. А на firewall я опять поставил 4.2 (с заплатками,
естественно).
From: Юрий Васильевич Коваленко
1.) если не установил LILO именно с этого дистрибутива (а
у меня на машине есть еще и RH-4.2) rc.sysinit не может найти
модули.
2.) После установки в resolv.conf появилась только одна
строка с одним словом "search", информацию о сети просил узнать
по bootp. Следствия - ругань на неправильный формат файла и
отсутствие доступа к nameserver.
3.) При сборке ядра 34-1 из /updates ручками пришлось
делать link asm - asm-i386
4.) Glint завис при появлении в /updates директории
(/jpeg). Это то, что вспомнилось сразу, особенно яркие
впечатления от 1 пункта. По сравнению с 4.2 - очень сыро,
очень плохо реагирует на любой шаг в сторону от представлений
авторов об конфигурации машины. RH-4.2 использую 5 часов в
сутки на он лайн обработке эксперимента, 5.0 и 5.1 не внушают
доверия для этой цели, жду 5.2.
RedHat 5.0
From: Сергей Кузовков
Установил RedHat 5.0 - нет графической конфигурялки для Иксов,
пропала удобная программа statnet, а программа GhostView при
выборе пункта "print" вместо имени принтера требует теперь
ввести команду печати...
Несовместимый cpio
Архив cpio -ov в RedHat 5.0 не читается на других платформах.
А совместимый cpio -ovca - НЕ ЧИТАЕТСЯ на самом Linux!!!
Снести "родной" cpio, и заменить его "старым" из 4.2
В явной форме задавать ключ -H crc
RedHat 4.2, 5.0
Проблема: Инсталляция по NFS - наглухо зависает. "Permition denied"
Лечение: Вы ведь этот дистрибутив сftpили? А право "execute", которое
ftp сбросил, восстановить не забыли?
cd redhat ; chmod -R a+x .
fstab: Пропал диск C:, где дискетки A:, B:
Проблема: Как работать с досовскими дискетами? RedHat
предполагает, что настоящий unixоид пользуется дискетками
формата ext2, и не встречается с FAT-овскими досовскими флоппи.
Проблема: Не подключаются досовские разделы жесткого диска.
Потому что инсталлятор "забыл" сделать mount-point для них.
Проблема: Что делать с 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 -X" 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
Продолжение следует. Рекомендую так же посмотреть:
Начало работы в системе ()
Команда man по завершении просмотра стирает экран с мануалом
Проблема: Команда man по завершении просмотра стирает экран с
мануалом Называется "а у тебя ведь хорошая память? Isn't it?"
Лечение: man использует для просмотра команду less. У less есть
ключ "-X" - "не деинициализировать экран по окончании. Поэтому
добавьте его к дефолтным ключам в переменную окружения LESS в
своем профайле.
LESS="-e -r -X" export LESS
Лечение: другой метод - поправить в описании терминала строку
деинициализации (ах, как там она называется?), и убрать из нее
команду стирания экрана.
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 #############################
Разное. Нерешенные проблемы
После перекомпиляции ядра ВСЕ модули, пришедшие с дистрибутивом
перестают работать. Их остается только уничтожить. Но 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
Несколько рекомендаций по безопасности
Вольный перевод с
http://www.corbina.net/~ppinpro/alx/gen-rule.html
Если ваш дистрибутив старее 3-5 месяцев - смело выкидывайте его
на свалку. Он содержит массу известных всему миру security
holes и не имеет массы полезных утилит.
Обязательно перекомпилируйте ядро, выкинув из него все не
нужные сейчас дравера.
Не забудьте сделать chmod 400 /vmlinuz.
Добавьте в /etc/lilo.conf возможность загрузки предыдущego ядра.
Отредактируйте /etc/inetd.conf. Закомментируйте в нем ВСЕ
строчки, которых не понимаете.
Если что-то осталось незакомментированно, поместите строку
ALL : ALL в файл /etc/hosts.deny
И индивидуальные строчки разрешений на доверенные хосты в файле
/etc/hosts.allow
ВСЕ версии sendmail, кроме САМОЙ СВЕЖЕЙ позволяют взломать ваш
компьютер из сети. Уничтожте файл со старой версией.
wu-ftp демон ненадежен и опасен. Никто не поклянется, что в нем
исправлены все security holes.
Конфигурирование 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 на вашей машине?
Date: 10 апр 97
Кстати CERT советует ставить Sendmail 8.8.5. Более ранние
версии позволяют удаленно выполнять любые команды от имени
суперпользователя на вашей машине.
httpd: дырявые cgi-скрипты
Штатная поставка Apach-httpd имеет cgi-скрипт
/home/httpd/cgi-bin/phf который позволяет выполнять
произвольные команды на вашей машине от имени юзера nobody
Securные параметры ядра
При реконфигурации ядра не забудьте взвести флажки:
> * Drop source routes pakets [Y]
Drop packets that have a source route flag set. This stops simpliest
redirection attacks and should be always set to yes.
> * always defragment [Y]
Reassemble packet from fragments first and only after that apply firewalling
rulesets. Unless you have a really good reason not to do this ( and I am yet
to hear one ), it should be set t yes.
Имеющий доступ к консоли Linux может стать суперюзером
0. Загрузка со своей загрузочной дискеты1. Booting to single-user mode
LILO: linux single
Debian обходит это поправками в /etc/initab, а RedHat - пропускает
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
2. Указать альтернативную программу init
LILO: linux init=/bin/bash
3. Задать другой root-partition
LILO: linux root=/dev/hda1
Если создать в отдельной партиции всю положенную для корня
структуру, то можно будет с нее загрузиться.
Эту возможность можно получить, например, если /tmp
монтируется в отдельную партицию. Или машина поддерживает UMS-
DOS и имеет досовский раздел.
Лечение
Закрыть паролем BIOS-setting и отключить возможность
загрузиться с дискеты.
Закрывайте возможность перехвата LILO-prompt
A workaround can be achieved by using PASSWORD and
RESTRICT options in /etc/lilo.conf.
Внимание: /etc/lilo.conf должен быть root.root 600, чтоб
никто не смог этот пароль подсмотреть.
kerneld and ifconfig загрузят любой kernel-модуль
Команда
/sbin/ifconfig module-name
позволяет _любому_ пользователю загрузить модуль из каталога
/lib/modules используя kerneld.
Лечение:
Пока не залечено в промышленном масштабе. Отключайте kerneld
или явно указывайте модули, которые можно грузить, уберите все
лишние модули доставшиеся вам после инсталляции.
* ПРОЧЕЕ *
/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
From: Roman (mrv@fia.volga.ru)
Проблема: Припекло установить два PPP интерфейса. пользовался
стандартной конфигурялой в иксах. Глюк - при выставлении у
одного интерфейса признака Default gateway, таблица роутинга
строится с двумя default
Лечение: Анализ показал - при запуске демона
PPPD, если ему явно не указать отказ от Default gateway,
то по умолчанию он поставится сам.
Необходимо в файле /etc/sysconfig/network-scripts/ifup-ppp
найти строку:
if [ "${DEFROUTE}" = yes ] ; then
opts = "$opts defaultroute"
fi
И добавить в нее:
if [ "${DEFROUTE}" = yes ] ; then
opts = "$opts defaultroute"
else
opts = "$opts -defaultroute"
fi
Проблема: При использовании Alias на сетевые карты не
отрабатывается Static-route
Пример: Есть адаптер eth0 , делаем алиас на него eth0:0
При попытке постройки статического роутинга
в файле /etc/sysconfig/static-routes для сети на
интерфейсе eth0:0 после перезагрузки
компьютера ничего не произойдет.
Лечение: Готового решение пока нет, но причина
в скрипте который инициализирует запуск сети
В нем анализ интерфейсов в файле /etc/sysconfig/static-routes
идет до знака "двоеточие"
Лечение2: Кардинальное - горбатого могила исправит. Выкинуть
GUI-control-panel и конфигурить руками и вставлять команды
под'ема интерфейсов и роутинга в /etc/rc.d/rc.local
Расположение ядра /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 4090 /* On x86 Max 4092, or 4090 w/APM configured */
#define MAX_TASKS_PER_USER (NR_TASKS/2)
#define MIN_TASKS_LEFT_FOR_ROOT 16
Число файлдескрипторов и открытых файлов.
/usr/src/linux/include/fs.h
#define NR_FILE 4096
#define NR_INODE 3072
Update RedHat 3.0.3 --> 4.0
Нормально можно поставить RedHat с CD или по NFS.
А вот с локального жесткого диска...
#$%^#$&&^)#%$@$&^*%%^
а еще он стер мой файл /etc/hosts, /etc/httpd/conf/*,
переименовал /etc/sendmail.cf, /etc/lilo.conf
Короче, я-то поставил. А Вы?
Update RedHat 4.0 --> 4.1
1. Во время установки в самом конце спрашивается: "Keep current
network setting" Я сказал "No", машина неожиданно сделала re-
boot, и потом ей было не здорово. Во второй раз я сказал ей
"Keep"
2. После update на начальной загрузке появляется сообщение
klog-daemon: ws unknown action
Причина: В файле syslog.conf разрезалось несколько строчек.
news.=crit /var/log/news/ne
ws.crit ^^^ склеить
3. В sendmail 8.8.5 не удается по нормальному настроить uucp-
delivering. Несмотря на Smart-relay-host, он тем не менее
пытается сделать на адреса DNS-resolving.
Отключить не удалось, FEATURE(nodns) не помогла. Пришлось взять
старый uucp_without_dns sendmail.cf из-под slackware 2.0