Уголок СУ-11 на просторах вселенной

понедельник, 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

среда, 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
и радость - все работает, пользвоатель добавлен с нужным мне сидом, база цела, ничего не глючит. И есть возожность руления доменом из винды!
Как будет настроение я напишу как рулить самбой из винды и напишу как я реализовал в несколько усеченом виде групповые политики в самбе.

понедельник, 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.

суббота, 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

понедельник, 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 в слаке в конфигах, гуи и визарды не для нас, мы не ищем легких путей :)

До встречи :)

понедельник, 7 мая 2007 г.

Цитата из "Хард Рок: история развития и сущность"

...Они (подростки) сегодня обожают роскошь, у них плохие манеры и нет ни какого уважения к авторитетам, они высказывают неуважение старшим, слоняются без дела и постоянно сплетничают. Они все время спорят с родителями, они постоянно вмешиваются в разговоры и привлекают к себе внимание, они прожорливы и тиранят учителей... Сократ (470/469-399 гг. до н.э.)

...Нельзя требовать от трактирщика..., чтобы он выражался также изысканно, как [те господа], которые охотно превратили бы Чехословацкую республику в большой салон, по паркету которого расхаживают люди во фраках и белых перчатках; разговаривают они на изысканном языке и культивируют утонченную салонную мораль, а за ширмой этой морали салонные львы предаются самому гадкому и противоестественному разврату... Я. Гашек, “Похождения бравого солдата Швейка”