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

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

понедельник, 13 октября 2008 г.

Софт для анализа профайлинг-логов в Unix

KCachegrind (есть билд под QT4)
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

среда, 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