Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #101, МАЙ 2007 г.

Tips'n'tricks юниксоида

Андрей Матвеев

Хакер, номер #101, стр. 119

(andrushock@real.xakep.ru)

Доблестный юниксоид! Представляю твоему вниманию очередную подборку различных трюков, рекомендаций и советов, касающихся *nix-систем.

Network

Создание шифрованного туннеля на 10 минут для безопасного получения почты:

$ ssh -2 -4 -C -N -f -L 8110:localhost:110 myname@mydomain.ru \

sleep 600

Резервирование домашней директории на удаленном хосте:

% tar zcf - ~/ | ssh trusted.box.ru 'cat > mybackup.tgz'

Оптимизация правил фильтра пакетов pf:

# pfctl -nvf /etc/pf.conf > /root/pf.conf.orig

# pfctl -nvf /etc/pf.conf -o > /root/pf.conf.optimized

# diff -u /root/pf.conf.orig /root/pf.conf.optimized | less

Перехват пакетов, проходящих через беспроводной сетевой интерфейс ral0:

# tcpdump -nettti ral0 -y IEEE802_11_RADIO

Создание IP-псевдонима (алиаса) для сетевого интерфейса fxp0 с IP-адресом 192.168.1.1:

# ifconfig fxp0 inet alias 192.168.1.2 netmask 255.255.255.255

 

Shell

Аккуратное удаление временных файлов, созданных более семи дней назад:

# find /tmp -type f -name '*' -mtime +7 -print0 | xargs -0 rm -f

Автоматизированное изменение прав доступа к файлам и директориям:

$ find . -type f -print0 | xargs -0 chmod 644

$ find . -type d -print0 | xargs -0 chmod 755

Фильтрация текстового потока по заданному шаблону (в данном случае пропускаем закомментированные строки):

% grep -v '^#' /etc/sysctl.conf

net.inet.ip.forwarding=1

net.inet.esp.enable=0

net.inet.ah.enable=0

net.inet.gre.allow=0

Расширенные регулярные выражения в действии:

% netstat -na -f inet | egrep '80|443'

tcp 0 0 *.80 *.* LISTEN

tcp 0 0 *.443 *.* LISTEN

Компиляция проекта в фоновом режиме:

# nohup make &

Журналирование интерактивной сессии без использования штатной утилиты script:

% ksh -i |& tee mysession.log

Пример использования множественных конвейеров:

% mysql --user=jabberd2 --password=noidea jabberd2 \

-e 'SELECT * FROM active' | fgrep -v collection-owner | \

sort | awk '{ print $1 }' > /var/www/htdocs/jabber2_users.txt

System

Добавляем второй своп объемом 256 Мб (пример для OpenBSD):

# dd if=/dev/zero of=/home/swap bs=1k count=262144

# chmod 600 /home/swap

# swapctl -a /home/swap

# echo "/home/swap /home/swap swap sw 0 0" >> /etc/fstab

Создание нескольких виртуальных звуковых каналов (для FreeBSD):

# sysctl hw.snd.pcm0.vchans=4

# sysctl hw.snd.maxautovchans=4

 

X Window

Создание снимка экрана с помощью утилиты import из пакета ImageMagick:

$ import -display localhost:0.0 -window root screenshot.jpg

Изменение разрешения экрана без перезапуска X-сервера:

# xrandr -s 1024x768 -r 85

 

Misc

Удобный просмотр всех журнальных записей в реальном времени с помощью программы screen из набора GNU-утилит:

$ vi ~/.screenrc

screen -t logz1 1 tail -f /var/log/authlog

screen -t logz2 2 tail -f /var/log/daemon

screen -t logz3 3 tail -f /var/log/maillog

screen -t logz4 4 tail -f /var/log/messages

screen -t logz5 5 tail -f /var/log/xferlog

select 1

Кодирование фильма для комфортного просмотра на КПК:

$ mencoder berkova.avi -oac mp3lame -ovc lavc -lavcopts \

vcodec=mpeg4:vhq:vqmin=2:vqmax=20:vmax_b_frames=2:vbitrate=100:vqcomp=0.6 \

-vop scale=220:165,eq=15 -ofps 20 -zoom -sws 2 -lameopts \

cbr:br=32:aq=0:mode=3 -o berkova_pda.avi

Создание ISO-образа OpenBSD 4.0 своими руками (дистрибутивные файлы из ftp://ftp.openbsd.org/pub/OpenBSD/4.0/i386/ должны находиться в каталоге /home/openbsd/image/4.0/i386):

# cd /home/openbsd

# mkhybrid -b 4.0/i386/cdrom39.fs -c boot.catalog \

-lrvDJLN -hide boot.catalog -hide-joliet boot.catalog \

-V "obsd40" -o obsd40.iso image

Уничтожение всех процессов, использующих /mnt/cdrom:

# cd /

# fuser -k -m /mnt/cdrom

# umount /mnt/cdrom

Пример запуска игрового сервера из стартового скрипта:

# vi /etc/rc.local

/usr/bin/su <username> -c "cd /usr/local/games/quake3 && \

/usr/local/bin/screen -d -m ./q3ded +exec configfile.cfg"

Содержание