пятница, 7 августа 2009 г.
пятница, 3 апреля 2009 г.
Спасение RAID5 в Linux или восстановление mdadm на другой машине
взято от сюда http://uragana.ru/2009/04/rescue-raid-lvm думаю всем бдует полезно
Сегодня на работе сдох сервер. Без признаков жизни и включения. А на нем важная информация.
Не срочная, но важная. Главня проблема в том что нужные файлы были на рэйде (mdadm), да еще и на LVM.
Расскажу, как спасал информацию...
Отключаю диски, достаю, кладу на стол. Сервер отвожу в ремонт. И начинаю реанимировать диски.
А схема там такая - из 3-х 400 гигабайтных дисков собран RAID5 в mdadm,
поверх рэйда - LVM, на LVM - файловая система XFS.
Подключаю все диски к рабочему компьютеру, пытаюсь загрузиться со своего рабочего диска - не грузится.
Некогда разбираться - пробую грузится с live-cd с Ubuntu. Загрузилось!
Начинается самое интересное:
N.B. - все операции проводились под root, поэтому нужно в консоли сделать sudo su
1) Поскольку диски sata - открываем консоль и смотрим, что нашлось (ненужные строчки пропущены):
root@ubuntu:/home/ubuntu# dmesg | grep sd
[ 40.566532] sd 2:0:0:0: [sda] 488397168 512-byte hardware sectors (250059 MB)
[ 40.592220] sd 2:0:1:0: [sdb] 781422768 512-byte hardware sectors (400088 MB)
[ 40.611879] sd 3:0:0:0: [sdc] 781422768 512-byte hardware sectors (400088 MB)
[ 40.635162] sd 3:0:1:0: [sdd] 781422768 512-byte hardware sectors (400088 MB)
root@ubuntu:/home/ubuntu#
ага. есть 4 диска - 1 диск sda-250GB - это рабочий, остальные (sdb,sdc,sdd) - части рэйда.
2) В live-cd Ubuntu нет ни mdadm, ни lvm. Исправим это. Настраиваем сеть, и выполняем в терминале:
root@ubuntu:/home/ubuntu# apt-get update && apt-get install mdadm lvm2
Установилось. Хорошо, едем дальше.
3) Пытаемся пересобрать RAID в автоматическом режиме:
root@ubuntu:/home/ubuntu# mdadm --assemble --scan
mdadm: /dev/md0 has been started with 2 drives (out of 3) and 1 spare.
root@ubuntu:/home/ubuntu# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[0] sdd1[1]
781417472 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
unused devices:
Видим что массив нашелся, но сломанный - один диск отвалился.
Игнорируем, потому что рэйд пятого уровня - позволяет сохранить данные при поломке одного диска.
Массив нашелся, поднялся. Двигаемся дальше.
4) Поднимаем LVM:
Загружаем модуль
root@ubuntu:/home/ubuntu# modprobe dm-mod
Активируем LVM:
root@ubuntu:/home/ubuntu# vgchange -a y
1 logical volume(s) in volume group "files" now active
Проверяем какие logical volumes у нас есть:
root@ubuntu:/home/ubuntu# lvscan
ACTIVE '/dev/files/filesrv' [700,00 GB] inherit
видим один раздел - /dev/files/filesrv на 700 гигов.
Создаем точку монтирования и монтируем раздел:
root@ubuntu:/home/ubuntu# mkdir /files
root@ubuntu:/home/ubuntu# mount /dev/files/filesrv /files
Смотрим что получилось:
root@ubuntu:/home/ubuntu# ls -lh /files/
total 20K
drwxrwxrwx 79 root root 8,0K 2009-03-30 06:24 other
drwxrwxrwx 15 root root 4,0K 2008-12-08 05:55 public
drwxrwxrwt 7 1000 1000 76 2009-04-02 10:33 vmdata
drwxrwxrwx 5 1000 1000 47 2009-02-20 10:22 webfiles
Ура! Все файлы видны и доступны!
Теперь можно скопировать их на рабочий диск:
root@ubuntu:/home/ubuntu# mkdir /workhdd
root@ubuntu:/home/ubuntu# mount /dev/sda4 /workhdd
root@ubuntu:/home/ubuntu# cp -r /files/vmdata /workhdd/
или через ssh на другой сервер:
root@ubuntu:/home/ubuntu# scp -r /files/vmdata root@192.168.1.6:/files/
После того как все скопировалось - можно заняться восстановлением RAID. Проверяем еще раз статус:
root@ubuntu:/home/ubuntu# cp -r /files/vmdata/
root@ubuntu:/home/ubuntu# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[0] sdd1[1]
781417472 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
unused devices:
видим что в RAID сейчас два диска - sdc и sdd. Недостающий диск - sdb.
Добавим его:
root@ubuntu:/home/ubuntu# mdadm /dev/md0 --re-add /dev/sdb1
mdadm: re-added /dev/sdb1
Диск добавился. Следим за его пересборкой:
root@ubuntu:/home/ubuntu# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdb1[3] sdc1[0] sdd1[1]
781417472 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 0.0% (95748/390708736) finish=3261.8min speed=1994K/sec
Прогрессбар движется, до окончания пересборки осталось 3261 минута, то есть больше 2 суток.
Это уже не нормально, да и диск начал слышно стучать. Понятно. Пора ему на свалку.
вторник, 31 марта 2009 г.
Обработка XML данных в командной строке при помощи xmlstarlet
Думаю что в хозяйстве однозначно пригодится
Обработка XML данных в командной строке при помощи xmlstarlet
В составе Debian, Ubuntu и других Linux дистрибутивах можно найти пакет xmlstarlet (http://xmlstar.sourceforge.net/),
представляющий собой набор утилит командной строки для преобразования, выборки данных и проверки XML документов.
Реализует для работы с XML функции похожие на утилиты grep, tr, sed, awk, diff, patch, join и т.п.,
что очень удобно для разбора XML документов в скриптах.
Например, для парсинга RSS и вывода заголовков можно использовать:
curl url_rss | xmlstarlet sel -t -m /rss/channel/item -v title -n
вывод из RSS ссылки и заголовка, разделенные символом "|"
curl url_rss | xmlstarlet sel -t -m /rss/channel/item -v link -o "|" -v title -n
Для ленты в формате Atom, с построчным разделением URL от заголовка:
curl url_rss | sed 's/xmlns=/_xmlns=/'| xmlstarlet sel -t -m /feed/entry -v link/@href -n -v title -n
Опция -t информирует о начале задания шаблона, определенного далее идущими директивами.
-m указывает, параметры XPath выборки, в нашем случае, обработка всех- внутри
внутри .
-v - определяем содержимое какого поля выводить.
-n - инициирует вывод символа перевода строки,
-o - позволяет вывести произвольный текст.
Быстрый просмотр текста в ODT файле
unzip -p document.odt content.xml | xmlstarlet sel -N text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" \
-T -t -m '//text:p' -v . -n
Построить список изображений, используемых в заданной странице:
cat test.html| xmlstarlet sel --html -t -m "//img" -v "@src" -n
Примеры использования xmlstarlet для различных ситуаций можно найти в директории /usr/share/doc/xmlstarlet/examples
Обработка XML данных в командной строке при помощи xmlstarlet
В составе Debian, Ubuntu и других Linux дистрибутивах можно найти пакет xmlstarlet (http://xmlstar.sourceforge.net/),
представляющий собой набор утилит командной строки для преобразования, выборки данных и проверки XML документов.
Реализует для работы с XML функции похожие на утилиты grep, tr, sed, awk, diff, patch, join и т.п.,
что очень удобно для разбора XML документов в скриптах.
Например, для парсинга RSS и вывода заголовков можно использовать:
curl url_rss | xmlstarlet sel -t -m /rss/channel/item -v title -n
вывод из RSS ссылки и заголовка, разделенные символом "|"
curl url_rss | xmlstarlet sel -t -m /rss/channel/item -v link -o "|" -v title -n
Для ленты в формате Atom, с построчным разделением URL от заголовка:
curl url_rss | sed 's/xmlns=/_xmlns=/'| xmlstarlet sel -t -m /feed/entry -v link/@href -n -v title -n
Опция -t информирует о начале задания шаблона, определенного далее идущими директивами.
-m указывает, параметры XPath выборки, в нашем случае, обработка всех
-v - определяем содержимое какого поля выводить.
-n - инициирует вывод символа перевода строки,
-o - позволяет вывести произвольный текст.
Быстрый просмотр текста в ODT файле
unzip -p document.odt content.xml | xmlstarlet sel -N text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" \
-T -t -m '//text:p' -v . -n
Построить список изображений, используемых в заданной странице:
cat test.html| xmlstarlet sel --html -t -m "//img" -v "@src" -n
Примеры использования xmlstarlet для различных ситуаций можно найти в директории /usr/share/doc/xmlstarlet/examples
понедельник, 15 декабря 2008 г.
установка флеша x64
Обновив в отпуск свой компьютер установил систему x64, тут описано небольшое руководство по установке альфа версии флеша для 64ёх разрядных систем
sudo apt-get remove flashplugin-nonfree nspluginwrapper
cd ~/Desktop
tar -zxvf libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz
mkdir ~/.mozilla/plugins
cp libflashplayer.so ~/.mozilla/plugins
а вот таким образом можно откатиться назад к x32:
rm ~/.mozilla/plugins/libflashplayer.so
sudo apt-get install flashplugin-nonfree
sudo apt-get remove flashplugin-nonfree nspluginwrapper
cd ~/Desktop
tar -zxvf libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz
mkdir ~/.mozilla/plugins
cp libflashplayer.so ~/.mozilla/plugins
а вот таким образом можно откатиться назад к x32:
rm ~/.mozilla/plugins/libflashplayer.so
sudo apt-get install flashplugin-nonfree
понедельник, 13 октября 2008 г.
Софт для анализа профайлинг-логов в Unix
KCachegrind (есть билд под QT4)
GraphViz
Valgrind - дебагер - не обязателен
GraphViz
Valgrind - дебагер - не обязателен
понедельник, 7 июля 2008 г.
Запуск "кластера 1С 8.1 Предприятие" в Slackware Linux
Встала задача поставить 1С 8.1 кластерную на линукс. В списке рекомендованных систем для установки только Red Hat и производные. А у меня из мощностей только свободный сервер под Slackware Linux 12.1. В целом с установкой самой 1С'ы сложностей не возникло. Я только переписал стартовые скрипты, System V отказались работать, написал свои:
root@srv-pdc:~# cat /etc/rc.d/rc.postgresql
#!/bin/sh
# Start/stop/restart/status the PostgreSQL:
PATH=/usr/bin
DBCLUSTER=/mnt/storage0/1CDB/pgsql
SERVERLOG=/var/log/pgsql/server.log
pgsql_start() {
echo "Starting PostgreSQL Server"
/bin/su postgres -c "pg_ctl start -D $DBCLUSTER -l $SERVERLOG"
}
pgsql_stop() {
echo "Stoping PostgreSQL Server"
/bin/su postgres -c "pg_ctl stop -D $DBCLUSTER -m smart"
sleep 10
}
pgsql_restart() {
echo "Restarting PostgreSQL Server"
/bin/su postgres -c "pg_ctl reload"
}
pgsql_status() {
echo "Status PostgreSQL Server"
/bin/su postgres -c "pg_ctl status -D $DBCLUSTER"
}
case "$1" in
'start')
pgsql_start
;;
'stop')
pgsql_stop
;;
'status')
pgsql_status
;;
'restart')
pgsql_restart
;;
*)
echo "usage $0 start|stop|restart|status"
esac
-----------------------------------------------------------------------------
root@srv-pdc:~# cat /etc/rc.d/rc.srv1cv81
#!/bin/sh
# Start/stop/restart the srv1cv81:
AGENTUSR=usr1cv81
INSTDIR=/opt/1C/v8.1/i386
srv_start() {
echo -n "Starting 1C:Enterprise 8.1 server: "
/bin/su $AGENTUSR -c "$INSTDIR/ragent -daemon"
}
srv_stop() {
echo -n "Stopping 1C:Enterprise 8.1 server: "
killall ragent
killall rmngr
killall rphost
sleep 10
}
srv_restart() {
echo -n "Restarting 1C:Enterprise 8.1 server: "
srv_stop
srv_start
}
case "$1" in
'start')
srv_start
;;
'stop')
srv_stop
;;
'restart')
srv_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
--------------------------------------------------------------------------
root@srv-pdc:~# cat /etc/rc.d/rc.local
#!/bin/sh
#
# /etc/rc.d/rc.local: Local system initialization script.
#
# Put any local startup commands in here. Also, if you have
# anything that needs to be run at shutdown time you can
# make an /etc/rc.d/rc.local_shutdown script and put those
# commands in there.
/usr/sbin/dhcpd
/opt/hasp/aksusbd
/etc/rc.d/rc.postgresql start
/etc/rc.d/rc.srv1cv81 start
--------------------------------------------------------------------------
root@srv-pdc:~# cat /etc/rc.d/rc.local_shutdown
#!/bin/sh
#
# /etc/rc.d/rc.local: Local system initialization script.
#
# Put any local startup commands in here. Also, if you have
# anything that needs to be run at shutdown time you can
# make an /etc/rc.d/rc.local_shutdown script and put those
# commands in there.
killall /usr/sbin/dhcpd
killall /opt/hasp/aksusbd
/etc/rc.d/rc.postgresql stop
/etc/rc.d/rc.srv1cv81 stop
root@srv-pdc:~# cat /etc/rc.d/rc.postgresql
#!/bin/sh
# Start/stop/restart/status the PostgreSQL:
PATH=/usr/bin
DBCLUSTER=/mnt/storage0/1CDB/pgsql
SERVERLOG=/var/log/pgsql/server.log
pgsql_start() {
echo "Starting PostgreSQL Server"
/bin/su postgres -c "pg_ctl start -D $DBCLUSTER -l $SERVERLOG"
}
pgsql_stop() {
echo "Stoping PostgreSQL Server"
/bin/su postgres -c "pg_ctl stop -D $DBCLUSTER -m smart"
sleep 10
}
pgsql_restart() {
echo "Restarting PostgreSQL Server"
/bin/su postgres -c "pg_ctl reload"
}
pgsql_status() {
echo "Status PostgreSQL Server"
/bin/su postgres -c "pg_ctl status -D $DBCLUSTER"
}
case "$1" in
'start')
pgsql_start
;;
'stop')
pgsql_stop
;;
'status')
pgsql_status
;;
'restart')
pgsql_restart
;;
*)
echo "usage $0 start|stop|restart|status"
esac
-----------------------------------------------------------------------------
root@srv-pdc:~# cat /etc/rc.d/rc.srv1cv81
#!/bin/sh
# Start/stop/restart the srv1cv81:
AGENTUSR=usr1cv81
INSTDIR=/opt/1C/v8.1/i386
srv_start() {
echo -n "Starting 1C:Enterprise 8.1 server: "
/bin/su $AGENTUSR -c "$INSTDIR/ragent -daemon"
}
srv_stop() {
echo -n "Stopping 1C:Enterprise 8.1 server: "
killall ragent
killall rmngr
killall rphost
sleep 10
}
srv_restart() {
echo -n "Restarting 1C:Enterprise 8.1 server: "
srv_stop
srv_start
}
case "$1" in
'start')
srv_start
;;
'stop')
srv_stop
;;
'restart')
srv_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
--------------------------------------------------------------------------
root@srv-pdc:~# cat /etc/rc.d/rc.local
#!/bin/sh
#
# /etc/rc.d/rc.local: Local system initialization script.
#
# Put any local startup commands in here. Also, if you have
# anything that needs to be run at shutdown time you can
# make an /etc/rc.d/rc.local_shutdown script and put those
# commands in there.
/usr/sbin/dhcpd
/opt/hasp/aksusbd
/etc/rc.d/rc.postgresql start
/etc/rc.d/rc.srv1cv81 start
--------------------------------------------------------------------------
root@srv-pdc:~# cat /etc/rc.d/rc.local_shutdown
#!/bin/sh
#
# /etc/rc.d/rc.local: Local system initialization script.
#
# Put any local startup commands in here. Also, if you have
# anything that needs to be run at shutdown time you can
# make an /etc/rc.d/rc.local_shutdown script and put those
# commands in there.
killall /usr/sbin/dhcpd
killall /opt/hasp/aksusbd
/etc/rc.d/rc.postgresql stop
/etc/rc.d/rc.srv1cv81 stop
среда, 25 июня 2008 г.
изменение sid'ов у пользователей домена под управлением Samba
Итак, вводные:
PDC по управлением Samba 3.26 (и до 3.30 включительно ситуация идентчина)
бекэенд для хранения паролей tdbsam
пользователи добавлялись в домен с помощью smbpasswd
затем мне понадоиблось имзенить ихние сиды, точнее только последний разряд - RID. Для этого я прибег к утилите входящей в самбу под названием pdbedit. У нее есть соответсвующий ключик для изменения сидов и ридов.
На примере себя делаю так:
#pdbedit -u skonev -U 1115 -r
для тех кто в танке - 1115 это RID моего SID'а
в результате имеем следующее сообщение, это при уровне дебага - 1
Server's Role (logon server) NOT ADVISED with domain-level security
Unable to modify TDB passwd ! Error: Record does not exist
occured while storing the RID index (RID_0000045b)
Unable to modify entry!
Но при этом мой SID изменился, домен функционирует, все в порядке. Но! делаем второй ход, меняем мне пароль через smbpasswd:
#smbpasswd skonev
New SMB password:
Retype new SMB password:
Unable to modify TDB passwd ! Error: Record does not exist
occured while storing the RID index (RID_0000045b)
Failed to modify entry for user skonev.
Failed to modify password entry for user skonev
Опаньки, а проль не изменился, пробуем порулить моей учетной записью из консоли Windows - пользвоатель не найден.
Вообщем бился я с этой проблемой весь вечер, итог таков:
Начальный способ заведения пользвоателя в базу значения не имеет, это может быть как и smbpasswd, так и "pdbedit -u Vasiliy -a". При изменении сида или рида (значения не имеет) pdbedit, чтото колечит в базе. Чтоже делать? Сид мне необходимо изменит во чтобы то ни стало. И способ был найден.
для начала удаляем "кривого" пользователя из базы
#pdbedit -x skonev
причем процедуру лутше провести дважды, для надежности
а далее создаем его снова, только средствами именно pdbedit, и в качестве парметра указываем нужный нам RID или SID (кому что нужно)
#pdbedit -u skonev -a -U 1115 -b tdbsa
и радость - все работает, пользвоатель добавлен с нужным мне сидом, база цела, ничего не глючит. И есть возожность руления доменом из винды!
Как будет настроение я напишу как рулить самбой из винды и напишу как я реализовал в несколько усеченом виде групповые политики в самбе.
PDC по управлением Samba 3.26 (и до 3.30 включительно ситуация идентчина)
бекэенд для хранения паролей tdbsam
пользователи добавлялись в домен с помощью smbpasswd
затем мне понадоиблось имзенить ихние сиды, точнее только последний разряд - RID. Для этого я прибег к утилите входящей в самбу под названием pdbedit. У нее есть соответсвующий ключик для изменения сидов и ридов.
На примере себя делаю так:
#pdbedit -u skonev -U 1115 -r
для тех кто в танке - 1115 это RID моего SID'а
в результате имеем следующее сообщение, это при уровне дебага - 1
Server's Role (logon server) NOT ADVISED with domain-level security
Unable to modify TDB passwd ! Error: Record does not exist
occured while storing the RID index (RID_0000045b)
Unable to modify entry!
Но при этом мой SID изменился, домен функционирует, все в порядке. Но! делаем второй ход, меняем мне пароль через smbpasswd:
#smbpasswd skonev
New SMB password:
Retype new SMB password:
Unable to modify TDB passwd ! Error: Record does not exist
occured while storing the RID index (RID_0000045b)
Failed to modify entry for user skonev.
Failed to modify password entry for user skonev
Опаньки, а проль не изменился, пробуем порулить моей учетной записью из консоли Windows - пользвоатель не найден.
Вообщем бился я с этой проблемой весь вечер, итог таков:
Начальный способ заведения пользвоателя в базу значения не имеет, это может быть как и smbpasswd, так и "pdbedit -u Vasiliy -a". При изменении сида или рида (значения не имеет) pdbedit, чтото колечит в базе. Чтоже делать? Сид мне необходимо изменит во чтобы то ни стало. И способ был найден.
для начала удаляем "кривого" пользователя из базы
#pdbedit -x skonev
причем процедуру лутше провести дважды, для надежности
а далее создаем его снова, только средствами именно pdbedit, и в качестве парметра указываем нужный нам RID или SID (кому что нужно)
#pdbedit -u skonev -a -U 1115 -b tdbsa
и радость - все работает, пользвоатель добавлен с нужным мне сидом, база цела, ничего не глючит. И есть возожность руления доменом из винды!
Как будет настроение я напишу как рулить самбой из винды и напишу как я реализовал в несколько усеченом виде групповые политики в самбе.
понедельник, 7 апреля 2008 г.
Аутентификация Ubuntu-desktop в домене Active Directory
Дано: FQDN домена: MYDOMAIN.LOCAL, FQDN домен-контроллера: PDC.MYDOMAIN.LOCAL, netbios-имя машины, которую добавляем: UBUNTU, netbios-имя домена: MYDOMAIN, учетная запись с правами администратора домена: quizz.
1. Установим следующие пакеты (и все зависимости, которые они за собой тянут):
sudo apt-get update
sudo apt-get install krb5-user winbind samba
2. Поправим /etc/krb5.conf (sudo gedit /etc/krb5.conf), он должен выглядеть точно так, как написано ниже, только конечно же не забудьте заменить имена домена, компьютера и т.д. своими именами:
[logging]
default = FILE10000:/var/log/krb5lib.log
[libdefaults]
ticket_lifetime = 24000
default_realm = MYDOMAIN.LOCAL
default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc
default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc
[realms]
MYDOMAIN.LOCAL = {
kdc =PDC.MYDOMAIN.LOCAL
admin_server = PDC.MYDOMAIN.LOCAL
default_domain = MYDOMAIN.LOCAL
}
[domain_realm]
.domain.internal =MYDOMAIN.LOCAL
domain.internal = MYDOMAIN.LOCAL
3. Отредактируем /etc/samba/smb.conf (sudo gedit /etc/samba/smb.conf):
[global]
security = ads
netbios name = UBUNTU
realm = MYDOMAIN.LOCAL
password server = PDC.MYDOMAIN.LOCAL
workgroup = MYDOMAIN
idmap uid = 500-10000000
idmap gid = 500-10000000
winbind separator = +
winbind enum users = no
winbind enum groups = no
winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
domain master = no
4. Сделаем /etc/nsswitch.conf (sudo gedit /etc/nsswitch.conf) точно таким, как написано ниже:
passwd: compat winbind
group: compat winbind
shadow: compat
hosts: files dns wins
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
5. Отредактируем настройки PAM (для редактирования каждого из следующих файлов требуются права суперпользователя):
* /etc/pam.d/common-account должны содержать только следующие строки:
account sufficient pam_winbind.so
account required pam_unix.so
* в /etc/pam.d/common-auth должно быть только это:
auth sufficient pam_winbind.so
auth required pam_unix.so nullok_secure use_first_pass
* поправим the /etc/pam.d/common-password так, чтобы параметр max был 50, в качестве примера:
password required pam_unix.so nullok obscure min=4 max=50 md5
* убедитесь, что /etc/pam.d/common-session содержит следующие строки:
session required pam_mkhomedir.so umask=0022 skel=/etc/skel
6. Создадим home-директорию для пользователей Active Directory:
sudo mkdir -p /home/MYDOMAIN
7. Отредактируйте /etc/hosts:
127.0.0.1 ubuntu.mydomain.local ubuntu localhost
8. Инициализируем Kerberos:
sudo kinit quizz@MYDOMAIN.LOCAL
FQDN домена пишем заглавными буквами, точно так же, как писали в файле krb5.conf file. Проверить, что мы получили билет от Kerberos можно командой klist.
9. Добавим компьютер в Active Directory:
sudo net ads join -U quizz@MYDOMAIN.LOCAL
10. Перезапустим службы в следующем порядке:
sudo /etc/init.d/samba stop
sudo /etc/init.d/winbind stop
sudo /etc/init.d/samba start
sudo /etc/init.d/winbind start
На этом все!!! Перезагрузимся и попробуем зайти в систему под любым пользователем домена.
Не забываем, что для рабочей станции с установленной ubuntu администратор домена является не более, чем простым пользователям.
Основные источники информации: Официальный форум Ubuntu, официальный сайт проекта Samba.
1. Установим следующие пакеты (и все зависимости, которые они за собой тянут):
sudo apt-get update
sudo apt-get install krb5-user winbind samba
2. Поправим /etc/krb5.conf (sudo gedit /etc/krb5.conf), он должен выглядеть точно так, как написано ниже, только конечно же не забудьте заменить имена домена, компьютера и т.д. своими именами:
[logging]
default = FILE10000:/var/log/krb5lib.log
[libdefaults]
ticket_lifetime = 24000
default_realm = MYDOMAIN.LOCAL
default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc
default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc
[realms]
MYDOMAIN.LOCAL = {
kdc =PDC.MYDOMAIN.LOCAL
admin_server = PDC.MYDOMAIN.LOCAL
default_domain = MYDOMAIN.LOCAL
}
[domain_realm]
.domain.internal =MYDOMAIN.LOCAL
domain.internal = MYDOMAIN.LOCAL
3. Отредактируем /etc/samba/smb.conf (sudo gedit /etc/samba/smb.conf):
[global]
security = ads
netbios name = UBUNTU
realm = MYDOMAIN.LOCAL
password server = PDC.MYDOMAIN.LOCAL
workgroup = MYDOMAIN
idmap uid = 500-10000000
idmap gid = 500-10000000
winbind separator = +
winbind enum users = no
winbind enum groups = no
winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
domain master = no
4. Сделаем /etc/nsswitch.conf (sudo gedit /etc/nsswitch.conf) точно таким, как написано ниже:
passwd: compat winbind
group: compat winbind
shadow: compat
hosts: files dns wins
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
5. Отредактируем настройки PAM (для редактирования каждого из следующих файлов требуются права суперпользователя):
* /etc/pam.d/common-account должны содержать только следующие строки:
account sufficient pam_winbind.so
account required pam_unix.so
* в /etc/pam.d/common-auth должно быть только это:
auth sufficient pam_winbind.so
auth required pam_unix.so nullok_secure use_first_pass
* поправим the /etc/pam.d/common-password так, чтобы параметр max был 50, в качестве примера:
password required pam_unix.so nullok obscure min=4 max=50 md5
* убедитесь, что /etc/pam.d/common-session содержит следующие строки:
session required pam_mkhomedir.so umask=0022 skel=/etc/skel
6. Создадим home-директорию для пользователей Active Directory:
sudo mkdir -p /home/MYDOMAIN
7. Отредактируйте /etc/hosts:
127.0.0.1 ubuntu.mydomain.local ubuntu localhost
8. Инициализируем Kerberos:
sudo kinit quizz@MYDOMAIN.LOCAL
FQDN домена пишем заглавными буквами, точно так же, как писали в файле krb5.conf file. Проверить, что мы получили билет от Kerberos можно командой klist.
9. Добавим компьютер в Active Directory:
sudo net ads join -U quizz@MYDOMAIN.LOCAL
10. Перезапустим службы в следующем порядке:
sudo /etc/init.d/samba stop
sudo /etc/init.d/winbind stop
sudo /etc/init.d/samba start
sudo /etc/init.d/winbind start
На этом все!!! Перезагрузимся и попробуем зайти в систему под любым пользователем домена.
Не забываем, что для рабочей станции с установленной ubuntu администратор домена является не более, чем простым пользователям.
Основные источники информации: Официальный форум Ubuntu, официальный сайт проекта Samba.
суббота, 15 марта 2008 г.
Как в Linux привязать процесс к CPU и установить атрибуты планирования
Как в Linux привязать процесс к CPU и установить атрибуты планирования
При необходимости увеличить производительность определенного процесса в системе,
можно жестко привязать его к определенному CPU (CPU affinity), исключив
ситуацию мигрирования между процессорами, а также изменить для него алгоритм работы
планировщика задач и увеличить приоритет.
Привязка к CPU осуществляется командой taskset, а изменение параметров real-time
планирования командой chrt. Обе команды можно использовать каскадно, вызывая
одну в качестве аргумента другой.
Например:
taskset -c 2-3 chrt -f 1
привяжет выполнение команды к CPU со 2 по 3 ("-c 2-3", можно перечислять
процессоры через запятую, например, "-c 2,3"), а также задействует политику
планирования SCHED_FIFO ("-f") и установит приоритет 1 уровня.
Политики планирования (описание - man sched_setscheduler):
-b SCHED_BATCH
-f SCHED_FIFO
-o SCHED_OTHER
-r SCHED_RR
Изменение параметров для уже запущенного процесса производится при помощи опции "-p".
Например, изменение параметров процесса с PID 123:
taskset -c 2-3 -p 123
chrt -f 1 -p 123
При необходимости увеличить производительность определенного процесса в системе,
можно жестко привязать его к определенному CPU (CPU affinity), исключив
ситуацию мигрирования между процессорами, а также изменить для него алгоритм работы
планировщика задач и увеличить приоритет.
Привязка к CPU осуществляется командой taskset, а изменение параметров real-time
планирования командой chrt. Обе команды можно использовать каскадно, вызывая
одну в качестве аргумента другой.
Например:
taskset -c 2-3 chrt -f 1
привяжет выполнение команды к CPU со 2 по 3 ("-c 2-3", можно перечислять
процессоры через запятую, например, "-c 2,3"), а также задействует политику
планирования SCHED_FIFO ("-f") и установит приоритет 1 уровня.
Политики планирования (описание - man sched_setscheduler):
-b SCHED_BATCH
-f SCHED_FIFO
-o SCHED_OTHER
-r SCHED_RR
Изменение параметров для уже запущенного процесса производится при помощи опции "-p".
Например, изменение параметров процесса с PID 123:
taskset -c 2-3 -p 123
chrt -f 1 -p 123
понедельник, 20 августа 2007 г.
Wi-Fi адаптер, видеокарта ATI Radeon и Slackware Linux 12
Продолжаю сводки с фронта...
1) Видеокарта ATI Radeon 9200SE Saphire AGP
Злоключения с фирменными дровами АТИ закончились. Я установил свеженький XOrg (если память не изменяет 7.1), сделал X -configure, скопировал свежий конфиг из домашней ппки и положил в /etc/X11/xorg.conf
и стало много счастья, он даже монитор распознал и верно определил развертку, красота страшная сила :)
2) Wi-Fi адаптер Acorp на чипе ZyDas 1211B... оо, это магический чипсет, весь китай на нем паяет адаптеры беспроводные... Для начала о дровах: для старых ядер, т.е. до 2.6.16 дров в инете навалом, даже официальных, гугл вам поможет в поиске. В современных ядрах модули адаптера идут в комплекте. Далее просиходит самое забавное:
а) если вы скомпилируете ядро, включив девайс в ядрышко, то при загрузке системы вы увидите что система рне может найти firware адаптера
б) можно скомпилировать ячдрышко, подключив девайс модулем
эффект будет аналогичный, хотя на сколькоя понимаю во втором случае udev должен выкачать фирмве из адаптера на файловую систему, почему этого не происходит я не знаю. Проблема решилась очень просто, качаем firmware от сюда: http://ftp.de.debian.org/debian/pool/non-free/z/zd1211-firmware/zd1211-firmware_2.16.0.0.orig.tar.gz
распаковываем, кладем в /lib/firmware (точный путь опятьже не помню, в архиве лежит readme - прочтете)
и Воля! Работает! завтра буду учится настраивать WPA/WEP в слаке в конфигах, гуи и визарды не для нас, мы не ищем легких путей :)
До встречи :)
Подписаться на:
Сообщения (Atom)