Обновив в отпуск свой компьютер установил систему 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
понедельник, 15 декабря 2008 г.
понедельник, 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
Подписаться на:
Сообщения (Atom)