Linux

Статьи посвященные Linux

  • Kubuntu - взгляд в упор
  • Linux в Сети

    Ссылки на ресурсы посвященные Linux

    Ссылки разделены на категории. В некоторых случаях такое деление можно считать условным, так как ресурс может быть многоплановым, тогда старался исходить из наиболее сильной стороны ресурса. Но есть и ресурсы которые попали в "разное" - не распробовал (С) :)

    Оставляйте комментарии с новыми ссылками и сообщайте о "битых".

    Форумы
    http://www.linux.ru - русскоязычный
    http://linuxportal.ru - русскоязычный
    http://www.linux.org.ru - русскоязычный
    http://www.linuxforum.ru - русскоязычный

    Документация
    http://opennet.ru - русскоязычный
    http://linux.yaroslavl.ru - русскоязычный
    http://www.linux.org
    http://docs.linux.org.ua - на украинском языке
    http://rus-linux.net - русскоязычный
    http://linuxsam.org.ua - позиционируется как помощь начинающим пользователям Linux
    http://unixdocs.rags.ru - русскоязычный

    Дистрибутивы
    http://slackware.com
    http://www.opensuse.org - есть информация и на русском языке
    http://www.us.debian.org
    http://www.redhat.com
    http://altlinux.ru - русскоязычный
    http://www.asplinux.ru - русскоязычный
    http://www.ubuntu.com
    http://kubuntu.org
    http://www.knoppix.org
    http://cdimage.ubuntu.com
    http://www.gentoo.org
    http://fedoraproject.org
    http://slackware.ru - русскоязычный
    http://www.linuxiso.com.ua - распространение дистрибутивов Linux, FreeBSD, Solaris, русскоязычный

    Программное обеспечение
    http://kernel.org
    http://packages.slackware.it - пакеты для Slackware (официальный сайт)
    http://www.linuxpackages.net - собранные пакеты для Slackware
    http://lafox.net - русскоязычный
    http://sourceforge.net
    http://kde.org
    http://www.gnome.org
    http://greenflash.at.ua - про изготовление мультизагрузочного flash-носителя
    http://festlang.berlios.de/docu/doku.php?id=russianru - русский язык в Festival - системе распознавания речи

    Разное
    http://www.linux.com
    http://www.linuxcenter.ru
    http://linux.ru.net
    http://www.linuxnsk.ru
    http://posix.ru
    http://www.nixp.ru
    http://www.linuxsecurity.com
    http://www.linux-foundation.org

    Linux: графическая система

    В данной статье даны ответы на самые распространенные вопросы, возникающие при работе с графической системой Linux - X.Org X Server (далее - xorg, подробнее - http://www.x.org , http://ru.wikipedia.org/wiki/X_Window_System). Данная система используется во всех современных дистрибутивах Linux. В дистрибутивах, выпущенных несколько лет назад, скорее всего, используется XFree86. Однако, некоторые советы, приведенные ниже, подойдут и для XFree86.
    Будут рассмотрены вопросы, не привязанные к конкретной среде рабочего стола.

    Где находится конфигурационный файл xorg?
    /etc/X11/xorg.conf

    Где находится лог-файл xorg?
    /var/log/Xorg.0.log
    либо
    /var/log/Xorg.n.log
    где n - номер дисплея.

    Необходимо ли устанавливать дополнительные программы кроме xorg для того, чтобы работать с графическим интерфейсом?
    Да. Необходимо установить пакет программ для работы с рабочим столом (desktop environment), к примеру KDE, Gnome, Xfce или любой другой, предназначенный для работы с X.Org X Server для Linux.

    При загрузке вместо графического интерфейса черный экран, а затем появляется командная строка (или черный экран "висит", разноцветные полоски и т.п.). Что делать?
    Скорее всего, при установке неверно определены параметры оборудования. Попробуйте сконфигурировать автоматически вашу графическую систему. Если во время загрузки система "не вываливается" в командную строку, попробуйте "убить" Х-сервер нажатием crl+alt+backspace, либо перейти на консоль нажатием ctrl+alt+F1. Введите имя пользователя root и пароль. (Либо выполнить вход по учетной записью пользователя, а команды выполнять через sudo) Выполните следующие команды:
    telinit 3
    определяем оборудование и создаем конфигурационный файл
    #X -configure
    переименовываем существующий файл
    #mv /etc/X11/xorg.conf /etc/X11/xorg.conf.old
    копируем новый файл
    #cp /root/xorg.new /etc/X11/xorg.conf
    telinit 5
    Если после этих действий графическая система не грузится, значит необходимо ручное конфигурирование xorg.conf

    Как определить по какой причине не загружается xorg?
    Смотрите лог-файл на предмет сообщений с пометкой (EE) и (NI)

    При загрузке графической системы выдается предупреждение о неверном режиме работы монитора.
    Необходимо указать параметры вашего монитора. Переходим на первую консоль ctrl+alt+F1. Заходим с правами пользователя root. Выполняем
    telinit 3
    Открываем на редактирование файл xorg.conf . В секции
    Section "Monitor"
    прописываем строки
    HorizSync X1-X2
    VertRefresh Y1-Y2

    Где X1-X2 - горизонтальные частоты развертки в КГц
    Y1-Y2 - вертикальные частоты развертки в Гц
    Данные параметры можно узнать в документации к монитору или поискать в Интернете параметры для аналогичных моделей. К примеру, для стандартного 17-ти дюймового ЭЛТ-монитора эти параметры следующие
    HorizSync 30-71
    VertRefresh 50-160

    Сохраняем изменения в xorg.conf и даем команду
    telinit 5

    Где найти драйвера для видеокарт NVidia?
    Для начала посмотрите посредством менеджера пакетов на диске с дистрибутивом и в официальных репозитариях. Если не нашли или необходимы "свежие" драйвера, то зайдите на страницу
    http://www.nvidia.com/object/unix.html

    Где найти драйвера для видеокарт ATI?
    Для начала посмотрите посредством менеджера пакетов на диске с дистрибутивом и в официальных репозитариях. Если не нашли или необходимы "свежие" драйвера, то зайдите на страницу
    http://ati.amd.com/support/driver.html

    Я думаю, что проблема в загружаемом драйвере для видеокарты. Как проверить?
    В секции Section "Device" конфигурационного файла замените строку
    Driver "ваш_драйвер"
    на
    Driver "vesa"
    С этим драйвером должны загрузиться более 90% конфигураций.

    В графической системе не работает колесико мыши. Что делать?
    В файл xorg.conf в секцию Section "InputDevice" добавить строку
    Option "ZAxisMapping" "4 5"
    Изменения вступят в силу после перезагрузки xorg.

    Не отображаются заголовки окон. Используются драйвера NVidia и ПО compiz. Что делать?
    Выполнить
    $sudo nvidia-xconfig --add-argb-glx-visuals -d 24
    Перезагрузить xorg. Помогает в большинстве случаев.

    Linux: командная строка - это не страшно

    Осваиваем командную строку. Практические советы.
    Караул! Помогите! После (установки, изменения состава пакетов, настройки видеокарточки - нужное подчеркнуть) графический интерфейс не грузится, только командная строка. Что делать?! Такие вопросы через один встречаются на форумах, посвященных Linux. Что делать? - вводить команды. Ниже даны примеры с разъяснениями по самым распространенным вопросам при работе с командной строкой, задаваемым обычно на форумах.

    После установки системы я вижу на экране строку
    login:
    Что делать?

    Необходимо ввести имя пользователя, указанное на этапе установки, либо root, нажать на Enter, затем ввести пароль, который просила ввести программа установки.
    root - это суперпользователь в Unix системах.
    Внимание! Работать постоянно с правами пользователя root крайне нежелательно с точки зрения безопасности. Работайте под root'ом только при необходимости вводить много команд, которые требуют привелегий суперпользователя. Одну-две команды, требующие прав root, можно выполнить с помощью команды sudo в сессии обычного пользователя, к примеру
    $sudo /sbin/ifconfig
    Также следует учесть, что не все нижеприведенные примеры могут оказаться работоспособными в любом дистрибутиве, так как могут отсутствовать необходимые пакеты.

    Что значит "прочитать man по mount" ?
    Это означает, что в командной строке необходимо выполнить команду
    #man mount
    man показывает справочную информацию.
    #man man
    выведет справочную информацию о себе.

    Как узнать информацию о используемой системе?
    #uname -a

    Как узнать из командной строки установлена ли в системе та или иная программа и в каком каталоге именно?
    #locate <имя_программы>
    либо командой поиска
    #find / -name <имя_программы>
    которая умеет искать не только по имени программы. Больше информации можно узнать, выполнив команду
    #man find

    Как узнать сколько свободного места на диске(дисках)?
    #df
    Команда показывает информацию об использованном и свободном месте для каждого смонтированного раздела.

    Как отредактировать текстовый (конфигурационный) файл?
    Необходимо выполнить команду
    #vi <путь_к_файлу/имя_файла>
    если ответом системы на вышеприведенную команду будет сообщение, что команда не найдена, значит текстовый редактор vi не установлен в системе. Можно попробовать другие редакторы
    #joe <путь_к_файлу/имя_файла>
    #vim <путь_к_файлу/имя_файла>
    #pico <путь_к_файлу/имя_файла>
    Необходимо учитывать, что в Linux в именах файлов имеет значение регистр букв. т.е. XORG.conf и xorg.conf - это разные файлы.

    Я не нашел в системе текстовый редактор, но надо создать файл на несколько строк. Возможно ли это без текстового редактора?
    Возможно. Предположим, необходимо создать исполняемый файл script.sh с двумя строками
    #!/bin/sh
    /bin/ls -sl

    Выполняем:
    echo '#!/bin/sh' > script.sh
    echo '/bin/ls -sl' >> script.sh
    chmod +x script.sh

    Как создать пустой файл с именем README?
    echo > README

    Как создать директорию с именем video?
    md video

    Как узнать, какие модули ядра загружены?
    #lsmod

    Как просмотреть текстовый файл?
    #less <путь_к_файлу/имя_файла>

    В лог-файле много строк. Как просмотреть только строки, содержащие слово "Error" ?
    #cat <имя_файла> | grep "Error"
    Внимание! различается регистр букв, т.е. "error" и "Error" даст разные результаты.

    Как вывести последние n строк текстового файла?
    #cat <имя_файла> | tail -n
    Пример: посмотреть последние 20 строк файла системных сообщений
    #cat /var/log/messages | tail -20

    Как просмотреть последние системные сообщения?
    #dmesg

    Где находится и как называется конфигурационных файл графической подсистемы?
    Во всех современных дистрибутивах это
    /etc/X11/xorg.conf

    Как загрузить модуль ядра?
    #insmod <имя_модуля>

    либо
    #modprobe <имя_модуля>

    Как посмотреть сколько жестких дисков видит система и какие разделы на них?
    #fdisk -l

    Как "увидеть флешку"?
    После подключения необходимо выполнить монтирование раздела с Flash-накопителем. Сначала необходимо выполнить команду
    #dmesg
    чтобы посмотреть какое имя устройства система назначила накопителю. Пусть имя утройства будет /dev/sda, а имя раздела - /dev/sda1. Монтируем:
    #mount /dev/sda1 /mnt/flash
    где /mnt/flash - существующий каталог.
    Теперь содержимое Flash-накопителя можно посмотреть в каталоге /mnt/flash

    Как размонтировать раздел?
    #umount <путь_к_каталогу>

    Как перейти в определенный каталог?
    #cd <путь_к_каталогу>
    Пример: перейти в каталог /etc/X11
    #cd /etc/X11

    Как удалить файл?
    #rm <имя_файла>

    Как удалить каталог?
    #rm -R <имя_каталога>

    Как посмотреть содержимое текущего каталога?
    #ls

    Как посмотреть содержимое определенного каталога?
    #ls <путь_к_каталогу>

    Команда ls не показывает размер файлов. Что делать?
    #ls -sl

    Как скопировать файл?
    #cp <имя_файла> <путь_куда_копировать>

    Как выполнить исполняемый файл?
    Если файл находится в текущем каталоге, то необходимо выполнить
    #./<имя_файла>
    Если файл находится не в текущем каталоге:
    #/<путь_к_файлу>/<имя_файла>

    Я точно знаю, что файл исполняемый, но при попытке его выполнить система сообщает, что "отказано в доступе". Что делать?
    Если при этом Вы работаете учетной записью пользователя root, то это значит, что файлу не присвоен атрибут исполняемый. Необходимо выполнить команду
    #chmod +x <имя_файла>

    Как выяснить, установлен ли в системе определенный rpm-пакет?
    #rpm -qa | grep "<имя_пакета>"

    Как установить rpm-пакет?
    #rpm -i <имя_файла>

    Как посмотреть список исполняемых процессов?
    #ps -ax

    Как посмотреть загруженность системы, выделенную память, какая программа сколько потребляет ресурсов?
    #top
    Чтобы прервать выполнение top необходимо нажать q

    Как получить информация о процессоре?
    #cat /proc/cpuinfo

    Как получить расширенную информацию о распределении памяти?
    #cat /proc/meminfo

    Как получить информацию об устройствах pci?
    #lspci

    Как получить информацию об устройствах в системе?
    #lsdev

    Как посмотреть сетевые соединения?
    #netstat

    Как посмотреть только http-соединения?
    #netstat | grep "http"

    Как посмотреть какие процессы какие сетевые соединения открыли?
    #lsof -i

    Что значит пропинговать mail.ru ?
    Это значит послать запросы по протоколу ICMP на хост mail.ru. Выполняется командой
    #ping mail.ru
    Таким образом можно проверить наличие сетевого соединения с ближайшим хостом или определить наличие в сети определенного узла. Однако, иногда сеть или хост специально закрывают от ICMP-пакетов в целях обеспечения безопасности.

    Что значит протрассировать (дать трассерт на) хост mail.ru ?
    Это означает, что необходимо дать команду
    #traceroute mail.ru
    Данная команда показывает узлы, через которые проходит запрос и задержку до них.

    Как посмотреть информацию о сетевых интерфейсах?
    #ifconfig

    Как отключить (положить) сетевой интерфейс?
    #ifconfig <имя_интерфейса> down
    Обычно интерфейс на первой сетевой карте имеет имя eth0

    Как включить (поднять) сетевой интерфейс?
    #ifconfig <имя_интерфейса> up

    Как посмотреть "физическую" информацию о интерфейсе?
    #ethtool <имя_интерфейса>

    Как просмотреть таблицу маршрутизации?
    #route

    Как прописать маршрут по умолчанию для интерфейса eth1?
    #route add default gw dev eth1

    Как удалить маршрут по умолчанию?
    #route del default

    Как просмотреть настройки файрвола?
    #iptables -L

    Как отключить файрвол?
    #iptables -P INPUT ACCEPT
    #iptables -P OUTPUT ACCEPT
    #iptables -P FORWARD ACCEPT
    #iptables -F
    #iptables -X
    Внимание! после перезагрузки системы настройки файрвола снова вступят в действие.

    Я запустил в консоли программу и не знаю как из нее выйти?
    Обычно для того, чтобы прервать выполнение программы необходимо нажать Ctrl+C
    Однако, это справедливо не для всех програм.

    Как "убить" процесс?
    #kill <номер_процесса>
    Номер процесса можно узнать, выполнив команду ps ax

    "Убить" процесс с помощью kill <номер_процесса> не получается? Что делать?
    Выполнить команду
    #kill -9 <номер_процесса>

    Как "убить" все процессы с определенным именем?
    Выполнить команду
    #killall <имя_процесса>

    Как перезагрузить компьютер?
    #reboot

    Как выключить компьютер?
    #halt

    После изменения настроек графическая система не загружается. Что делать?
    Залогиниться под учетной записью root. Выполнить
    #X -configure
    #cp /home/root/xorg.conf.new /etx/X11/xorg.conf

    Залогиниться пользователем. Выполнить
    $startx

    Команды, специфические для Ubuntu/Kubuntu

    Как обновить список доступных в репозитариях пакетов?
    $sudo apt-get update

    Как обновить установленные пакеты?
    $sudo apt-get upgrade

    Как установить пакет?
    $sudo apt-get install name
    где name - имя пакета

    Как найти пакет в списке доступных?
    $sudo aptitude search name
    где name - имя пакета

    Как в Ubuntu 10.04 перенести кнопки окна слева на право?
    Необходимо выполнить команду
    $gconftool-2 --set /apps/metacity/general/button_layout --type string "menu:minimize,maximize,close"

    Linux: маленькие хитрости

    Как в командной строке получить дату за предыдущий день?
    date -d 'day ago'

    Как в командной строке присвоить текущую дату переменной?
    D=`date`

    Как избежать отправки сообщения пользователю на e-mail при выполнении задания cron?
    Перенаправить вывод следующим образом:
    >>/dev/null 2>&1

    Как перенаправить сообщения от cron произвольному пользователю?
    Прописать переменную MAILTO= в файле задания

    Выполнение команд пакетом

    При использовании консоли бывают случаи, когда нужно запустить последовательность команд (такое может
    случиться и при работе с графическим интерфейсом, но тогда решение будет отнюдь не таким простым).
    Классическим примером тут служит стандартный способ установки программ из исходных текстов, требующий
    запуска ./configure (возможно, с аргументами), а затем make и make install. Выполнение некоторых
    из этих шагов может длиться часами, в зависимости от сложности кода и возможностей вашей машины.
    Ожидать окончания одного шага, чтобы ввести следующий, неэффективно – лучше сделать так:
    ./configure; make; make install
    Точка с запятой говорит о том, что команды должны выполняться последовательно, как если бы вы вводили
    их по очереди. Но тут можно заметить потенциальную проблему: а ну как ./configure или make завершатся с ошибкой?
    Будут ли выполнены последовательно заданные команды? Ответ – да, причем они наверняка скроют сообщения
    об ошибках, и вы не узнаете о проблемах, пока не возьметесь работать с этой программой.
    Вот более практичный способ запуска данных команд:
    ./configure && make && make install

    && – это логический оператор. Приведенная последовательность означает «если ./configure истинно, и make истинно, и make install истинно». Оболочка определяет истинность команды, запустив ее на предмет выдачи
    возможных ошибок. При их наличии в первой команде следующая запускаться не станет, поскольку тест
    уже провален, так что объединение команд с помощью && запускает их поочередно, но останавливается,
    как только одна из команд возвращает ошибку – а значит, вам незачем неотлучно дежурить у консоли.
    Сопутствующий оператор – ||, означающий «или», то есть при вводе: команда1 || команда2 команда2 сработает только в том случае, если команда1 завершится с ошибкой. Это не очень ценно в интерактивной оболочке,
    но часто применяется в скриптах, например: некаякоманда1 || echo «Что-то сломалось!”

    Samba и Active Directory

    Протокол SMB (Server Message Block) – основной способ сетевого взаимодействия между Windows-машинами. Его главная функция – предоставление доступа к файлам и каталогам на удаленном сервере (организация сетевой файловой системы), а также удаленная печать. Кроме того, SMB обеспечивает синхронизацию времени и некоторые другие возможности.

    С момента своего создания и по сей день SMB/CIFS является основным протоколом, который используют ОС семейства Windows для сетевого взаимодействия, но это не значит, что все эти годы он оставался неизменным. Теоретически, современная реализация SMB обратно совместима со всеми предыдущими версиями. Однако настройка этой совместимости часто взывает у системных администраторов проблемы даже в том случае, когда и клиентская, и серверная ОС – это Windows.
    Как правило, все сводится к тому, что пользователь Windows 98 не может «зайти» на ПК с Windows XP, какие бы данные ни указывались в диалоге для ввода имени и пароля. А дело в том, что Windows 98 и Windows XP (по умолчанию) используют разные схемы аутентификации.
    Впрочем, при настройке доступа через SMB на Linux-сервер с установленным пакетом Samba возникают не меньшие проблемы. Документация на официальном сайте достаточно подробна, но, к сожалению, содержит мало сведений об устранении возникающих неполадок. Поэтому пользователь, в большинстве случаев, остается один на один с выложенными в Сети HOW-TO, которые на полноту изложения тоже не претендуют. Мы постараемся описать специфику SMB, а затем – те настройки Windows и Samba, которые влияют на их взаимодействие по сети.
    Методы аутентификации
    Важнейшую часть протокола SMB составляют методы аутентификации. Именно их несогласованность на сторонах клиента и сервера является причиной большинства проблем при сетевом доступе. Различают четыре основных метода:
    1. Открытым текстом
    Пароль пересылается по сети в незашифрованном виде; по этой причине использование данного типа аутентификации крайне нежелательно. Такой метод применялся в клиентах MS-DOS, а также в старых версиях Windows NT, и отключен по умолчанию в Windows 95 и выше (для его включения необходимо редактировать реестр). В Windows 2000 и выше аутентификацию открытым текстом можно активировать и через локальные политики безопасности (надо установить переключатель «Посылать незашифрованный пароль сторонним SMB-серверам» в «Да»). Старые версии Samba также использовали аутентификацию открытым текстом; в текущих пароль шифруется. Это можно отключить, указав
    encrypted password = false
    в файле smb.conf.
    2. Методом LM
    (LAN Manager) Он используется в Windows 95/98. Здесь возможны проблемы с доступом к ресурсам, обслуживаемым Windows NT 4.0 SP3 и выше. При их возникновении следует установить параметр «Уровень проверки подлинности LAN Manager» в положение «Отправлять LM и NTLM ответы» в локальных политиках безопасности на Windows-сервере. Samba допускает аутентификацию по протоколу LM по умолчанию.
    3. Методом NTLM
    Технология появилась в Windows NT 3.5 и успешно применяется и по сей день в Windows 2000 и выше, правда, в переработанном виде (NTLMv2). Является методом по умолчанию в рабочих группах Windows. Windows 95/98 поддерживают ее после установки клиента Directory Services. Samba также поддерживает NTLMv2.
    NTLMv2 относится к схемам типа «запрос–ответ». При этом сервер аутентификации не хранит паролей ни в открытом, ни в зашифрованном виде – он знает только их хэши. По сети же не пересылается не только пароль, но даже хэш пароля.
    4. Через службу Kerberos
    Kerberos является мощной системой, обеспечивающей аутентификацию и авторизацию пользователей, а также шифрование внутрисетевого трафика. Он используется в домене Active Directory (AD). Samba, начиная с версии 3, может быть полноценным клиентом домена AD и использовать все преимущества Kerberos. Однако она не может выступать в роли контроллера домена AD: эта функция доступна только разрабатываемой Samba 4.
    В сети Kerberos можно выделить три основных агента: это клиент, центр выдачи квитанций (KDC – Key Distribution Center) и сервер авторизации. Если описывать процессы в системе упрощенно, то при входе в сеть клиент обращается к центру выдачи квитанций, предоставляя свои имя и пароль. Если учетные данные верны, то KDC выдает ему квитанцию на доступ к серверу авторизации. Последний проверяет, разрешен ли клиенту доступ к ресурсу, и, если ответ положителен, выдает клиенту квитанцию на доступ к ресурсу.
    Kerberos в среде AD
    При работе с системой Kerberos необходимо иметь в виду два момента: во-первых, вместо привычных комбинаций «имя пользователя–пароль» используются квитанции; во-вторых, если расхождение часов клиента и сервера составляет больше нескольких минут, то последний признает квитанцию недействительной и отказывает клиенту в соединении. В таком случае Windows XP, например, покажет окно для ввода имени и пароля. Стоит ли говорить, что какие бы реквизиты вы ни ввели, доступ к серверу все равно не получите? Впрочем, иногда Windows ведет себя более гуманно и просто показывает сообщение о том, что доступ запрещен.
    Предположим, вам необходимо организовать файл-сервер под управлением Linux в домене AD. Linux в качестве файл-сервера имеет перед своими Windows-аналогами несколько сущест-венных преимуществ: Windows Server 2003/2008 Standard Edition стоит около $800, а Linux-сервер бесплатен; кроме того, служба удаленного вызова процедур из Samba не подвержена атакам вирусов типа Conficker-Kido.
    Как уже говорилось, Samba 3 поддерживает полноценную работу в качестве члена домена. Остается только отредактировать файл smb.conf, и файл-сервер готов...
    Примерно так думают многие пользователи, не представляя, что для правильной настройки Samba надо хоты бы в общих чертах представлять, как функционирует домен AD. Позволим себе сделать небольшое отступление и пояснить, какие сетевые службы входят в состав Active Directory и как они взаимодействуют.
    Основу AD составляют четыре службы, или, если угодно, технологии:
    Служба доменных имен DNS
    Служба каталога LDAP
    Протокол SMB
    Служба Kerberos
    Хотя все они функционируют в составе домена, к каждой из них можно обращаться как к самостоятельному сервису. Так, DNS-запросы могут посылать не только члены домена, но и сторонние клиенты; правда, по умолчанию – только для чте¬ния записей. LDAP может быть использован для аутентификации пользователей, к примеру, почтовым сервером Dovecot, установленным в Linux. Протокол SMB поддерживает подключение не только членов домена с Kerberos-авторизацией, но и других. Kerberos в составе домена AD позволяет создавать доверенные области со сторонними реализациями этой службы, к примеру, с MITKerberos.
    Несмотря на такую «самостоятельность» служб, если хотя бы одна из них функционирует неправильно, то ввод клиента в домен будет невозможен. Кроме того, если на клиенте неправильно указаны адрес DNS-сервера, имя клиента или имя домена, он также не будет присоединен к домену AD. Дело в том, что DNS-сервер в составе AD содержит так называемые SRV-записи, которые указывают, в числе прочего, на расположение LDAP-сервера и центра выдачи квитанций Kerberos.
    Подготовим систему
    Рассмотрим для примера дистрибутив Debian GNU/Linux 4.0 Etch. Конечно, это не передний край, но серверам присущ известный консерватизм; кроме того, все наши рекомендации можно с минимальными изменениями применить и к любому другому дистрибутиву.
    Технически, Samba предоставляет собой три демона: smbd, nmbd и winbindd. Первый отвечает за общий доступ к файлам и принтерам, второй – за разрешение имен по протоколу SMB и регистрацию компьютера в сети, а третий обеспечивает связь с контроллером AD и аутентификацию пользователей домена. В Etch, smbd и nmbd содержатся в пакете samba, а winbindd – в пакете winbind, в котором также можно найти утилиту net, позволяющую выполнять множество административных задач, в том числе присоединение машины к домену AD.
    Установим эти пакеты командой aptitude install samba winbind и приступим к настройке. Пусть имя нашего компьютера – myhost, и он должен принадлежать к домену mydomain.local.
    В файле /etc/hosts изменим строку, начинающуюся с адреса 127.0.0.1, на
    127.0.0.1 myhost.mydomain.local myhost
    определив таким образом полное доменное имя хоста (FQDN). Проверить правильность настройки можно командой hostname -F: вы должны увидеть строку myhost.mydomain.local.
    Перейдем к файлу /etc/resolv.conf. Он отвечает за разрешение имен хостов при помощи службы DNS. Если ваш компьютер получает настройки сети через DHCP, то здесь уже могут содержаться адреса DNS-серверов. Если же файл пуст, добавьте записи вида nameserver 1.2.3.4 вручную.
    Последний шаг – изменение файла /etc/nsswitch.conf. Здесь указывается, какие службы (и в каком порядке) используются системой для поиска имен пользователей, паролей, хостов, сетей и т. д. Приведем записи passwd:, group:, shadow: и hosts: к виду
    passwd: compat winbind
    group: compat winbind
    shadow: compat winbind
    hosts: files dns wins.
    Это значит, что при поиске имен пользователей, групп и паролей Linux будет сперва обращаться к встроенной базе данных (файлам /etc/passwd, /etc/group, /etc/shadow), а затем – к демону winbind. При разрешении имени хоста сначала будет использоваться файл /etc/hosts, затем DNS и, в последнюю очередь, служба имен NetBIOS. Это может пригодиться, если в вашей сети есть хосты, не зарегистрированные в DNS, но имеющие имена NetBIOS, к примеру, компьютеры под управлением Windows в составе рабочей группы.
    Настроим Samba
    Перейдем к настройке сервисов Samba. Сохраните текущий файл /etc/samba/smb.conf где-нибудь в надежном месте и отредактируйте его в соответствии с приведенными ниже инструкциями. При желании, вы также можете создать новый конфигурационный файл с нуля.
    В секции [global] следует задать несколько обязательных параметров:
    netbios name = MYHOST
    Это NetBIOS-имя вашего хоста, и оно должно совпадать с тем, что указано в файле /etc/hosts.
    security = ads
    – уровень безопасности. Кроме ads (клиент домена Active Directory), возможны значения share (рабочая группа Windows, только гостевой вход), user (рабочая группа Windows, аутентификация через БД пользователей Samba) и domain (домен NT4). В последнем случае Samba может выступать как в роли клиента, так и в роли контроллера.
    workgroup = MYDOMAIN
    – имя рабочей группы для режимов share и user, имя домена для режимов domain и ads.
    Следующие три опции относятся к настройкам клиента AD и задают область Kerberos, определенную для домена (совпадает с его именем и записывается прописными буквами); методы, используемые smbd для аутентификации пользователей (у нас – winbind); и имя «сервера паролей»: для клиента Active Directory оно совпадает с именем контроллером домена
    realm = MYDOMAIN.LOCAL
    auth methods = winbind
    password server = domain.mydomain.local
    В документации Samba указывается, что последний параметр не обязателен, поскольку Samba умеет находить сервер паролей, используя SRV-записи DNS. Однако автоопределение сервера паролей срабатывает не всегда, особенно в старых версиях Samba.
    Теперь определим настройки демона winbind, основная задача которого – прозрачная аутентификация пользователей AD в Unix. Для этого winbind отображает пользователей AD в пространство пользователей Unix. Диапазоны, в которых лежат идентификаторы виртуальных пользователей и групп, определяются следующими двумя параметрами.
    idmap uid = 10000-20000
    idmap gid = 10000-20000
    В Windows 2000 и выше для отделения имени домена от имени пользователя используется обратная косая черта. В Linux это может привести к проблемам, поскольку данный символ трактуется как служебный. Следующая опция позволяет заменить его на что-то другое:
    winbind separator = +
    Вы также можете позволить перечислять пользователей и группы AD сторонним приложениям. Однако утилита wbinfo, входящая в пакет winbind, способна на это, даже если следующие два параметра не указаны:
    winbind enum users = Yes
    winbind enum groups = Yes
    Чтоб разрешить сторонним приложениям ссылаться на пользователей AD как на локальных, не указывая имя домена и символ-разделитель, используйте
    winbind use default domain = Yes
    Далее можно настроить кэширование учетных данных пользователей – это обеспечит возможность входа в систему, даже если контроллер домена недоступен.
    winbind offline logon = Yes
    Осталась небольшая группа глобальных настроек, влияющих на другие аспекты работы Samba. Так,
    preferred master = No
    указывает демону nmbd, что данный хост не должен являться основным сервером имен NetBIOS. В случае критического сбоя в Samba мы будем выполнять действие panic-action:
    panic action = /usr/share/samba/panic-action %d
    Наконец,
    log file = /var/log/samba/log.%m
    debug level = 0
    syslog = 0
    задают путь к файлу журнала и уровень детализации отладочных сообщений, и предписывают не использовать Syslog.
    Общие папки
    Приведенные выше настройки были глобальными, т. е. влияли на службы Samba в целом. Давайте, помимо этого, создадим разделяемый ресурс и посмотрим, какие опции можно использовать на этом уровне.
    Чтобы организовать «общую папку», просто создайте новую секцию в smb.conf:
    [Общие папки]
    valid users = MYDOMAIN+Администратор,@”MYDOMAIN+Пользователи домена”
    admin users = MYDOMAIN+Администратор
    path = /var/shares
    write list = @”MYDOMAIN+Администраторы домена”
    read list = @”MYDOMAIN+Пользователи домена”
    comment = “Общий ресурс на сервере Samba”
    Параметр valid users задает имена пользователей и групп, которым разрешен доступ к ресурсу. Имя группы начинается с символа @. Имя домена можно было и не указывать, благодаря параметру
    winbind use default domain = Yes
    который мы установили выше. Admin users – это пользователи и группы, имеющие полный доступ к ресурсу, path задает путь до него в локальной файловой системе, read list и write list – это списки пользователей, имеющих права на чтение и запись. Обратите внимание, что Samba не умеет творить чудеса, и у Unix-эквивалентов пользователей, перечисленных в read/write list, должны быть достаточные Unix-права для доступа к файлам в /var/shares. Поле comment задает произвольный комментарий.
    Поехали!
    Теперь приступим к самому главному – введем компьютер в домен AD. Эта операция выполняется при помощи утилиты net. Сначала синхронизируем часы с контроллером домена: расхождение во времени не должно превышать 5 минут.
    >net time set
    Втр Июн 23 15:17:53 SAMST 2009
    Затем введем машину в домен:
    >net ads join -U Администратор@MYDOMAIN.LOCAL
    password:******
    Вместо учетной записи «Администратор» можно использовать любую другую с правом присоединения компьютера к домену. Если после выполнения команды net ads вы увидели:
    Use short domain name -'MYDOMAIN'
    Joined 'MYHOST' to relam 'MYDOMAIN.LOCAL',
    то компьютер успешно введен в домен AD. Остается только перезапустить демоны smbd, nmbd и winbind:
    /etc/init.d/samba restart
    /etc/init.d/winbind restart
    подождать несколько секунд – и машина с Linux станет полноценным членом домена Active Directory. Проверить, соединяется ли Samba с контроллером домена, можно командами wbinfo -t (тест на возможность установки безопасного соединения) и wbinfo -u (отображает список пользователей домена). В некоторых случаях, чтобы получить доступ с Windows-клиента на Samba-сервер сразу после перезапуска демонов, может потребоваться выйти и повторно зайти в систему.
    Проблемы и их решение
    Рассмотрим менее приятный вариант – команда net завершилась с ошибкой. В этом случае следует обратить внимание на настройки клиента DNS и убедиться, что команда hostname -f отображает правильное имя компьютера, а nslookup или dig могут разрешить имя контроллера домена в IP-адрес. Если вы устанавливали Sаmba не из основного репозитория (например, для Etch взяли версию 3.2.5 c backports.org), следует убедиться, что обновились также и пакеты с зависимостями – прежде всего, клиентской частью Kerberos. Если же и это не помогло, поднимите уровень отладки в smb.conf (за это отвечает опция debug level) и проанализируйте, на каком из этапов присоединения компьютера к домену произошел сбой.
    Существует распространенное заблуждение, будто бы Samba при входе в домен не в состоянии самостоятельно получить первую квитанцию от центра ключей Kerberos. Оно возникло из-за того, что в официальном руководстве по Samba в качестве одной из подготовительных операций при вводе машины в домен указана настройка файла /etc/krb5.conf и вызовов команды kinit. Файл /etc/krb5.conf содержит параметры автономного клиента Kerberos на локальном компьютере. Утилита kinit в составе Kerberos использует для получения квитанции именно эти настройки.
    Действия по настройке kinit необходимы исключительно для тестирования связи с сервером Kerberos, и выполнять их необязательно. Samba может совершать полный цикл взаимодействия с сервером Kerberos, включая обновление квитанций по истечении срока их действия, без применения сторонних утилит. Чтобы библиотеки Kerberos были правильно настроены, Samba создает на базе информации из файла smb.conf файл /var/run/samba/smb_krb5/krb5.conf.<имя домена>, который и заменяет стандартный /etc/krb5.conf во время работы.
    Наконец, упомянем еще один, казалось бы, незначительный момент, также способный вызвать проблемы при подключении к серверу Samba. Windows-клиенты AD автоматически синхронизируют свои часы с контроллером домена, однако демон winbindd в Linux этого не делает. В результате, через некоторое время после ввода машины в домен, часы сервера Samba могут «разойтись» с контроллером домена больше чем на 5 минут, и с этого момента ни один клиент, использующий Kerberos, не сможет подключится к серверу Samba.
    Существует как минимум два способа решения этой проблемы. Наиболее правильным будет, конечно, установка корпоративного сервера времени и синхронизация с ним всех компьютеров по протоколу NTP. Однако возможно и временное решение. Добавим в файл /etc/crontab строку
    */5 * * * * root net time set
    и выполним команду
    /etc/init.d/cron reload
    Тем самым мы настроим системный планировщик сron на запуск команды синхронизации времени через SMB каждые 5 минут.
    И даже больше
    В заключение отметим, что возможности Samba шире, чем прос¬то организация общего доступа к файлам с разделением прав на базе протокола SMB. Samba может поддерживать списки контроля доступа (ACL), как это делается на вкладке «Безопасность» в Проводнике Windows, а кроме того, выступать в качестве принт-сервера с функциями автоматической установки драйверов на клиентские компьютеры – причем, за счет модульной архитектуры, он будет намного стабильнее Диспетчера очереди печати Windows.

    По материалам журнала LinuxFormat

    Видео и графические редакторы для Linux

    Нелинейный видеоредактор Cinelerra - http://heroinewarrior.com/cinelerra.php3
    Видеоредактор Kino - http://www.kinodv.org
    Видеоредактор Avidemux - http://avidemux.org , http://fixounet.free.fr/avidemux
    Видеоредактор LVE (Linux Video Editor) - http://lvempeg.sourceforge.net
    Видеоредактор LiVES - http://lives.sourceforge.net
    Видеоредактор MainActor V5 (платный) - http://www.mainconcept.com/site/?id=954
    Видеоредактор t@b ZS4 - http://www.zs4.net
    Простой нелинейный видеоредактор OpenMovieEditor - http://openmovieeditor.sourceforge.net

    Редактор растровой графики Gimp - http://www.gimp.org
    Графический редактор CinePaint - http://www.cinepaint.org
    Krita - графический редактор, входящий в состав офисного пакета KOffice - http://kde.org
    Редактор для работы с HDR-изображениями Qtpfsgui - http://sourceforge.net
    Редактор векторной графики Inkscape - http://www.inkscape.org/index.php
    Редактор векторной графики sK1 - http://sk1project.org

    Красоты Compiz Fusion

    В последнее время обострилась борьба среди различных ОС за красоту рабочего стола. Windows Vista позиционируется как "революционный прорыв" в области визуальных эффектов. Однако, мало кто знает, что для Linux существует замечательный менеджер окон Compiz Fusion, предоставляющий умопомрачительные возможности визуализации различных эффектов для рабочего стола. Ниже приведены скриншоты некоторых из этих эффектов.

    Ссылка на видео






    Что такое CUPS?

    Common Unix Printing System (CUPS) – это набор драйверов и утилит, предоставляющих полное обеспечение работы печатающего устройства, управление и использование его в Linux и других Unix-подобных системах.
    Значит, это драйвер для принтера?
    Гораздо больше. CUPS предоставляет «portable printing layer» – переносимый слой печати между приложениями и принтером; он включает не только драйверы, но также и все, что нужно программам, чтобы иметь возможность выводить что-то на печать.
    Надо ли мне вводить команды в консоли и редактировать конфигурационные файлы, чтобы мой принтер начал печатать?
    Вовсе нет. У CUPS есть графические утилиты настройки, работающие через браузер. Наберите в нем адрес
    http://localhost:631. Возможно, вам понадобится ввести пароль вашего пользователя или пароль root, после
    чего вы увидите домашнюю страничку CUPS. Здесь можно добавлять/удалять принтеры, управлять текущими заданиями печати и читать документацию.
    Зачем нужен браузер вместо стандартной графической программы?
    Web-интерфейс означает, что не нужно устанавливать никакого графического инструментария; можно
    даже не запускать X-сервер. Доступ будет и через текстовый браузер, и даже с другого компьютера.
    Но ведь это не безопасно?
    Настройки по умолчанию разрешают подключение только с локального хоста. Это можно изменить, разрешив
    соединения из локальной сети (разрешать интернет-подключения, как правило, не рекомендуется). Можно контролировать действия пользователей – например, позволить им управлять своими заданиями на печать,
    но не удалять принтеры.
    Как во все это вписывается Gimp-print, и что общего у GIMP с печатью?
    Это набор драйверов для принтеров, разработанных для использования в GIMP. Хотя GIMP хорошо ладит
    с CUPS, некоторые принтеры выдают лучший результат при использовании драйверов Gimp-print. Эти драйверы
    теперь работают и с CUPS; можно считать, что Gimp-print – расширенный набор драйверов, работающих
    со всеми приложениями, которые выполняют печать через CUPS. Проект сейчас переименовали в Gutenprint,
    чтобы избежать путаницы с GIMP. Как мне узнать, поддерживается ли модель моего принтера? Списки поддерживаемых принтеров и рекомендованных для них драйверов ищите на www.linuxprinting.org.

    По материалам Linux Format