[MySQL] Создание бэкапа БД с дальнейшим архивированием

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

/usr/bin/mysqldump -u -p | gzip > /path/to/backup/db/database_'date +%y_%m_%d'.gz

Бан IP-адреса, используя iptables

iptables -N ban
iptables -A INPUT -j ban
iptables -A ban -s 00.00.00.00 -j DROP

Изменение пароля в Ubuntu

Цель: сменить пароль пользователя в Ubuntu, не имея доступ для входа в систему

Решение: загрузить систему в Recovery Mode (во время загрузки в окне GRUB выбрать соответствующий пункт), затем выбрать «root — Drop to root shell prompt». Просмотреть список зарегестрированных пользователей можно с так:

ls /home

Затем необходимо выполнить команду на изменение пароля:

passwd username

Пример для root-пользователя:

# passwd root
Enter new UNIX password: ******
Retype new UNIX password: ******
passwd: password updated successfully

Отображение полного списка автозапуска в Ubuntu 11.10 и выше

Начиная с версии 11.10 в Ubuntu в списке автоматически запускаемых приложений показываются только те, которые были установлены или добавлены в автозапуск самостоятельно пользователем. Чтобы заставить вновь отображаться все помещенные в автозапуск приложения, необходимо выполнить:

sudo -i
cd /etc/xdg/autostart/
sudo sed --in-place 's/NoDisplay=true/NoDisplay=false/g' *.desktop

Изменение размера раздела диска Linux

У меня на ноутбуке установлено две ОС — Windows и Ubuntu. В Windows жесткий диск разбит на два раздела: «С» и «(формат NTFS). В Ubuntu — один корневой раздел и один для swap (формат ext4). В последнее время место для корневого раздела стремительно закончилось, оставалось совсем немного сотен мегабайт. В связи с этим встала острая проблема увеличения размера корневого раздела. Для этого было решено отнять часть ГБ от диска « и прибавить их к разделу Linux.

Для проведения этой процедуры было решено использовать программу GParted, которая по многочисленным отзывам прекрасно справляется с подобными задачами. Ниже привожу краткие шаги от начало до конца:

  1. Загружаем загрузочный ISO-образ из раздела «GParted Live CD/USB/HD/PXE Bootable Image»
  2. записываем ISO-образ на какой-нибудь CD/DVD (к примеру, через UltraISO), или на флэшку, если ваш компьютер поддерживает такой тип загрузки.
  3. Загружаем компьютер с помощью записанного загрузочного диска. После копирования необходимых файлов, выбираем нужный язык и указываем, что работать будем через графическую оболочку.
  4. После загрузки графической оболочки автоматически откроется программа GParted, которая после сканирования жесткого диска выведет список существующих разделов (/dev/sda2, /dev/sda3 и т.п.)
  5. Выделяем нужный диск (у меня это «D»), выбираем пункт «Resize», в открывшемся окне с помощью визуальной полоски дискового пространства указываем, сколько места хотим убрать от диска. Пусть это будет 10 ГБ.
  6.  После этого в списке разделов появится новый раздел размером 10 ГБ. Его необходимо отформатировать в формат ext4. Для этого опять же выбираем соответствующий пункт и указываем нужную файловую систему. Жмем кнопку «Apply». Выполнятся задачи из пункта 5 и 6.
  7. Теперь выделяем корневой раздел вашего Linux’а, выбираем пункт «Resize», в открывшемся окне с помощью визуальной полоски дискового пространства указываем, сколько места хотим добавить. В качестве свободного места будут фигурировать как раз таки наши 10 ГБ. После нажатия на кнопку «Apply» появится предупреждающее окно о том, что при изменении размера корневого раздела произойдет изменение файловой системы и, вероятно, ОС не сможет загрузиться. Соглашаемся на это.
  8.  После не быстрого процесса изменения размера раздела, перезагружаем компьютер (не забудьте вытащить загрузочный диск), в окне загрузчика выбираем наш Linux и ждем, когда ОС благополучно загрузится.

Да, как ни странно, но лично у меня Ubuntu загрузилась на ура, ни какие изменения в /etc/fstab делать не пришлось. Хотя, все же проблемы после изменения размера раздела могут и возникнуть.

Советы по настройке Ubuntu 11.10

Практические советы по наиболее популярным вопросам, касающихся настройки Ubuntu 11.10.

Эмуляторы *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.

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

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