Практические советы по наиболее популярным вопросам, касающихся настройки Ubuntu 11.10.
Рубрика: *nix
Эмуляторы *nix для Windows
Если кто не знал, то для системы семейства Windows есть эмуляторы среды *nix. Одним из самых известных является Cygwin, который до сих пор активно развивается. Microsoft также не осталась в стороне, и имеет в своем распоряжении пакет под названием Microsoft Windows Services for UNIX (SFU). Он, в отличии от Cygwin, уже не обновляется (последняя версия 3.5 датируется 2007 годом), а поддержка заканчивается в этом году.
SFU 3.5, размером в 220 МБ, включает в себя:
- Более 350 утилит Unix, таких как vi, ksh, csh, ls, cat, awk, grep, kill, и т. п.
- компилятор GCC 3.3, в том числе заголовочные файлы и библиотеки (через Microsoft libc)
- cc-подобный упаковщик для C/C++ компилятора командной строки Microsoft Visual Studio
- отладчик GDB
- сервер и клиент NFS
- Демоны pcnfsd
- Утилиты и библиотеки X11
- Утилиты для монтирования ресурсов NFS как разделяемые каталоги Windows и наоборот (гейтвеи)
- Сервер Network Information Service, сопряжённый с Active Directory
- Некоторые утилиты синхронизации токенов аутентификации Windows и Unix
SFU не включает в себя: bash, OpenSSH, sudo, CVS, ClamAV, bzip2, gmake, curl, emacs, Apache, XView, Ruby, Tcl, Python.
Установщик Cygwin, в свою очередь, имеет крохотный размер за счет того, что выкачивает из Интернета все необходимые и выбранные пакеты на этапе установки. Список того, чтобы можно установить — внушителен. Те пакеты, которые не включены в SFU (OpenSSH, Apache, curl и т.д.) доступны из репозиториев для Cygwin.

Демонстрация включения Ubuntu в домен
В прошлой заметке я описывал процедуру включения ОС Ubuntu в состав домена Windows. Теперь приведу наглядные примеры, как можно проверить работоспособность того, подключился ли компьютер к домену или нет.
Проверям, можем ли мы обращаться к компьютерам в домен по их имени:
ping fileserver.myserver.com -c 10 PING fileserver.myserver.com (172.17.1.6) 56(84) bytes of data. 64 bytes from fileserver.myserver.com (172.17.1.6): icmp_req=1 ttl=128 time=71.3 ms ... 64 bytes from fileserver.myserver.com (172.17.1.6): icmp_req=9 ttl=128 time=1.65 ms 64 bytes from fileserver.myserver.com (172.17.1.6): icmp_req=10 ttl=128 time=4.25 ms
--- fileserver.myserver.com ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9011ms rtt min/avg/max/mdev = 1.494/9.540/71.321/20.673 ms
Проверяем, можем ли мы авторизироваться в домене. Выбираем какую-нибудь учетную запись в домене из Active Directory, и вводим от нее пароль, как показано ниже. Если после ввода пароля в консоли ничего не появилось, значит все прошло успешно.
kinit Ivanov@MYSERVER.COM
Password for Ivanov@MYSERVER.COM:
Чтобы окончательно убедиться в том, что все нормально и билет Kerberos для авторизации получен, введем следующую команду:
klist
Отобразится:
Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: Ivanov@MYSERVER.COM
Valid starting Expires Service principal 06/18/11 14:40:29 06/19/11 00:38:38 krbtgt/MYSERVER.COM@MYSERVER.COM renew until 06/19/11 14:40:29
Входим в домен (в пример от учетной записи администратора):
sudo net ads join -U Администратор -D MYSERVER.COM
Enter Администратор's password:
Если на консоль выводится следующее, то вход в домен осуществлен успешно:
Using short domain name -- MYSERVER
Joined 'LAPTOPUBUNTU' to realm 'myserver.com'
Проверяем, что Winbind видит группы (-g) и пользователей (-u):
wbinfo -u
LAPTOPUBUNTU\nobody LAPTOPUBUNTU\myuser администратор krbtgt гость user_admin ivanov senatorov dholme jfine bmayer bmorelend myuser krayner mitchell
wbinfo -g
компьютеры домена издатели сертификатов пользователи домена гости домена серверы ras и ias администраторы домена администраторы схемы администраторы предприятия владельцы-создатели групповой политики группа с разрешением репликации паролей rodc группа с запрещением репликации паролей rodc контроллеры домена предприятия - только чтение контроллеры домена - только чтение контроллеры домена dnsadmins dnsupdateproxy финансы финансовые менеджеры продажи администраторы windows справка app_office 2007 пользователи dhcp администраторы dhcp
Проверяем, что Ubuntu запрашивает у Winbind информацию (содержимое файла /etc/passwd) о пользователях и группах:
getent passwd
root:x:0:0:root:/root:/bin/bash
...
ntp:x:113:124::/home/ntp:/bin/false
администратор:*:10000:10000:Администратор:/home/MYSERVER/администратор:/bin/bash
krbtgt:*:10001:10000:krbtgt:/home/MYSERVER/krbtgt:/bin/bash
гость:*:10002:10001:Гость:/home/MYSERVER/гость:/bin/bash
myuser_admin:*:10003:10000:Александр:/home/MYSERVER/user_admin:/bin/bash
lapshenkov:*:10004:10000:Anton Ivanov:/home/MYSERVER/ivanov:/bin/bash
senatorov:*:10005:10000:Alexander Petrov:/home/MYSERVER/ptrov:/bin/bash
dholme:*:10006:10000:Дэн Холме:/home/MYSERVER/dholme:/bin/bash
jfine:*:10007:10000:Джеймс Файн:/home/MYSERVER/jfine:/bin/bash
bmayer:*:10008:10000:Барбара Майер:/home/MYSERVER/bmayer:/bin/bash
bmorelend:*:10009:10000:Барбара Морленд:/home/MYSERVER/bmorelend:/bin/bash
myuser:*:10010:10000:Александр:/home/MYSERVER/user:/bin/bash
krayner:*:10011:10000:Тони Крайнер:/home/MYSERVER/krayner:/bin/bash
mitchell:*:10012:10000:Скотт Митчелл:/home/MYSERVER/mitchell:/bin/bash
getent group
root:x:0: ... sambashare:x:122:myuser winbindd_priv:x:123: ntp:x:124: компьютеры домена:x:10002: издатели сертификатов:x:10003: пользователи домена:x:10000: гости домена:x:10001: серверы ras и ias:x:10004: администраторы домена:x:10005:user_admin,администратор администраторы схемы:x:10006:администратор администраторы предприятия:x:10007:администратор владельцы-создатели групповой политики:x:10008:администратор группа с разрешением репликации паролей rodc:x:10009: группа с запрещением репликации паролей rodc:x:10010:krbtgt контроллеры домена предприятия - только чтение:x:10011: контроллеры домена - только чтение:x:10012: контроллеры домена:x:10013: dnsadmins:x:10014: dnsupdateproxy:x:10015: финансы:x:10016: финансовые менеджеры:x:10017: продажи:x:10018: администраторы windows:x:10019: справка:x:10020:bmayer app_office 2007:x:10021:laptop$ пользователи dhcp:x:10024: администраторы dhcp:x:10025:
Как видно из приведенных примеров, все работает, как и должно быть.
Обновление/удаление ядра в Linux
Задача: обновить существующее ядро Linux (для примера будем брать Ubuntu) до самой последней или до нужной.
Решение:
uname -r
— показывает текущую версию ядра в системе
sudo add-apt-repository ppa:kernel-ppa/ppa
— добавление PPA для ядра
sudo apt-get update
— обновляем списки репозиториев
apt-cache showpkg linux-headers
— показывает список доступных ядер
Пример отображения:
Package: linux-headers
Versions:
Reverse Depends:
lirc-modules-source,linux-headers
sl-modem-source,linux-headers
xtables-addons-dkms,linux-headers
oss4-dkms,linux-headers
openswan-modules-source,linux-headers
lirc-modules-source,linux-headers
blcr-dkms,linux-headers
alsa-source,linux-headers
nvidia-current,linux-headers
nvidia-96,linux-headers
nvidia-173,linux-headers
fglrx,linux-headers
bcmwl-kernel-source,linux-headers
dkms,linux-headers
Dependencies:
Provides:
Reverse Provides:
linux-headers-2.6.39-0 2.6.39-0.5~20110427
linux-headers-2.6.39-0-generic 2.6.39-0.5~20110427
linux-headers-2.6.39-0-generic-pae 2.6.39-0.5~20110427
linux-headers-2.6.39-0-virtual 2.6.39-0.5~20110427
linux-headers-2.6.38-8-virtual 2.6.38-8.42
linux-headers-2.6.38-8-generic-pae 2.6.38-8.42
linux-headers-2.6.38-8-generic 2.6.38-8.42
linux-headers-2.6.38-8 2.6.38-8.42
Устанавливаем нужное ядро:
sudo apt-get install linux-headers-2.6.39-0 linux-headers-2.6.39-0-generic linux-image-2.6.39-0-generic --fix-missing
Если необходимо установить какое-то конкретное ядро, а не самое последнее, то заходим сюда (http://kernel.ubuntu.com/~kernel-ppa/mainline/), скачиваем файлы (linux-headers и linux-image) для вашей архитектуры процессора (i386 или amd64) в какую-нибудь папку (к примеру, /home/user/kernerl), и затем выполняем команду:
sudo dpkg -i *
Стоит отметить, что после обновления ядра проприетарные драйверы, скорее всего, работать не будут, их необходимо будет занова установить/пересобрать. Лично у меня графические проприетарные драйвера обновились автоматически:
run-parts: executing /etc/kernel/header_postinst.d/dkms 2.6.39-0-generic /boot/vmlinuz-2.6.39-0-generic
* dkms: running auto installation service for kernel 2.6.39-0-generic
* nvidia-current (270.41.06)... [ OK ]
run-parts: executing /etc/kernel/header_postinst.d/nvidia-common 2.6.39-0-generic /boot/vmlinuz-2.6.39-0-generic
Если необходимо удалить неиспользуемое ядро, то:
dpkg -l | grep linux-image
— отображает список установленных в системе ядер
Пример вывода:
ii linux-image-2.6.38-8-generic 2.6.38-8.42 Linux kernel image for version 2.6.38 on x86/x86_64
ii linux-image-2.6.39-0-generic 2.6.39-0.5~20110427 Linux kernel image for version 2.6.39 on x86/x86_64
ii linux-image-generic 2.6.38.8.22 Generic Linux kernel image
sudo apt-get remove -f linux-image-2.6.38-8.42
— удаление выбранного ядра
dpkg -l | grep linux-headers
— отображает список установленных заголовков ядра
Пример вывода:
ii linux-image-2.6.38-8-generic 2.6.38-8.42 Linux kernel image for version 2.6.38 on x86/x86_64
ii linux-image-2.6.39-0-generic 2.6.39-0.5~20110427 Linux kernel image for version 2.6.39 on x86/x86_64
ii linux-image-generic 2.6.38.8.22 Generic Linux kernel image
user@LaptopUbuntu:~$ dpkg -l | grep linux-headers
ii linux-headers-2.6.38-8 2.6.38-8.42 Header files related to Linux kernel version 2.6.38
ii linux-headers-2.6.38-8-generic 2.6.38-8.42 Linux kernel headers for version 2.6.38 on x86/x86_64
ii linux-headers-2.6.39-0 2.6.39-0.5~20110427 Header files related to Linux kernel version 2.6.39
ii linux-headers-2.6.39-0-generic 2.6.39-0.5~20110427 Linux kernel headers for version 2.6.39 on x86/x86_64
ii linux-headers-generic 2.6.38.8.22 Generic Linux kernel headers
sudo apt-get remove -f linux-headers-2.6.38-8.42 linux-headers-2.6.38-8.42-generic
— удаление выбранных заголовков ядра
sudo update-grub
— удаление записей установленных ядер в загрузчике GRUP
Включаем Ubuntu в состав домена Windows
Встала задача подключить ноутбук с ОС Ubuntu к домену Windows. Если в ОС Windows это сделать проще простого, то в линуксе нужно проделать небольшие манипуляции.
И так, для примера привожу нужную для дальнейшего мануала информацию:
- Компьютер-сервер с ОС Windows Server 2008 R2:
- Имя: Server2008R2
- Домен: myserver.com
- Роль: контроллер домена ActiveDirectory, DNS-сервер
- IP-адрес: 172.17.1.3
- Маска сети: 255.255.255.0
- Шлюз: 172.17.1.1
- Виртуальная машина с ОС Windows Server 2008 R2:
- Имя: FileServer
- Домен: myserver.com
- Роль: вторичный контроллер домена ActiveDirectory с настроенной реплекацией
- IP-адрес: 172.17.1.6
- Маска сети: 255.255.255.0
- Шлюз: 172.17.1.1
- Ноутбук с ОС Ubuntu 11.04:
- Имя: LaptopUbuntu
- Сетевые настройки: через DHCP (получает от роутера с IP-адресом 172.17.1.1)
Т.к. нашей задачей является подключить ноутбук к домену mydomain.com, то необходимо проделать следующие действия:
sudo apt-get install krb5-user ntp samba winbind
krb5-user — пакет для протокола Kerberos, который используется для аутентификации в Windows;
ntp — позволяет синхронизировать время в контроллером домена;
samba — позволяет стать членом домена;
winbind — позволяет использовать учетную запись пользователя из ActiveDirectory.
Теперь перейдем непосредственно к настройкам:
sudo gedit /etc/resolv.conf
Изменить содержимое на следующее:
domain myserver.com
search myserver.com
nameserver 172.17.1.3
Задаем нужное имя ноутбука (LaptopUbuntu) в следующем файле:
sudo gedit /etc/hostname
Далее открываем:
sudo gedit /etc/hostname
Меняем так, чтобы было (секцию IPv6 не трогаем):
127.0.0.1 localhost
172.17.1.2 LaptopUbuntu.myserver.com LaptopUbuntu
Теперь для применения изменений необходимо перезагрузить ноутбук. После перезагрузки у меня, почему-то, все отредактированные выше файлы сбросились в первоначальное содержимое. Немного подумав, я понял, что виноват тому значащийся в сетевых настройках включенный DHCP. Через Network Manager я отключил DHCP, выбрал пункт «ручная настройка», а затем опять проделал то, что написано выше. Хотя, часть значений параметров можно вписать через все тот же Network Manager.
Открываем следующий файл:
sudo gedit /etc/ntp.conf
и вписываем в него следующее:
server Server2008R2.myserver.com
Командой
sudo /etc/init.d/ntp restart
перезапускам демон.
Далее приступим к настройке Kerberos. Редактируем файл:
sudo gedit /etc/krb5.conf
Заполняем его следующей информацией:
[libdefaults]
default_realm = MYSERVER.COM
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
[realms]
MYSERVER.COM = {
kdc = SERVER2008R2
kdc = FILESERVER
admin_server = SERVER2008R2
default_domain = MYSERVER.COM
}
[domain_realm]
.domain.com = MYSERVER.COM
domain.com = MYSERVER.COM
[login]
krb4_convert = false
krb4_get_tickets = false
Теперь настраиваем Samba:
sudo gedit /etc/samba/smb.conf
Приводим секцию [global] к следующему содержанию:
workgroup = MYSERVER.COM
realm = MYSERVER.COM
security = ADS
encrypt passwords = true
dns proxy = no
socket options = TCP_NODELAY
domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
Для проверки правильности заполнения конфигурационного файла Samba, можно выполнить команду testparm, которая выведет информацию о том, что в конфигурации ошибок нет, либо они есть.
Теперь перейдем к настройке Winbind, если мы хотим использовать учетные записи из ActiveDirectory у себя на ноутбуке.
Опять редактируем файл:
sudo gedit /etc/samba/smb.conf
И в секцию [global] добавляем:
idmap uid = 10000 - 40000
idmap gid = 10000 - 40000
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
template shell = /bin/bash
winbind refresh tickets = yes
winbind offline logon = yes
winbind cache time = 1440
После чего необходимо перезапустить демоны:
sudo /etc/init.d/winbind stop
sudo smbd restart
sudo /etc/init.d/winbind start
Далее идем и редактируем следующий файл:
sudo gedit /etc/nsswitch.conf
Добавляем в конец строк passwd и group слово winbind, т.е. файл должнен выглядеть так:
passwd: compat winbind
group: compat winbind
И самое последнее: в файл /etc/pam.d/common-session добавить следующую строчку:
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
Демонстрация всего того, что описано выше, будет в одной из следующих заметок.
Список команд MySQL
Ниже приводится небольшой список полезных команд для управления БД MySQL через командную строку.
Установка нового пароля для пользователя root:
mysqladmin -u root password 'NEW-PASSWORD'
mysqladmin -u root -h 'HOSTNAME' password 'NEW-PASSWORD'
Создание новой БД:
mysqladmin -u USER -pPASSWORD create NEWDATABASE
Удаление существующей БД:
mysqladmin -u USER -pPASSWORD drop DATABASE
Просмотр списка заведенных БД:
mysqlshow -u USER -pPASSWORD
Просмотр списка таблиц БД:
mysqlshow -u USER -pPASSWORD DATABASE
Создание резервной копии БД:
mysqldump -u USER -pPASSWORD DATABASE > /directory/dump.sql
Создание резервной копии БД (с указанием даты создания):
mysqldump -u USER -pPASSWORD DATABASE | gzip > 'date +/directory/dump.sql.%Y%m%d.%H%M%S.gz'
Создание архивированной резервной копии БД:
mysqldump -u USER -pPASSWORD DATABASE | gzip > /directory/dump.sql.gz
Создание резервной копии определенной таблицы БД:
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 > /directory/dump_tables.sql
Восстановление резервной копии БД:
mysql -u USER -pPASSWORD DATABASE < /directory/dump.sql
Восстановление архивированной резервной копии БД:
gunzip < /directory/dump.sql.gz | mysql -u USER -pPASSWORD DATABASE
Восстановление и оптимизация таблиц БД:
mysqlcheck -Aor -pPASSWORD
MyTOP — мониторинг MySQL
Для мониторинга сервера MySQL есть неплохая программа, которая называется MyTOP. Находится в репозиториях Debian, поэтому для установки достаточно выполнить команду:
apt-get install mytop
Теперь можно начать процесс мониторинга за сервером MySQL. Для этого нужно к нему подключиться, скомандовав:
mytop -u user -p password -d base_data
Вместо выделенных аргументов нужно подставлять соответственно имя пользователя БД, пароль и имя самой БД. Если используем глобального пользователя root, то указывать имя БД необязательно, т.к. для мониторинга все равно будут выведены все созданные БД.
Как и у команды top, в mytop в верхней части экрана консоли выводится полезная информация:
- имя хоста; версия запущенного сервера MySQL; время работы сервера MySQL.
- общее количество обработанных запросов к базе; среднее количество запросов в секунду; количество медленно обрабатываемых запросов.
- информация о процессах: всего, активных, кешированных.
- эффективность буфера ключей; среднее число байтов, посланных и полученных сервером; число байтов, пересылаемых в данный момент.
Далее следует таблица с информацией об активных потоках.

Восстановление GRUB 2
Вчера после удаление неактивных swap-разделов столкнулся с тем, что после рестарта компьютера загрузчик GRUB обрадовал меня ошибкой о том, что загрузочная область повреждена.
Решение проблемы: с LiveCD (к примеру, обычный загрузочный диск с Ubuntu) загружаем компьютер, открываем терминал (если используете Ubuntu, то можно выбрать пункт «Попробовать», и перед вами откроется привычный рабочий стол с необходимыми утилитами, в том числе, терминалом). Вводим следующую команду:
sudo grub-install --force --root-directory=/mnt /dev/sdb
Перезагружаемся и, о чудо! GRUB восстановлен!
А можно еще так (не пробовал, но пишут, что работает):
mount /dev/sdb6 /mnt
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
chroot /mnt
update-grub # или dpkg-reconfigure grub-pc
exit
umount /mnt/dev
umount /mnt/sys
umount /mnt/proc
umount /mnt
Решение: Broadcom BCM4311 не работал на Ubuntu 11.04
Не давно я писал, что после обновления Ubuntu c версии 10.04 до 11.04, у меня перестал работать модуль беспроводной сети. А хотите узнать, как определить установленное в компьютере оборудование? Ведь для начала я должен был убедиться в том, что модуль Wi-Fi системой найден.
Вводим в консоль следующую команду:
lspci
Эта команда выведет на экран список устройств, которые подключены к шине PCI. У меня вывело следующее:
00:00.0 RAM memory: nVidia Corporation MCP67 Memory Controller (rev a2)
00:01.0 ISA bridge: nVidia Corporation MCP67 ISA Bridge (rev a2)
00:01.1 SMBus: nVidia Corporation MCP67 SMBus (rev a2)
00:01.2 RAM memory: nVidia Corporation MCP67 Memory Controller (rev a2)
00:01.3 Co-processor: nVidia Corporation MCP67 Co-processor (rev a2)
00:02.0 USB Controller: nVidia Corporation MCP67 OHCI USB 1.1 Controller (rev a2)
00:02.1 USB Controller: nVidia Corporation MCP67 EHCI USB 2.0 Controller (rev a2)
00:04.0 USB Controller: nVidia Corporation MCP67 OHCI USB 1.1 Controller (rev a2)
00:04.1 USB Controller: nVidia Corporation MCP67 EHCI USB 2.0 Controller (rev a2)
00:06.0 IDE interface: nVidia Corporation MCP67 IDE Controller (rev a1)
00:07.0 Audio device: nVidia Corporation MCP67 High Definition Audio (rev a1)
00:08.0 PCI bridge: nVidia Corporation MCP67 PCI Bridge (rev a2)
00:09.0 IDE interface: nVidia Corporation MCP67 AHCI Controller (rev a2)
00:0a.0 Ethernet controller: nVidia Corporation MCP67 Ethernet (rev a2)
00:0c.0 PCI bridge: nVidia Corporation MCP67 PCI Express Bridge (rev a2)
00:0d.0 PCI bridge: nVidia Corporation MCP67 PCI Express Bridge (rev a2)
00:12.0 VGA compatible controller: nVidia Corporation C67 [GeForce 7000M / nForce 610M] (rev a2)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
05:00.0 Network controller: Broadcom Corporation BCM4311 802.11a/b/g (rev 01)
В последней строке можно увидеть как раз модуль беспроводной связи. Он у меня действительно от Broadcom, модель BCM4311.
Для всех, кто точно знает, что производитель модуля Broadcom, можно сразу же вбить следующую команду:
lspci -vnn | grep 14e4
Команда вывела более чуть подробную информацию:
05:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11a/b/g [14e4:4312] (rev 01)
14e4:4312 — это наименование устройства. Можно заглянуть на официальную страничку Broadcom, чтобы убедиться в том, что данное устройство поддерживается производителем, т.е. для него есть актуальный драйвер.
Из всех испробованных мною средств, оживить Wi-Fi удалось следующей командой:
apt-get install firmware-b43-installer
То, что интерфейс wl0 поднялся, можно убедиться командой ifconfig -a.
Восемь видео-лекций от Яндекса в рамках КИТ
В разделе «Обучение» компания Яндекс выложила восемь интересных видео-лекций, которые проводились в рамках КИТ (курсы информационных технологий):
- операционные системы (115 минут)
- архитектура ЭВМ (99 минут)
- устройство GNU/Linux (109 минут)
- системы хранения данных (120 минут)
- файловые системы (103 минуты)
- сети и протоколы (108 минут)
- виртуализация (118 минут)
- безопасность (116 минут)