Текст будет пополняться.

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

Все  последующие  релизы  Slackware,  а  тем  паче RedHat перед
употреблением требуют хирургического вмешательства.



zypper addrepo \
https://download.opensuse.org/repositories/filesystems/15.5/filesystems.repo
zypper pa -ir "filesystems"
zypper install vmfs-tools sshfs

vmfs-fuse /dev/sdb1 [/dev/sdc1] /vmfs5-mountdir



        В текстовом режиме

/usr/sbin/ctrlaltdel # посмотреть статус обработки "салюта" кернелом
  ctrlaltdel  hard   # вызывать жесткий безусловный reboot (nosync)
  ctrlaltdel  soft   # посылать SIGINT в systemd, который вызовет
                     # ctrl-alt-del.target symlinked to reboot.target

### посмотреть дефолтное поведение софтверного CTRL+LAT+DEL:
  systemctl   status   ctrl-alt-del.target
  ls -l /usr/lib/systemd/system/ctrl-alt-del.target
lrwxrwxrwx         ctrl-alt-del.target - > reboot.target

### Для отмены REBOOT по "салюту" в текстовом режиме единоразово выполнить:

   ctrlaltdel    # убедиться, что   "soft"
   rm  -f  /etc/systemd/system/ctrl-alt-del.target
   systemctl   mask   ctrl-alt-del.target

Created symlink /etc/systemd/system/ctrl-alt-del.target - > /dev/null.

###  В X11 обработчик "салюта" назначается через "Сочетания Клавиш"

Параметры - Сочетания клавиш - Добавить - sysmontask - клавиша: ctrl-alt-del

   или

Пуск - Центр управления - Оборудование - Сочетания клавиш ...




Best: - настроить свой ntpd и иметь постоянно синхронизованное время

Ленивый вариант: прописать в crontab  раз в неделю синхронизацию
   13 3  7 * *   ntpdate your.ntp.server.host.name

Когда NTP недоступно, играем с hwclock:
этап 0: выставить точное системное время, прописать его в HW
   date 07201256.21  # выставить системное время по точным часам
   rm /etc/adjtime ; hwclock --systohc # начать /etc/adjtime, выставить HWclock
1: Подождать неделю, выставить точное системное время, подсчитать drift
   date 07271256.21
   hwclock --systohc --update-drift
3: Прописываем в crontab ежедневную подводку часов по вычисленному дрифту
   13 3  * * *   hwclock --adjust


split -b 12345 input-file  output-file-mask. # нарезать кусочками размера -b

# подменить в исходном файле _ПОСЛЕ_ заданного номера блока
dd if=patch.bl   of=changed-file   seek=10 conv=notrunc # отступ в 512 блоках
dd if=patch.bl   of=changed-file   seek=10 conv=notrunc bs=1024k # отступ в Mb


дописать в isolinux/isolinux.cfg
 inst.ks=http://192.168.1.9/redos-ks.cfg ip=192.168.1.196::192.168.1.1:255.255.255.0

cd  LinuInstallCD/
sudo mkisofs -o /Lnux.iso -b isolinux/isolinux.bin -c isolinux/boot.cat \
      --no-emul-boot --boot-load-size 4 --boot-info-table -T -J -r \
      -V "LinuInstallDisksLabel"  .
    # -J - generate Joliet directory record
    # -R - Rock Ridge
    # -r - Rock Ridge + chown 0:0
    # -T - generate TRANS.TBL for nonRR clients



https://linux-notes.org/pishem-systemd-unit-fajl/?ysclid=lhlrolnqkv228929151


Диагностика выдает "Media_dir /home/video - Permition denied"
По умолчанию включена защита доступа к файлам в /home

# systemctl edit --full minidlna.service # исправить параметр ProtectHome
ProtectHome=read-only

# systemctl restart minidlna.service




Штатное описание файрвола для NFS-server пусто, и порты NFS-сервера остаются
закрытыми. Их надо подсмотреть и открыть вручную

rpcinfo -p| grep mountd
    100005    1   udp  20052  mountd
    100005    1   tcp  20052  mountd
firewall-cmd --zone=public --add-port=20048/udp --permanent
firewall-cmd --zone=public --add-port=20048/tcp --permanent
# RPC-скорее всего не открыт
firewall-cmd --zone=public --add-port=111/udp   --permanent
firewall-cmd --zone=public --add-port=111/tcp   --permanent



cat /etc/os-release   # узнать свою версию
zypper up             # накатить все апдейты
zypper lr -u          # посмотреть текущие репозитории
zypper --releasever=15.3 lr -u   # проверить доступность новых repo

sed -i 's/15.2/${releasever}/g' /etc/zypp/repos.d/*.repo
zypper --releasever=15.3 refresh
zypper --releasever=15.3 dup     # distribution-update




tty1$     nc -w 60 ftp.server.org 21
USER user
PASS password
PASV
TYPE I
STOR file-flat.vmdk
227 Entering Passive Mode (91,236,55,2,78,114)
##################################################
tty2$    nc   ftp.server.org   `expr 256 '*' 78 + 114` < file-flat.vmdk



https://inrouters.ru/xiaomi/xiaomi-mi-wi-fi-router-pro/



# Разрешение для различных пользователей
AllowUsers johndoe@192.168.1.* admin2@192.168.1.* otherid1

# Разные виды логина для разных IP - сперва всем все запретить
PasswordAuthentication no
PubkeyAuthentication   no
# Затем отдельным IP разрешить
Match Address 127.0.0.*
    PubkeyAuthentication yes
Match Address 192.168.31.*
    PubkeyAuthentication   no
    PasswordAuthentication yes

# использование ssh-ключа только с конкретных адресов:
.ssh/authorized_keys
from="192.168.1.*,192.168.2.*" ssh-rsa AAAAB3N...7n1DD useralias


ip a  # андреса
ip r  # роутинг
ip n  # arp

ip a add 192.168.31.4/24 dev enp2s0     # назначить IP
ip a add 192.168.1.4/24  dev enp2s0:1   # назначить IP-alias
ip r дел default
ip r add default via 192.168.1.1        # переназначить DEFAULT GW


На роутящем Linux-сервере можно включить proxy-arp на
конкретных интерфейсах

echo 1 > /proc/sys/net/ipv4/conf/eth2/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth4/proxy_arp

# На хостах, на которых ставится proxyARP-routed рулить можно так:
 apt-get install parprouted
 parprouted  bond0     eth1.3021
 parprouted  eth1.3032 eth1.3035


ping www
ping: icmp open socket: Operation not permitted

# задать диапазон групп, которым разрешен ping [min, max]
sudo  /sbin/sysctl -w net.ipv4.ping_group_range="0 10"
# либо прописать на пинг сетевой capability
sudo setcap 'cap_net_admin,cap_net_raw+ep' /usr/bin/ping



#  Выставить  заголовок  окна при запуске - однако он мгновенно перебивается
# настройками локального shell
konsole -title "Заголовок" -е ssh remotehost
xterm -T "Заголовок" -е ssh hostname

# единоразово выставить заголовок
echo -en "\033]0;$HOSTNAME:$USER:$PWD\07"'

# выставлять при каждом выводе shell-prompt
PROMPT_COMMAND='echo -en "\033]0; qq $HOSTNAME:$USER:$PWD\07"'

wmctrl -r :ACTIVE: -N New-Title  # Выставить title в активное окно
wmctrl -l                        # получить список всех окон
wmctrl -r "Windo-name" -N "New-Name" # меняем старое имя на новое



C:\>  Bcdedit  /set  {bootmgr}  path  \EFI\opensuse15\grubx64.efi



# Смотрим порядок загрузки в EFI
# efibootmgr -v
BootOrder: 0000,0001,3001,2001,2002,2003
# Выставляемый желаемый порядок загрузчиков
# efibootmgr -o 3001,0000,0001,2002,2003,2001



# parted -a optimal /dev/sdb # или в ручную разбить диск
# mount ...........
# cp -R /mnt/old /mnt/new
# chroot /mnt/new /bin/bash
# env-update
# grub-install /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg  # !!! /mnt/new/boot/grub/grub.cfg
# reboot



Если  реальный  размер  партиции  оказался меньше чем прописано в суперблоке
файловой системы - ее не удается ни починить, ни смонтировать

# mount -t ext4 -o ro,noload /dev/sdb9 /mnt/backup
mount: wrong fs type, bad option, bad superblock on /dev/sda,
       missing codepage or helper program, or other error

dmesg показывает:
EXT4-fs bad geometry: block count 29... exceeds size of device (29... blocks)

Спасаемся так: уменьшаем размер fs, и затем монтируем ее на ro

# resize2fs /dev/sdb9  1000G # задаем размер fs меньше партиции
# mount -t ext4 -o ro,noload /dev/sdb9 /mnt/backup


К одному logitech unify адаптеру можно подключить до 6 устройств
Поддерживаемые мышки имеют на брюхе "звездочку" - лого "Unify"

sudo zypper install ltunify  # утилита подключения к logitech unify

ltunify  list # список подключенных устройств
   idx=1   Mouse   M215
   idx=2   Keyboard        K270
   idx=3   Mouse   M185

ltunify  unpair 3    # отвязать устройство No 3
ltunify  pair        # включить питание на подключаемом устройстве




sshd: userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes

Добавить строчку в файл    /etc/ssh/sshd_config
PubkeyAcceptedKeyTypes=+ssh-dss



Origin: http://zepete.livejournal.com/151204.html
# опознание кодов, которые посылает mouse
xev | grep -A2 --line-buffered '^ButtonPress' |\
 sed -nE '/button /s/^.*(button[[:space:]]+[[:digit:]]+).*$/\1/ p'"

1 2 3  Left  Wheel  Right
4 5    Wheel-Up  Wheel-Down
6 7    <    >   # колесо влево/вправо
8 9    кнопка на боковушке PgUp/PgDwn

# ID список тачпадов/мышей
grep -E "Name=|Handlers" /proc/bus/input/devices | grep -EB1 'Handlers.*mouse' |\
 sed -nE '/Name=/,/Handlers=.*mouse/ {/Name=/N; /Handlers=.*kbd/bskip;/Handlers=.*mouse/s/^.*Name=["]([^"]+)["].*$/\1/p;:skip}'

xmodmap -e "pointer = 1 2 3 4 5 8 9 6 7"  # перестановка функций кнопок на всех мышах

xinput   # получить ID mouse  (например 12)
xinput -set-button-map "12" 1 2 3 4 5 8 9 6 7 # и переназначить кнопки мыши с id=12


# и добавить в kde-автостарт-скрипт что-нибудь типа
xinput -set-button-map `xinput|grep Logit.*4003|sed 's/.*id=\([0-9]*\).*/\1/'` 1 2 3 4 5 8 9 6 7



В mplayer - в mplayer.conf добавить строку
stop-xscreensaver=1

Если в самом плеере нет настройки, то костыль наподобие:
echo '#!/bin/sh
while sleep 300 ; do
 ps -ef | grep -v grep | grep -q vlc &&  xset -dpms ||   xset +dpms
done ' > ~/.kde4/Autostart/vlc && chmod +x ~/.kde4/Autostart/vlc


                               а может быть и не только в нем
Placing .desktop files in:
KDE 3 ~/.kde/share/apps/konqueror/servicemenus/
KDE 4 ~/.kde/share/kde4/services/ServiceMenus/
KDE 5 ~/.local/share/kservices5/ServiceMenus/
============ например Подменю CreateScript.desktop ================
[Desktop Entry]
ServiceTypes=inode/directory
Actions=CreateBashScript;CreatePythonScript
X-KDE-Submenu=Create Script

[Desktop Action CreateBashScript]
Name=Create a bash script
Icon=kfm
Exec=/usr/local/bin/writeBashScript
[Desktop Action CreatePythonScript]
Name=Create a Python script
Icon=kfm
Exec=/usr/local/bin/writePythonScript



============ New File ABC ===========
/usr/share/kde4/templates/
/usr/share/kde4/templates/.source
.kde/share/templates/.source/new.abc
.kde/share/templates/abc.desktop
============ New File URL ===========
[Desktop Entry]
Name=Custom Entry
Comment=New custom entry:
Type=Link
URL=.source/new.abc
Icon=application-vnd.oasis.opendocument.text
============ например chmodX.desktop ================
[Desktop Entry]
Encoding=UTF-8
ServiceTypes=application/x-shellscript
# ServiceTypes=all/allfiles
# ExcludeServiceTypes=applicatin/x-zip
Actions=MakeExecutable
[Desktop Action MakeExecutable]
Name=Make file executable
Name[ru]=Izmenenie prav file executable
Exec=chmod +x %f
Icon=kfm
=====================================================
%f    A single filename
%F    Multiple selected files
%u    A single URL.
%U    Multiple URLs.
%d    The single directory that contains the selected file represented by %f.
%D    Multiple directoryes for every selected file in that directory (%F).
%n    A filename without a path.
%N    Multiple filenames without paths.
%k    A file represented as a URI.

См. также
http://archive.oreilly.com/pub/h/3156
https://kubuntu.ru/node/3610



# подготовить раздел
cryptsetup --verify-passphrase luksFormat /dev/sda10

# при открытии автоматически создается спец-файл в dev-mapper
cryptsetup luksOpen  /dev/sda10   sechome
cryptsetup luksClose sechome

# расширить (в случае расширения базовой партиции
cryptsetup resize [ --size 12345612 ] /dev/sda10  # размер в секторах

# добавить/удалить ключ шифрования
cryptsetup luksAddKey    /dev/sda10
cryptsetup luksRemoveКey /dev/sda10

mkfs -t esxt4    /dev/mapper/sechome

/etc/crypttab   # автоактивация раздела в /dev/mapper  # ??? не проверил
sechome  /dev/sda10 none
sechome2 /dev/sda11 /etc/secfilewithpassword

/etc/fstab
/dev/mapper/sechome /srv/secure_home  ext4  defaults 0 0



zypper install encfs      # инсталлируем пакет encfs
encfs ~/.enc-db ~/crypt # создать шифруемую директорию с бэкэндом в .enc-db
  -- >  y, y, p, password, password

Подключать/отключать
 encfs ~/.enc-db ~/crypt
 fuser -u ~/crypt

Или через /etc/fstab:
 /home/petr/.enc-db /home/petr/crypt fuse.encfs noauto,user,uid=petr 0 0

Подключать/отключать:
 mount ~/crypt
 sudo umount ~/crypt



ssh server2 "nc -l 1234 > /dev/null" &
sleep 2 ; time dd if=/dev/zero bs=1024k count=1000 | nc server2 1234


server:  /etc/ssh/sshd_config
X11Forwarding yes

client: /etc/ssh/ssh_config
Host *
  ForwardX11 yes

А если это не помогает, и в syslog'е "Failed to allocate internet-domain X11"
Значит sshd запутался в IPv6, и sshd надо запускать с ключом -4

server:  /etc/sysconfig/sshd
SSHD_OPTS="-4"

После логина автоматически будет взводится переменная DISPLAY

ssh    udalennyj.server

echo $DISPLAY
localhost:10.0

Чтобы X-приложения запускались после SU - смены пользователя
в файле    /etc/pam.d/su
и в файле  /etc/pam.d/su-l должна присутствовать строка:
session  optional       pam_xauth.so

подробности смотреть в:

man xauth



https://habrahabr.ru/post/98393/#comment_3031341

CTRL+^ - для переключения, таблица раскладки в
/usr/share/vim/vim73/keymap/russian-jcukenwin.vim

В файле ~/.vimrc
set keymap=russian-jcukenwin # таблица раскладки
set iminsert=0               # дефолтная раскладка для ввода
set imsearch=0               # дефолтная раскладка для поиска
highlight lCursor guifg=NONE guibg=Cyan
#####################################################
Вариант с наворотами (смотреть в HTML-Source этого файла):
cmap       # переключатель мапится на CTRL+F
imap   X:call MyKeyMapHighlight()a
nmap   a:call MyKeyMapHighlight()
vmap   a:call MyKeyMapHighlight()gv
# индикация раскладки - цветом статусной строки
function MyKeyMapHighlight()
	if &iminsert == 0
		hi StatusLine ctermfg=DarkBlue guifg=DarkBlue
    else
        hi StatusLine ctermfg=DarkRed guifg=DarkRed
    endif
endfunction
#####################################################


    Подсчет трафика на сетевом интерфейсе

cat /proc/net/dev cat /proc/net/dev | grep ppp | sed 's/ */ /g' | cut -d' ' -f3,11 # отвязанная статистика интерфейсов ifstat # посмотреть текущую скорость ifstat -rn # занулить счетчики # не тро

    Подсчет трафика клиентов на linux-маршрутизаторе

# включаем на гейте форвардинг трафика и NAT echo 1 > /proc/sys/net/ipv4/ip_forward /etc/sysctl.conf:net.ipv4.ip_forward=1 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # пропускаем нескольких локальных клиентов из eth0/* в интернет ppp0 for i in 13 14 15 19 21 22 ; do iptables -A FORWARD -s 192.168.1.$i -o ppp0 -j ACCEPT iptables -A FORWARD -d 192.168.1.$i -i ppp0 -j ACCEPT done # сам роутер пропускаем тоже iptables -A INPUT -i eth0 -j ACCEPT iptables -A OUTPUT -o eth0 -j ACCEPT # остальных не пускаем iptables -A FORWARD -o ppp0 -j DROP while sleep 60 ; do # А дальше в цикле iptables -L -vnx # Посмотреть трафик на всех заданных правилах iptables -Z # Обнулить счетчики done

    Проброс портов снаружи на внутреннюю сетку

# -i external-iface # Пробросить iptables -t nat -A PREROUTING -p tcp -d 217.89.1.160 --dport 1111 -j DNAT --to-destination 192.168.1.80:22 # Разрешить прохождение в файрволле iptables -A FORWARD -i eth0 -d 192.168.1.80 -p tcp --dport 22 -j ACCEPT

    Фиксация history у незавершенного bash

Команды введенные в bash показываются командой history, но в файле ~/.bash_history они сохраняются только по завершении bash. Чтоб получить их: Узнать PID bash, например 11517, и с помощью gdb сохранить history в файл echo $$ gdb attach 11517 call write_history("/tmp/bash.11517.log") quit

    Сброс пароля root в mysql

/etc/rc.d/init.d/mysqld stop # останавливаем mysqld ps awx | grep mysqld # Контроль, киляем если еще жив mysqld_safe --skip-grant-tables # Запускаем без проверки привилегий mysql -u root mysql > update user Password=PASSWORD('тут пароль') where User='root'; > flush privileges; mysqld restart

    OCR pdf-fajlow

sudo apt-get install ghostscript tesseract-ocr tesseract-ocr-eng Scanned PDF convert to tex gs -dNOPAUSE -sDEVICE=tiffg4 -r600x600 -dBATCH -sPAPERSIZE=a4 \ -sOutputFile=OUTPUT.tif PDFNAME.pdf tesseract OUTPUT.tif TEXTNAME -l eng # or the language you prefer

    Как прописать LABEL на партицию HD или флешки

lsblk # список партиций blkid /dev/sdb1 # посмотреть информацию о партиции apt-get install mtools ntfsprogs e2fsprogs jfsutils reiserfsprogs xfsprogs zypper install mtools ntfsprogs e2fsprogs jfsutils reiserfsprogs xfsprogs mlabel -i /dev/sdb1 -s :: # прочитать LABEL vfat,fat16,fat32 mlabel -i /dev/sdb1 -s ::UAZ # записать LABEL vfat,fat16,fat32 ntfslabel /dev/sdb1 # NTFS ntfslabel /dev/sdb1 UAZ e2label /dev/sdb1 # ext2, ext3, ext4 e2label /dev/sdb1 UAZ jfs_tune /dev/sdb1 # jfs jfs_tune -L UAZ /dev/sdb1 xfs_admin -l /dev/sdb1 xfs_admin -L UAZ /dev/sdb1

    Проблемы со звуком в skype на openSUSE 13.2

Временное решение, запускать skype так: PULSE_LATENCY_MSEC=60 skype

    Как оживить угробленный GRUB

Скопировать все нужные файлы в /boot и /boot/grub Определить партицию /boot, груб-нумерация меньше на единицу cat /boot/grub/device.map (hd0) /dev/sda (hd1) /dev/sdb /boot /dev/sda6 -- > (hd0,5) /boot /dev/sdb1 -- > (hd1,0) /usr/sbin/grub # инсталляция загрузчика в MBR root (hd0,5) setup (hd0) quit

    udev USB security

Linux из коробки подключает USB-устройства сразу. Это может быть использовано для rogue HIDs. Готовый вредный совет для настройки udevs, чтоб он больше так не делал Но пользоваться им бездумно не следует, потому что мышки и клавиатуры нынче все больше USB-шные The BadUSB attack bases on the fact that computers allow and enable HID devices on all usb ports. Faked network adapters are no real danger. My answer tries do describe how to use udev to temporarily disable the addition of new HID devices. I'm no udev expert, but I've tested my approach, and it works for me. For preparation, create a file /etc/udev/rules.d/10-usbblock.rules with the content: #ACTION=="add", ATTR{bInterfaceClass}=="03" RUN+="/bin/sh -c 'echo 0 >/sys$DEVPATH/../authorized'" If you want to block other classes too, then look up the class number, and copy the line, and change the class. Now you can block all new HID devices using the command sed -i 's/#//' /etc/udev/rules.d/10-usbblock.rules; udevadm control --reload-rules and unblock with: sed -i 's/^/#/' /etc/udev/rules.d/10-usbblock.rules; udevadm control --reload-rules Before you shut down, always unblock, as the setting is persistent, and your "good" HID devices would be rejected on reboot. I don't know whether you can edit the temporary rules directory, but if changes there affect the behaviour, you should edit that instead, as then you don't need to unblock before shutdown. (from https://security.stackexchange.com/questions/64524/how-to-prevent-badusb-attacks-on-linux-desktop/64552#64552 ) Block/unblock можно вставить в стартовые скрипты

    Как передернуть питание на USB-устройстве

Помогает, если чипсет USB-контроллера поддерживает управление питанием echo "suspend" > /sys/bus/usb/devices/usb2/power/level echo "auto" > /sys/bus/usb/devices/usb2/power/level

    Минимизация вреда Gnome 3

install gnome-session-fallback gnome-shell remove unity Выбрать тип десктопа gnome classic. Это сделает фальшивый gnome-2, он хуже настоящего, чтобы пользователь поверил, что он gnome 3 не хуже.

    Upgrade openSUSE to 12.2 version

zypper modifyrepo --all --disable zypper addrepo --name "openSUSE-12.2-OSS" http://download.opensuse.org/distribution/12.2/repo/oss/ repo-12.2-oss zypper addrepo --name "openSUSE-12.2-Non-Oss" http://download.opensuse.org/distribution/12.2/repo/non-oss/ repo-12.2-non-oss zypper addrepo --refresh --name "openSUSE-12.2 Update-Oss" http://download.opensuse.org/update/12.2/ repo-12.2-update zypper addrepo --refresh --name "openSUSE-12.2-Update-Non-Oss" http://download.opensuse.org/update/12.2-non-oss/ repo-12.2-non-oss-update zypper refresh zypper dup # Верифицируем все установленные пакеты rpm -qa | sed -e 's/\.[^.]*$//' | sort | while read p ; do rpm --verify $p && echo -n + || zypper -n install -f $p ; done

    A way to get the output of a running process

ps -axf | grep processname touch log gdb -p 22499 (gdb) p close(1) # Close the stdout of the running process (gdb) p open("/home/moshkow/log", 1) # Open the log-file with O_WRITE (gdb) c ^C quit $ gdb -p {pid} # или в одном флаконе (gdb) p open( "logfilename" , 0101, 0777) $n = {log file descriptor} (gdb) p dup2( {log file descriptor} , 1) (gdb) c

    Rescan a SCSI bus without Rebooting

ls /sys/class/scsi_host # смотрим какие есть хост-адаптеры host0 host1 host2 host3 cat /sys/class/scsi_host/host*/proc_name # и какого они типа sata_nv echo "- - -" > /sys/class/scsi_host/host2/scan # сканируем dmesg # смотрим fdisk -l

    Падает LibreOffice 3.5.4

При запуске любые ЛибреОффисовские программы падали с кодом terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Помогло sudo rm -rf .config/libreoffice (Интересно, почему у многих файлов в этом каталоге были выставл;ены владельцы root:root?)

    Отработать локальный скрипт 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 # сканировать правый указательный

    Как проверить скорость сети

На одной машине запускаем сервер с максимальными настройками 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

    Как увеличить размер файловой системы

Графический менятель партиций gparted Размер NTFS меняют пакетом ntfsprogs ntfsresize --info /dev/hdb2 ntfsresize --forced --size 40G /dev/hda2

    Если диск стучит головками

Можно попробовать запретить парковку головок hdparm -B 255 /dev/sda

    Конвертация EXT3 в EXT4

tune2fs -O extents,uninit_bg,dir_index /dev/sdf2 e2fsck -fpD /dev/sdf2 e2fsck -fD /dev/sdf2

    Применение netcat

Слушать порт, коннекты сливать в файл: nc -l -p 3333 > file.txt Толкнуть данные в порт nc 192.168.1.1 3333 < file.txt

    Понизить скорость чтения с CDROM

eject -x 2 /dev/cdrom

    Распечатать информацию из BIOS

dmidecode

    Слить по горизонтали два столбика

paste -d " " stolbi1.txt stolbik2.txt

    Временная смена MAC-адреса в Linux

ifconfig eth0 hw ether ee:ee:ee:ee:ee:ee Постоянка для Debian /etc/network/interfaces : pre-up ifconfig eth0 hw ether 00:00:00:00:00:00

    Как отключить beep в xterm

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 вписываем хост-сервер сканера

    Как бороться с бадблоками на диске

http://smartmontools.sourceforge.net/badblockhowto.html

    Борьба с многодисковым GRUB

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,...

    Работа с двумя мониторами

(Не проверено) xorg.conf Option "UseDisplayDevice" "DFP-0" или Option "UseDisplayDevice" "CRT-0" включить: xrandr --output _output_name_ --mode 1680x1050 выключить: xrandr --output _output_name_ --off

    CIFS шары перестали обрабатывать симлинки

Отключаем unix-extensions: [global] unix extensions = No follow symlinks = Yes wide links = Yes

    Подстройка Десктопа и менюшек в KDE

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

    Завуковые настройки через alsamixer

ALSA sound http://crulman.livejournal.com/11223.html

    Как померять температуру

Температура диска (и много дополнительной info) smartctl --all /dev/sda |grep -i temp Температура системы cat /proc/acpi/thermal_zone/THM/temperature smartctl -i /dev/sda smartctl --smart=on /dev/sda # Включаем SMART smartctl --all /dev/sda # смотрим Критичные атрибуты: Raw Read Error Rate - частота ошибок при чтении данных с диска Spin Up Time - время раскрутки диска Spin Up Retry Count - число повторных попыток раскрутки Seek Error Rate - частота ошибок при позиционировании головок Reallocated Sector Count - число переназначенnых секторов Некритичные атрибуты: Start/Stop Count - полное число запусков/остановов шпинделя Power On Hours - число часов проведенных во включенном состоянии Drive Power Cycle Count - количество полных циклов включения-выключения Temperatue - показания встроенного термодатчика Current Pending Sector C - Число кандидатов на замену Uncorrectable Sector C - число нескорректированных ошибок UDMA CRC Error Rate - число ошибок при передаче Write Error Rate - частота ошибок при записи smartctl -H /dev/sda # быстрый селфтест smartctl --test=long /dev/sda # запуск долгого селфтеста smartctl -X # прерывание, если надоело ждать smartctl -l selftest /dev/sda # просмотр результатов прошедших тестов

    Как понизить скорость 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

    /etc/sysconfig/network-scripts/ : Некорректные скрипты

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

    Продолжение следует: xdm, uucp, startx-win95...

Присылайте свои советы/замечания/дополнения по поводу всего вышесказанного Максим Мошков. moshkow@ipsun.ras.ru

    Если не работает сетевая карта

http://www.scyld.com/network/rtl8139.html http://www.scyld.com/expert/modules.html Компиляция модуля с дравером: gcc -DMODULE -D__KERNEL__ -O6 -c driver.c Инсталляция в /lib/modules/kernel-version/net/driver.o install -m 644 driver.o /lib/modules/`uname -r`/net/ /etc/modules.conf: ########################### alias eth0 driver options driver full_duplex=1,0,1 debug=0 # включить full-duplex на 1 и 3-й карте ###########################

    Возможные поправки в TCP-конфиге

если слишком много time_wait netstat -na -f inet | grep ^tcp4 | awk '{print $(NF)}'|sort |uniq -c echo 1600 >/proc/sys/net/ipv4/tcp_keepalive_time echo 20 >/proc/sys/net/ipv4/tcp_fin_timeout echo 1 > /proc/sys/net/ipv4/tcp_keepalive_probes echo 0 > /proc/sys/net/ipv4/tcp_window_scaling echo 0 > /proc/sys/net/ipv4/tcp_sack echo 0 > /proc/sys/net/ipv4/tcp_timestamps echo 393213 > /proc/sys/net/core/rmem_max echo 393213 > /proc/sys/net/core/rmem_default echo 393213 > /proc/sys/net/core/wmem_max echo 393213 > /proc/sys/net/core/wmem_default

    Изготовление emergensy boot floppy

# mke2fs /dev/fd0 # mount /dev/fd0 /mnt/fd # mkdir /mnt/fd/boot # mkdir /mnt/fd/boot/grub # cp /boot/grub/stage1 /mnt/fd/boot/grub/stage1 # cp /boot/grub/stage2 /mnt/fd/boot/grub/stage2 # cp /boot/grub/menu.lst /mnt/fd/boot/grub/menu.lst # umount /mnt/fd # /sbin/grub --batch --device-map=/dev/null <<ЕОF device (fd0) /dev/fd0 root (fd0) setup (fd0) quit ЕОF Старый GRUB: # cd /boot/grub/ # dd if=stage1 of=/dev/fd0 bs=512 count=1 # dd if=stage2 of=/dev/fd0 bs=512 seek=1 А так же см. apt-cache search bootable livecd mkbootdisk mkinitrd-cd

    Как посмотреть Ь-ресурсы приложения

appres XTerm

    Как бороться за понижение температуры процессора

cpufreq-set -g powersave

    Переустановить дефолтные установки xterm

В файл .Xdefaults XTerm*foreground: grey XTerm*background: black XTerm*scrollBar: true XTerm*saveLines: 1000 XTerm*font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1 XTerm*Font2: -cronyx-fixed-medium-r-normal--10-*-*-*-*-*-koi8-r XTerm*Font3: -cronyx-fixed-medium-r-normal--13-*-*-*-*-*-koi8-r XTerm*Font4: -cronyx-fixed-medium-r-normal--15-*-*-*-*-*-koi8-r XTerm*Font5: -cronyx-fixed-medium-r-normal--20-*-*-*-*-*-koi8-r XTerm*Font6: -cronyx-fixed-medium-r-normal--24-*-*-*-*-*-koi8-r

Популярность: 44, Last-modified: Thu, 07 Mar 2024 07:27:56 GMT