суббота, 17 декабря 2005 г.

Перенос fat раздела с одного винта на другой

Про перенос линукса я рассказывал в заметке "Перенос Linux на другой винт". Теперь же, я расскажу как я переносил fat-раздел на другой винт. Ну мне было влом переставлять полностью всю винду, да и было интересно как это сделать. Значит я делал так:
1. Примонтировал разделы с виндой:
mount /dev/hda1 /mnt/win/ -o iocharset=utf8,showexec,quiet,umask=000
mount /dev/hdb1 /mnt/winhdb/ -o iocharset=utf8,showexec,quiet,umask=000

2. Затем просто скопировал все файлы:
cp -RgLpx --copy-contents /mnt/winhdb/* /mnt/win/

Кто не понял, я переношу fat32 раздел с /dev/hdb1 на /dev/hda1
3. Естественно виндовс грузится не будет, ибо он будет ругаться, что диск c: не является загрузочным. После окончания копирования, я загрузился с спасательного диска, на котором у меня был дос. Сделал следующее:
sys.com c:

Внимание: если вы грузились со спасательно диска той версии виндовс, каторая у вас установлена, то виндовс должен работать нормально, если нет, то см п.4.
4. Далее нужно скопировать системные файлы с hdb1 на hda1, можно это сделать сразу в досе, тоесть файлы корневого каталога скопировать с диска d: на диск c:, при условии, что старый диск подключек как Primary Slave.

На этом, перенос fat-раздела закончен.

воскресенье, 11 декабря 2005 г.

GentooSecurity

Введение: В этой статье вы узнаете, как повысить безопасность системы, в частности - как обезопасить свой компьютер во время работы во всемирной сети и как защититься даже от тех немногих вирусов, которые изредка поражают линукс-машины. Особенно те, которые плохо защищены.
Примечание: Советую читать мануалы к каждой отдельной программе перед ее запуском, а так же о ключах, которые я буду использовать, хотя я сам постараюсь о них рассказать. Все примеры показываются на Gentoo Linux, но так же применимы к другим операционным системам семейства linux.

Общие вопросы безопасности.

Пользователи.

Начнем с нелишнего напоминания: никогда не работайте в системе под root'ом. Это очень опасно и может привести к печальным последствиям, так как root (суперпользователь) обладает неограниченными правами и может делать с системой все, что пожелает. А иногда и то, чего и не желал, но было уже поздно... Следует создать одного обычного пользователя, от имени которого вы будете работать с системой. Назовем его user:
# useradd user -m -G users,wheel, audio -s /bin/bash
Этой командой мы создали пользователя с именем user, добавили его в группы users, audio, wheel и сделали ему оболочку bash, которая запускается по умолчанию.
Далее нужно дать пароль этому пользователю. Делается это так:
# passwd user
После этого система вас попросит ввести и подтвердить пароль. Теперь выйдите из системы и войдите от имени user. В дальнейшем, как и положено, для получения прав суперпользователя будем пользоваться командой su.

Редактируем файл /etc/securetty.

В этом файле находится список терминалов, по которым root может зайти в систему.
Пример файла /etc/securetty:

Рекомендуется удалить все строки, кроме vc/1(на других linux'ах следует оставить tty1), что даст возможность суперпользователю входить только с первой виртуальной консоли.

Делаем безопасную загрузку системы.

Файл /etc/inittab очень важен для всей системы. Полностью его мы разбирать не будем: нас интересует только одна его часть. Чтобы прикрыть доступ к однопользовательскому режиму (это режим суперпользователя, который используется для восстановления системы и который можно выбрать в загрузчике при запуске системы – и которым может воспользоваться непрошенный гость), нужно отредактировать файл /etc/inittab, добавив в него следующую строку:
~~:s:wait:/sbin/login
После этого, при загрузке в однопользовательском режиме, система не будет запускать оболочку (командный интерпретатор) до ввода пароля суперпользователя.

Перейдем к повышению безопасности двух наиболее популярных загрузчиков: LILO и GRUB. Сначала рассмотрим загрузчик LILO. Его конфигурационный файл находится в директории /etc, а конфиг называется lilo.conf. Вот пример незащищенного файла:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
lba32
default=linux

image=/boot/bzImage
label=linux
read-only
root=/dev/hdax


Давайте сделаем так, чтобы загрузка нашего linux'а была возможна только после ввода пароля. Для этого отредактируем файл /etc/lilo.conf
....

image=/boot/bzImage
password=ваш_пароль
label=linux
read-only

Теперь не забудьте ввести команду lilo в консоли для применения введенных изменений.
Все это хорошо, но злоумышленник может спокойно посмотреть файл /etc/lilo.conf, и кто ему помешает? Как кто - конечно же, мы с вами! С помощью известных команд chmod и chown изменим права для этого файла.
# chown root:root /etc/lilo.conf
# chmod 600 /etc/lilo.conf

В этом случае только суперпользователь сможет прочитать данный файл.
Далее создадим безопасную конфигурацию загрузчика GRUB. Нужный файл этого загрузчика находится в директории /boot/grub/grub.conf. Вот пример обычного конфигурационного файла:

boot=/dev/hdax
default=0
timeout=10
splashimage=(hd0,1)/grub/splash.xpm.gz
title Gentoo Linux (2.4.25)
root (hd0,1)
kernel /boot/kernel-2.4.25-gentoo-r1 ro root=/dev/hday video=vesa:1024x768@85, ywrap, mtrr, vga=0x317 splash=silent
initrd /boot/initrd-2.4.25-gentoo-r1


Загрузчик grub позволяет с помощью команды cat просматривать содержимое файла.
grub> cat /etc/passwd
grub> cat /etc/shadow

Думаю, вы понимаете, почему и насколько опасна эта возможность. Для защиты нужно установить пароль на grub. Делается это так:
# grub
grub> md5crypt
password: ********
Encrypted: $1$F19AIA2P$OQWK8KVD.4suSfTPfqxWt0
grub> quit

Мы получили зашифрованный пароль. Теперь добавим его в /boot/grub/grub.conf
boot=/dev/hda2
default=0
timeout=10
password --md5 $1$F19AIA2P$OQWK8KVD.4suSfTPfqxWt0
splashimage=(hd0,1)/grub/splash.xpm.gz

....
Вышеописанную операцию можно применять для скрытия раздела жесткого диска.
title Gentoo Linux (2.4.25)
password --md5 $1$F19AIA2P$OQWK8KVD.4suSfTPfqxWt0
(hd0,1)

Совет: Если у вас директория /boot находится на другом разделе, то подправьте /etc/fstab, чтоб раздел с /boot не монтировался автоматически при загрузке.

Отключение перезагрузки при нажатии


Действие, которое происходит при нажатии клавиш <Ctrl+Alt+Del>, указано в файле /etc/inittab. В этом файле будут содержаться строчки, наподобие вот таких:
# What to do at the "Three Finger Salute".
ca:12345:ctrlaltdel:/sbin/shutdown -r now
При нажатии <Ctrl+Alt+Del> система немедленно начнет перезагрузку компьютера. Чтобы деактивировать эту функцию, нужно всего лишь поставить значок комментирования "#" :
# What to do at the "Three Finger Salute".
#ca:12345:ctrlaltdel:/sbin/shutdown -r now

После редактирования следует перезапустить процесс init.
# kill -HUP 1
Либо нажать <Ctrl+Alt+Del> - в последний раз. :)

Создание паролей.

Пароли - это "ключи" от компьютера, поэтому они должны быть надежно спрятаны. Проверьте, правильно ли расставлены права на файлы /etc/passwd и /etc/shadow. Если есть сомнения, сделайте следующее:
#chmod 644 /etc/passwd
#chmod 600 /etc/shadow

В первом случае мы установили права на запись для root'а и чтение для всех, во втором - только на запись и чтение для root'а. В файле /etc/passwd хранится информация об учетных записях пользователей. Во втором - зашифрованные пароли пользователей, поэтому и нужно выполнить вышеуказанные команды.

Теперь давайте попробуем создать легко запоминающийся и одновременно сложный пароль. Для этого возьмем, например, словосочетание "cool admin". Создадим пароль в три этапа:
1. Добавим символы. Например из cool admin сделаем c00l_adm1n;
2. Поменяем регистр символов. Например из c00l_adm1n сделаем C00l_Adm!n;
3. Изменим порядок символов на противоположный. Например из C00l_Adm!n сделаем l00C_Adm!n.
Такой пароль подобрать гораздо сложнее, и продержаться он может довольно долго.
На заметку: меняйте пароли примерно раз в 4 месяца, если это домашний компьютер, а если сервер, то раз в один месяц.
Внимание!!! Не используйте приведенные тут пароли, так как после выхода этой статьи они могут быть занесены в словари взломщиков.

Защита и анализ файлов системных журналов.

Все операционные системы из семейства UNIX имеют один из самых простых, но очень полезных методов регистрации событий в системе. Все процессы и действия пользователей записываются в файлы системных журналов, которые обычно находятся в каталоге /var/log/.
Эти файлы тоже следует защитить. Давайте сделаем root'а владельцем этих файлов, а их чтение разрешим только членам группы log (можно брать любое название). Для остальных доступ закроем.
# addgroup log
# cd /var/log
# chgrp -R log .
# find . -type d | xargs chmod 750
# fing . -type f | xargs chmod 640
# chmod 750

Очень важно предоставить право записи в каталоге /var/log/ только root'у. Чтобы проверить, так ли это, нужно сделать следующее:
# ls -ld /var/log
drwxr-xr-x 6 root root 1016 Окт 6 20:02 /var/log

Также нужно защититься от случайного использования следующих команд:
# vi /var/log/messages
# cat /dev/null > /var/log/messages
# rm /var/log/messages

Сделать это можно с помощью команды chattr:
# chattr +a /var/log/messages
После этого попробуйте выполнить одну из вышеупомянутых команд. Каков результат? :)
Примечание: команда chattr доступна лишь на файловых системах ext2 и ext3.
Следует внимательно просматривать файлы системного журнала, чтобы вовремя заметить неладное и принять меры. Конечно же, вручную просматривать весьма неудобно, поэтому я посоветую несколько программ для просмотра файлов системного журнала.
LogSentry (http://www.psionic.com/products/logsentry.html)
LogSentry - это программа, которая вызывается с помощью демона cron и которая проводит анализ системного журнала, используя простые выражения egrep. Она также может отправлять отчеты по электронной почте администратору или другому пользователю.
Swatch (http://www.oit.ucsb.edu/~eta/swatch/)
Программа Swatch (Simple Watchdog) может работать в двух режимах: просматривать файл целиком или же по мере добавления в него записей. Написана программа на языке perl. Действия для Swatch задаются в файле конфигурации.
Взломав систему, опытный хакер постарается добавить свои записи в системный журнал с помощью команды logger.
# logger -p kern.allert "authentication failure; logname=user123 uid=510 euid=0 tty= ruser= rhost= user=root"
Теперь, когда вы будете просматривать файл журнала, вы подумаете, что пользователь user123 хочет получить права root. Когда обнаружится, что ваша система взломана, естественно, первым делом вы обвините в этом user123, а хакер скроется безнаказанным. Удаление команды logger не поможет, т.к. хакер сможет внести свои записи с помощью скриптов на C или Perl.


Профилактика атак. Подготовка системы к выходу в сеть (Internet).

Обычно, когда хакеры намереваются взломать какой-то компьютер, перед этим они собирают о нем сведения. Для этого они часто используют программы сканирования (например nmap, netcat). Чтобы не дать им этого сделать, вначале следует отключить все ненужные службы. Чтобы увидеть все службы, которые запускаются при старте системы, сделайте следующее:

Примечание: программа rc-update есть только в Gentoo linux, пользователям других дистрибутивов следует найти похожие средства в своей системе.
Как видите, у меня нет ни одного лишнего запущенного демона - только то, что нужно для нормальной и безопасной работы в интернете из дома. Если вы увидите, что у вас запущен, например, демон sshd, то его следует отключить. Вот так:
# rc-update del sshd default
Теперь нам надо просканировать собственный компьютер – да-да! - так мы узнаем, какие порты открыты, а какие нет(лучше сканировать с другого компьютера, если таковой имеется). Сделать это можно с помощью программы nmap (если она установлена, а если нет, то выполните emerge nmap, или же установите ее средствами своего дистрибутива). Перед использованием этой программы (как и любой другой) я рекомендую прочитать мануал к ней. Можно также использовать "морду" к nmap'у - nmapfe
Весьма удобная и комфортная вещь, все параметры сканирования можно выставить несколькими нажатиями мыши, но для того, чтобы были доступны все опции сканирования, она должна запускаться из-под root'а.
# nmap -vv -sS -sR -P0 -O 127.0.0.1
Вы получите список портов - по идее, если вы не настраивали межсетевой экран (фаерволл), то там все порты должны быть открытыми. Вы получите примерно следующий результат, только у вас будет куда больше открытых портов, чем у меня. :)

Давайте настроим фаерволл так, чтобы у вас было примерно то же. Первое, что нужно сделать - это установить iptables. Так производится установка в gentoo linux:
# emerge iptables
После установки следует написать правила для нашего фаерволла. Делаем все по очереди:

Очищаем все правила.
# iptables -F
Устанавливаем политику по-умолчанию для цепочек INPUT и FORWARD.
# iptables -P INPUT DROP
# iptables -P FORWARD DROP

Разрешаем некоторые виды icmp запросов, для нормальной работы в сети.
# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type 5 -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT

Разрешаем поступать к нам только пакетам, которые имеют состояние STATE и ESTABLISHED
# iptables -A INPUT -s 0/0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Разрешаем пакетам входит по цепочке INPUT с интерфейса lo(локальный интерфейс).
# iptables -A INPUT -i lo -j ACCEPT
Говорим iptables'у, что бы он вел лог всех входящих пакетов.
# iptables -A INPUT -J LOG
На этом конфигурация фаервола еще не завершена. Теперь запустим фаерволл:
# /etc/init.d/iptables start
Итак, мы настроили наш фаерволл на политику запрета всего, что явно не разрешено. Теперь вам нужно проанализировать логи, и на основе их написать еще несколько несложных правил для разрешения того, что вам нужно. Например, разрешение ssh-соединения к вашему компьютеру будет выглядеть так:
# iptables -A INPUT -s 0/0 -d your_ip --dport ssh -p tcp -j ACCEPT
Для написания правил к iptables вам придется почитать и изучить мануал.
Чтобы X-сервер не прослушивал порты, следует запускать его с опцией -nolisten tcp.
# startx -- -nolisten tcp
А если вы пользуетесь xdm, то вам надо подправить файл /etc/X11/xdm/Xservers
# vim /etc/X11/xdm/Xservers
Далее найдите строчку :0 local /usr/X11R6/bin/X и поменяйете ее на:
:0 local /usr/X11R6/bin/X -nolisten tcp
Теперь nmap покажет примерно такой же результат, как и у меня. Далее нужно сохранить правила, которые вы только что создали. Выполним:
# /etc/init.d/iptables save
и поместим созданные правила в автозагрузку:
# rc-update add iptables boot
Все, можно вздохнуть с некоторым облегчением. :)
Далее я предлагаю установить программу (а точнее, детектор сканирования) под названием portsentry.
# emerge portsentry
После установки следует немного изменить два файла. Первый находится в /etc/conf.d/portsentry.
В нем задаются режимы сканирования. Там будет 6 разных режимов. На них мы подробно останавливаться не будем, но я советую выбрать режимы улучшеного обнаружения скрытого сканирования atcp/audp. Теперь подправим конфигурационый файл программы:
# cp /etc/portsentry/portsentry.conf.sample /etc/portsentry/portsentry.conf
Файл хорошо комментирован, так что, думаю, проблем с настройкой не возникнет, ну если и возникнут, то вот мой конфиг.

Последнюю строчку можете подправить по своему вкусу, а можете оставить, если религия позволяет. :)
Теперь давайте запустим portsentry.
# /etc/init.d/portsentry start
Если будет ругаться, значит вы где-то ошиблись с конфигами. Если команда завершилась без ошибок, то можно добавить детектор в автозагрузку:
# rc-update add portsentry boot

Примечание:по умолчанию, portsentry может устанавливаться в /usr/local/psionic/portsentry/

Если же вам понадобится proxy-сервер, то нужно установить и настроить squid. Можно работать за целой цепочкой из прокси – в этом вам поможет утилитка proxychains. Ну, а чтобы серфить по нету под щитом прокси, достаточно указать в настройках своего броузера прокси сервер и все.
Также для повышения образованности советую сходить вот сюда: Gentoo Security Handbook. Но есть одно условие: нужно знать английский. :)

воскресенье, 16 октября 2005 г.

Перенос Linux на другой винт

Т.к. ставить gentoo поновой на новый винт мне не хотелось, да и настраивать заново тоже, да и времени на это все небыло, да и способ это маздайский, то я решил как-то все данные перенести на новый винт. Банальное копирование не помогло бы, т.к. нарушилась бы связь с симлинками и я пошел в гугл. Погуглив буквально 5 минут, я нашел то, что искал. :)
Самый простой способ (может даже самый быстрый) использовать tar. Принцип таков:
1. Подготавливаем диск. Тобишь разбиваем на разделы, создаем файловые системы и прочее :)
2. Монтируем будущий корневой раздел нового диска, например, в /mnt/hdb/. Затем пишем следующее:

cd /
tar -cf - bin boot dev etc home lib root sbin tmp usr var | (cd /mnt/hdb; tar -xvpf -)

Замечание: если у вас какой-то раздел идет отдельно, например /boot, то из этого перечня следует boot исключить. После завершения выполнения команды следует создать пустые папки с именами пропущеных рахделов, чтобы потом их можно было туда примонтировать.
Если есть отдельные разделы, принцип дальнейшего дейстия таков(например для /boot):
1. Монтируем будующий бут в /mnt/hdb/boot.
2. Выполняем следующие команды:
cd /boot
tar -cf - * | (cd /mnt/hdb/boot; tar -xvpf -)

Потом только надо будет записать загрузчик в mbr, подправить fstab и перенос на этом завершен.
Замечание: /proc и /sys переносить не нужно :)

четверг, 6 октября 2005 г.

MPEG4IP - Open Streaming Video and Audio

Почитав StraNNicK'а, решил перекодировать все mp3 теги. Для этого пользовался сабжем.
Для установки в Gentoo Linux, просто наберите:
emerge mpeg4ip

Я делал через ж**у криво, но зато все работает.
Шаг 1. Конвертируем mp3 в mp4.
mp4creator file.mp3 file.mp4

Шаг 2. Вставляем теги(собственно у меня почему-то эти теги потом bmp не читал)
mp4tags -a артист -s название_песни file.mp4

Шаг 3. Конвертация mp4 в mp3.
mp4creator -extract=1 file.mp4 file.mp3

Собственно все.
Далее я открывал файлы в bmp, в инфе о песне добавлял свои id3 теги и все потом отображалось гут. Собственно плейлист в utf8.

P.S. Это сделать меня подтолкнул переход на utf8 :) Переход прошел безболезненно и все работает, правда иногда mc что-то поглюкивает, надо будет погуглить :)

вторник, 26 июля 2005 г.

KGentooConf

Вчера мне truash подкинул интересную софтину и сейчас я намерен о ней рассказать. Зовется она KGentooConf. Т.к. в портах ее нету, пришлось ставить руками. Скачал этот архив, распаковал и принялся к установке. Затычка произошла сразу после ./configure. Он написал, что нету kde headers. "Как нету, если стоит весь kde-3.4?", - подумал я. Нашел я эти хэдэры в /usr/kde/3.4, явно указал к ним префикс и дело пошло. Собственно процесс установки:

# tar -xf kgentooconf-0.02.tar.gz
# cd kgentooconf
# ./configure --prefix=/usr/kde/3.4
# make
# make install

Установка завершена. Решил я это чудо техники протестить и поделиться впечатлениями. Запустил. Интерфейс не очень порадовал, хотя спорить не буду - удобно. Сразу в этой программе можно сделать многое. Например:
1. Выставить флаги компиляции и use-флаги.
2. Выставить опции и свойства портежей.
3. Выбрать зеркала для скачания и синхронизации.
4. Настроить и поднять сеть. Причем можно также внести изменения в /etc/hosts
5. Также показывается статус программы. Тоесть действия, что выполняла программа, ввиде лога.
Кажется все вспомнил :) Как покажется весьма полезная программа, но это только видимая часть айсберга. Ну решил я поменять какие-то опции через эту программу. Залез в portage features, поставил галочки напротив CCache и AutoClean. Далее Menu->File->Save и программа вылетела с segmentation fault. Проделал это еще пару раз... Программа срабатывала через раз, но настройки, при каждом новом запуске, оставались дефолтными, что не могло не удивлять. Хотя.. это все еще версия 0.2 :) Закрыл я эту программу и больше не запускал. Вродь все хорошо. Через некоторое время перезагрузил комп... я был поражен... Файл /etc/hosts был пустым, чертова программа его стерла. Ну backup конечно рулит, так что все быстро восстановил. На этой ноте обяъвляю обзор закрытым и представляю вашему вниманию два своих вывода. :)
Вывод первый: программа очень сырая.
Вывод второй: если вам не нужно лишнего геммороя, то делайте все руками без участия лишних программ. Ну и backup, как я уже говорил, рулит! :)
P.S.(добавление от 28.07.05) Еще эта программа сменила опцию компиляции с -fomit-frame-pointer на -fomitframepointer, из-за чего я получал ошибку при компиляции. Вообщем смотреть тут.
Удачного плаванья!

воскресенье, 15 мая 2005 г.

Установка gDesklets на Gentoo Linux.

В процессе установки может быть мелкая гадость. :) Сами gDesklets'ы ставятся, но при запуске любых сенсоров, они ругаются на отсутствие модуля gtkhtml2. Решается это следующим образом:
ACCEPT_KEYWORDS="~x86" ACCEPT_USE="gtkhtml" emerge libgtkhtml glut pyopengl gtkglarea pygtk gnome-python gdesklets-core

Далее перезапускаем gDesklets'ы и радуемся жизни.

среда, 4 мая 2005 г.

Монтирование windows разделов

Это статья, в которой расписываются нюансы монтирования виндовс разделов. Читайте и не задавайте больше вопросов про монтирование на различных форумах.

пятница, 25 марта 2005 г.

Выход в интернет по модему. (скрипт)

1. Советую прочитать man pppd и man chat :) Куда ж без манов то?
Начнемс.
2. Создаем в папке /etc/ppp/peers/ файл, например, с названием вашего прова. Свой я назвал infocom. Пишем в него следующее:
/dev/ttyS0 debug persist connect '/usr/sbin/chat -v -f /etc/ppp/chat-infocom' user wiseelf usepeerdns noipdefault defaultroute


Посню че это значит. /dev/ttyS0 - это порт на котором висит модем. Вам надо будет заменить на свой.
noipdefault - не использовать ip-адрес, назначей для даного хоста по умолчанию.
usepeerdns - получить dns от сервера.
user - имя пользователя, нужно для авторизации. Пароль даного пользователя находится в файле pap-secrets.
persist - восстанавливать соединение при разрыве.
debug - нужен для отладки скрипта.
3. Для дозвона до провайдера мы будем использовать скрипт /etc/ppp/chat-infocom. Такого файла нету, так что его нужно создать. Вот его содержимое:
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
"" "AT"
"OK" "at+ms=56" ## Эта строка вам ненужна. Это натравка модема GVC на работу по протоколу K56Flex
"OK" "atm0S7=45S0=0L1V1X4&c1E1Q0" # Эта впринцепе тоже. Подбирайте настройки по своему модему. Но будет работать и без этих двух строк.
"OK" "ATDPnumber"
"CONNECT" ""

number нужно заменить на номер провайдера.
4. Далее осталось написать юзера и пароль в /etc/ppp/pap-secrets
Формат записи таков:
usename - password

Выше написано user wiseelf, значит файл /etc/ppp/pap-secrets будет выглядеть так:
wiseelf - password

Теперь запускаем скрипт: pppd call infocom
Удачного серфинга!

воскресенье, 16 января 2005 г.

Настройка мультимедийной клавы в консоли.

История началась тогда, када купил я себе, почти мультимедийную клаву, тоесть 3 мультимедийных кнопки (Power, Sleep, Wake). Продолжилась тем, что я решил их заюзать. Значит настроить эти кнопочки в иксах труда особого не составило. А вот консоль... Консоль заставила почитать несколько манов :)
Итак.. приступим :)
Шаг первый.
С помощью команды showkey получаем скан коды наших клавиш.
Я, в ниже проилюстрированном примере, получил скан коды клавиш Wake, Sleep, Power соответственно.
Elvenhome root # showkey -s
режим клавиатуры был XLATE

нажмите на клавишу 'any' (она на системном блоке)...
Программа завершается после 10 секунд 'покоя' (не нажимается ни одна клавиша)
0xe0 0x63 0xe0 0xe3 //Первых две позиции - клавиша нажата, следующих две отпущена.
0xe0 0x5f 0xe0 0xdf //аналочично.
0xe0 0x5e 0xe0 0xde //аналогично.

А теперь попробуй те запустить туже программу только с ключиком -k. Не пугайтесь, программа ничего не выдаст, так и должно быть. И так у нас есть скан коды, но что же с ними делать? Как что?
Шаг второй.
Нужно назначить им соответствующие клавишные коды, с помощью команды setkeycodes.
Внимание важно!
Клавишных кодов есть всего 127. Это заложено в ядре. По-этому, нужно глянуть в файл вашей текущей раскладки клавиатуры(у меня он лежит в /usr/share/keymaps/i386/qwerty/) и посмотреть есть ли там свободные места. Там также можегут быть расписаны все клавиши, но они могут не иметь никакого значения. Также не пытайтесь ничего записать на нулевую позицию.

Elvenhome root # setkeycodes e063 122
Elvenhome root # setkeycodes e05f 123
Elvenhome root # setkeycodes e05e 124

Я назначил каждой клавише по клавишному коду. Теперь можете запустить, уже извесную вам, команду showkey -k и посмотреть результат. :) Но и это еще не все.
Шаг третий.
Открываем на редактирование файл вашей текужей раскладки и дописываем в него следующе:
...
keycode 122 = Decr_Console
keycode 123 = Incr_Console
keycode 124 = F13
string F13 = "/sbin/shutdown -h now\n"

Если вы самостоятельно дописывали строку keycode, может быть случай, что она там уже есть, то старайтесь выровнять ее с вышенаписанной токойже строкой.
Поясню, что я написал. Я повесил на клавишу Wake переключени консолей (на одну назад), а на клавишу Sleep переключение кончолей на одну вперед. Теперь самая изюминка. Так как на наших клавах нет клавиш F13, F14 (и так далее), то мы можем использовать эти клавищи как 'переменные'(наверно можно создать и свою 'переменную' но я не стал на этом зацикливаться). Значит я присвоил клавише F13 строчку '/sbin/shutdown -h now\n'(симлом \n означает перевод строки, а в данном случае заменяет Enter), а потом клавише Power присвоил значение клавиши F13. Не забудьте в конче файла оставить пустую строку.
Теперь надо загрузить нашу раскладку:
Elvenhome root # loadkeys /usr/share/keymaps/i386/qwerty/ru-ms.map.gz

Все теперь наслаждайтесь своей работой. Если у вас что-то не получилось, вернитесь к шагу 1.
P.S. насладжаться вы будете до первой перезагрузки. Как же так скажете вы? А вот так :)
Нужно записать все команды setkeycodes в какой-то загрузочный скрипт, для гентульменов я рекомендую все это дело засунуть в /etc/conf.d/local.start
Удачи и приятного освоения консоли!!!

четверг, 13 января 2005 г.

Мини FAQ... (продолжение)

Часто на форумах можно встретить такой вопрос(да простит меня piton3000, за выкладывание его поста):
после установки apache и настройки виртуального хоста, при заходе на http://localhost
получаю вот такое сообщение
Forbidden
You don't have permission to access / on this server.

с чем это может быть связано?

Ответ на него очень простой. Находим к конфиге апача вот такой кусок, он должен ити после строки, в которой есть слово, .htaccess.

‹ IfModule mod_access.c›
‹Files ~ "^\.ht"›
Order allow,deny
Deny from all
‹/Files›
‹/IfModule›


и дописать после строки "Deny from all" строчку "Allow from localhost"

Все, теперь набирайте http://localhost и локально на своем веб-сервере. =)

пятница, 7 января 2005 г.

Мини FAQ... (продолжение)

Значит седня в чате возник вопрос про чувствительность мыши... Нет не про скорость, а про чувствительность. Ну мы с TIM'ом, вернее больше он, придумали вот что.
Значит с помощью команды xset можно выставить правильные параметры.
To set mouse acceleration and threshold:
m [acc_mult[/acc_div] [thr]] m default

Значит подстраивам это дело все под себя. Например у меня получилось нечто вот такое:
xset m 5 2
Далее эту строчку записываем в .xinitc можно перед стартом оконного менеджера, но лучше после. ;)
Удачи!

четверг, 6 января 2005 г.

Мини FAQ... (продолжение)

Еще мне часто задают вопрос: "как руссифицировать aterm(xterm)?"
И всех я посылаю по следующему линку: http://linux.net.ru/node/203
Также этот линк можно отрыть в гугле очень простым запросом: "Русификация xterm"
Удачи... Продолжение следует.
P.S. этот линк, если не ошибаюсь, мне дал StraNNicK

понедельник, 3 января 2005 г.

Мини FAQ...

Вот решил организовать мини FAQ по тем вопросам, которые мне часто всего задают в асе и по тем, которые я часто вижу =).
Начнемс...
1. Частеньку слышу вот такой вопрос:
Почему у меня в иксовом терминале(aterm, xterm, eterm) вместо привычной конструкции: username@hostname; есть вот такая: bash-2.05$?
Ответ.
Я решил у себя эту проблемму так:
Дописал в конец $HOME/.bashrc такую строчку
[ -f /etc/profile ] && source /etc/profile
Также на форуме есть еще одно решение этой проблеммы.
Вот тут.