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

суббота, 10 ноября 2018 г.

решение проблемы вывода qDebug в Application output QTCreator

Проблема следующая:
Centos7, QTCreator 4.7.
Не работает вывод QDebug в Application output QTCreator
Решение найдено тут:
https://bugs.archlinux.org/task/40583
+ сам нарыл

1)
Запускать QTCreator нужно с перменной вот так:
QT_LOGGING_TO_CONSOLE=1 qtcreator
после этого у нас заработает qInfo()

2)
Для использования qWarning()
в QTCreator заходим в "Инструменты" -> "Параметры" -> "Сбора и запуск" -> "Основное", включаем "Объединять stderror и stdout"
или
добавить QT_ASSUME_STDERR_HAS_CONSOLE=1 к запуску QTCreator
пример: QT_ASSUME_STDERR_HAS_CONSOLE=1 QT_LOGGING_TO_CONSOLE=1 qtcreator

3)
Далее для того, чтобы оживить qDebug
в наш main.cpp
добавляем (в списке я убрал не нужные дял меня сообщения)
QLoggingCategory::setFilterRules("*.debug=true\n"
                                    "qt.qpa.input*.debug=false\n"
                                    "qt.qpa.gl*.debug=false\n"
                                    "qt.widgets.gestures*.debug=false\n"
                                    "qt.qpa.screen*.debug=false\n"
                                    "qt.xcb.glintegration*.debug=false\n"
                                    "qt.svg*.debug=false\n"
                                    "logfunc.printf.debug=true\n"
                                    "logfunc.value.debug=true");
На сколько я понимаю LoggingCategory также можно задавать через переменные. Но мне это не нужно.


воскресенье, 4 мая 2014 г.

бэкап файлов из windows средствами rsync

@echo off
C:
cd C:\Users\administrator.CORP
SET HOME=%HOMEDRIVE%%HOMEPATH%
rsync -av -e "ssh -i /cygdrive/c/Users/administrator.CORP/.ssh/id_rsa" "/cygdrive/d/DailyBackUP" bkpuser@srv-bkp:/mnt/storage/dt
if not %errorlevel% == 0 goto errTransfer
echo Done
goto delfiles
:errTransfer
echo Transfer error
pause
goto exit
:delfiles
echo Y|del d:\DailyBackUP\*
exit
:exit

воскресенье, 2 февраля 2014 г.

Удаление рекламы из Skype

Удаление рекламы из Skype
В hosts файле
C:\Windows\System32\Drivers\etc 
указываем перенаправление 
127.0.0.1 rad.msn.com
127.0.0.1 ads2.msads.net

воскресенье, 29 декабря 2013 г.

Добавление SLIC таблицы в виртуальный BIOS Proxmox'а

1. apt-get install build-essential iasl
2. wget http://code.coreboot.org/p/seabios/downloads/get/seabios-1.7.3.tar.gz
3. tar xzf sea*
4. mv seabios-1.7.3 seabios
5. cd ./seabios/src
6. тут берем патч для биоса http://forum.proxmox.com/attachment.php?attachmentid=1647&d=1377897028
7. ищем SLIC таблицу, например эту https://app.box.com/s/54qoducwsm2m0bxt857s от сюда http://forums.mydigitallife.info/threads/5952-OA-2-x-SLIC-amp-OEMCERT-Collection/page128
8. Конвертируем нужный SLIC в Hex xxd -i source-bin-file.bin | grep -v len | sed 's/unsigned char.*/static char SLIC[] = {/' > acpi-slic.hex
9. Еще можно взять SLIC в гипервизора xxd -i /sys/firmware/acpi/tables/SLIC | grep -v len | sed ‘s/unsigned char.*/static char SLIC[] = {/’ > acpi-slic.hex
10. все кладем в src
11. patch -p1 < acpi_slic.patch
12. указываем acpi.c
13. cd ..
14. make
15. mkdir /usr/share/kvm/bkp
16. cp /usr/share/kvm/* /usr/share/kvm/bkp/
17. cp ./out/*.bin /usr/share/kvm/
18. cp ./out/*.aml /usr/share/kvm/
также не забываем установить сертификат Dell и серийный номер. Этих трех компонентов будет достаточно для офлайн активации.

воскресенье, 3 ноября 2013 г.

centos медленно резолвит имена

Заметил странное. centos 6 медленно резолвит DNS имена. Помогло следующее: добавить options single-request-reopen в /etc/resolv.conf

вторник, 8 января 2013 г.

VB cкрипт для бэкапа 1С баз, отключает пользователей, блокирует базу, монтирует сетевой диск, выгружает, все закрывает :)


Dim WshNetwork ' объект сети
Dim WshShell ' шел ОС
Dim WshEnv ' переменное окружение шела
Dim ServerName ' DNS имя сервера с 1С
Dim InfoBasesAdminName ' админ базы
Dim InfoBasesAdminPass ' пароль админа базы
Dim ClasterPortNumber ' порт кластера
Dim ClasterAdminName ' админ кластера
Dim ClasterAdminPass ' пароль админа кластера
Dim LockPermissionCode ' код блокировки базы
Dim LockMessageText ' сообщение о блокировке базы
Dim FileName ' имя файла бэкапа
Dim DumpPath ' путь куда бэкапить
Dim ComConnector ' ком объект 1С
Dim ConnectToWProc ' коннектор к 1С процессу
Dim ServerAgent ' адрес агента 1С
Dim PrgDirx86 ' exe 1Ски
Dim CommandExe ' команда на запуск
Dim NetPath ' сетевой путь к бэкапам

Function init()
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set ComConnector = CreateObject("v82.COMConnector")
Set ServerAgent = ComConnector.ConnectAgent(ServerName)
Set WshShell = CreateObject("WScript.Shell")
Set WshEnv = WshShell.Environment
NetPath = "\\192.168.1.1\backups\1C\dt"
ServerName = "srv-1csql"
InfoBasesAdminName = "backuper"
InfoBasesAdminPass = "123backuper"
ClasterPortNumber = 1541
ClasterAdminName = "Administrator"
ClasterAdminPass = "пароль админа кластера"
LockPermissionCode = "12345"
LockMessageText = vbCrLf + "База закрыта на создание резервной копии, примерно, на 10 минут"
DumpPath = "X:"
' получаем exe 1Ски, оно будет делать выгрузку
PrgDirx86 = WshShell.RegRead("HKEY_CLASSES_ROOT\CLSID\{5CD98F13-1050-4b43-84F2-33AD97CFC287}\LocalServer32\")
End Function

Function destroy()
WshNetwork = Null
ComConnector = Null
ServerAgent = Null
ConnectToWProc = Null
WshShell = Null
WshEnv = Null
End Function

Function Base_BKP(InfoBaseName) ' имя базы для бэкапа
Dim FindInfoBase ' признак успешного поиска базы
Dim Clasters ' массив кластеров сервера у агента сервера
Dim Claster ' кластер 1С
Dim WorkingProcesses ' массив рабочих процессов
Dim WorkingProcess ' рабочий процесс в кластере 1С
Dim InfoBases ' массив рабочих баз рабочего процесса
Dim InfoBase ' информационная база
Dim Connections ' массив подключений
Dim Connection ' подключение

FindInfoBase = False
FileName = DumpPath & "\" & InfoBaseName & "_" & _
Right("0" & Day(Now), 2) & "." & Right("0" & Month(Now), 2) & "." & Year(Now) & _
"-" & Right("0" & Hour(Now), 2) & "." & Right("0" & Minute(Now), 2) & "." + Right(Second(Now), 2) & ".dt"          
CommandExe = """" + PrgDirx86 + """ CONFIG /S" + ServerName + "\" + InfoBaseName + _
" /N" + InfoBasesAdminName + " /P" + InfoBasesAdminPass + _
" /UC" + LockPermissionCode + " /DisableStartupMessages /DumpIB " + FileName

Clasters = ServerAgent.GetClusters()
For Each Claster In Clasters
If Claster.MainPort = ClasterPortNumber Then
ServerAgent.Authenticate Claster, ClasterAdminName, ClasterAdminPass ' аутентифицируемся в кластере
WorkingProcesses = ServerAgent.GetWorkingProcesses(Claster) ' получаем список массив рабочих процессов кластера
For Each WorkingProcess In WorkingProcesses
If WorkingProcess.Running = 1 Then
' подключаемся к рабочему процессу
Set ConnectToWProc = ComConnector.ConnectWorkingProcess("tcp://" + WorkingProcess.HostName + ":" + CStr(WorkingProcess.MainPort))
ConnectToWProc.AuthenticateAdmin ClasterAdminName, ClasterAdminPass
          ConnectToWProc.AddAuthentication InfoBasesAdminName, InfoBasesAdminPass
      ' ищим базу данных
      InfoBases = ConnectToWProc.GetInfoBases() ' получаем массив баз данных
      For Each InfoBase In InfoBases
  If UCase(InfoBase.Name) = UCase(InfoBaseName) Then ' нашли нужную нам базу
      FindInfoBase = True
              Exit For
      End If
      Next
End If  
    ' закрываем все активные подключения во всех рабочих процессах
    Connections = ConnectToWProc.GetInfoBaseConnections(InfoBase) ' получаем массив соединений с базой
    For Each Connection In Connections
    If Connection.AppId <> "COMConsole" Then
    ConnectToWProc.Disconnect(Connection) ' разрываем соединения с базой
End If
    Next
Next
End If
Next

If FindInfoBase = True Then
' блокируем базу
InfoBase.ConnectDenied = True        
InfoBase.DeniedFrom = CStr(Now())
   InfoBase.DeniedTo = CStr(Now() + 1 / 300)
   InfoBase.DeniedMessage = LockMessageText
   InfoBase.PermissionCode = LockPermissionCode
   ConnectToWProc.UpdateInfoBase(InfoBase)

 
WshNetwork.MapNetworkDrive DumpPath, NetPath, "false", "CORP\backuper", "123backuper"  
   ' архивируем базу
WshShell.Run CommandExe, 0, True
WshNetwork.RemoveNetworkDrive DumpPath, "true", "true"
' отключаем блокировку базы
InfoBase.ConnectDenied = False
ConnectToWProc.UpdateInfoBase(InfoBase)
FindInfoBase = False
End If
End Function

init()
'Base_BKP("ka_bf")
Base_BKP("new_work")
destroy()

среда, 8 августа 2012 г.

простенький скрипт для компиляции wxwidgets под все конфигурации


call "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
set WXWIN="c:\Work\Develop\libs\wxWidgets\wxMSW-2.8.12"
cd %WXWIN%\build\msw
nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=1 MONOLITHIC=1
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=1 MONOLITHIC=1

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=1 MONOLITHIC=0
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=1 MONOLITHIC=0

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 MONOLITHIC=1
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 MONOLITHIC=1

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 MONOLITHIC=0
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 MONOLITHIC=0

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=1 MONOLITHIC=1
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=1 MONOLITHIC=1

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=1 MONOLITHIC=0
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=1 MONOLITHIC=0

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=0 MONOLITHIC=1
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=0 MONOLITHIC=0
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=0

set WXWIN="c:\Work\Develop\libs\wxWidgets\wxWidgets-2.9.4"
cd %WXWIN%\build\msw
nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=1 MONOLITHIC=1
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=1 MONOLITHIC=1

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=1 MONOLITHIC=0
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=1 MONOLITHIC=0

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 MONOLITHIC=1
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 MONOLITHIC=1

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 MONOLITHIC=0
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 MONOLITHIC=0

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=1 MONOLITHIC=1
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=1 MONOLITHIC=1

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=1 MONOLITHIC=0
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=1 MONOLITHIC=0

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=0 MONOLITHIC=1
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=0 MONOLITHIC=0
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=0

rem -----------------------------------------------

call "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat"
set WXWIN="c:\Work\Develop\libs\wxWidgets\wxWidgets-2.9.4"
cd %WXWIN%\build\msw
nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=1 MONOLITHIC=1 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=1 MONOLITHIC=1 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=1 MONOLITHIC=0 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=1 MONOLITHIC=0 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 MONOLITHIC=1 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 MONOLITHIC=1 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 MONOLITHIC=0 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 MONOLITHIC=0 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=1 MONOLITHIC=1 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=1 MONOLITHIC=1 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=1 MONOLITHIC=0 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=1 MONOLITHIC=0 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=0 MONOLITHIC=1 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=0 MONOLITHIC=0 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=0 TARGET_CPU=AMD64

set WXWIN="c:\Work\Develop\libs\wxWidgets\wxWidgets-2.9.4"
cd %WXWIN%\build\msw
nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=1 MONOLITHIC=1 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=1 MONOLITHIC=1 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=1 MONOLITHIC=0 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=1 MONOLITHIC=0 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 MONOLITHIC=1 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 MONOLITHIC=1 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 MONOLITHIC=0 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 MONOLITHIC=0 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=1 MONOLITHIC=1 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=1 MONOLITHIC=1 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=1 MONOLITHIC=0 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=1 MONOLITHIC=0 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=0 MONOLITHIC=1 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=1 TARGET_CPU=AMD64

nmake -f makefile.vc BUILD=debug UNICODE=0 SHARED=0 MONOLITHIC=0 TARGET_CPU=AMD64
nmake -f makefile.vc BUILD=release UNICODE=0 SHARED=0 MONOLITHIC=0 TARGET_CPU=AMD64

вторник, 24 июля 2012 г.

Удаление отсутствующего контроллера домена из леса Windows 2008 (наверное и 2000/2003 аналогично)

Заметка для себя. Удаление мертвого (отсутствующего) контроллера домена. Вариантов по сути два. Фиговый вариант - редактировать LDAP через adsiedit. Затем ручная чистка DNS и в будущем грабли из SYSVOL домена.
Есть более правильный путь.
На живом контроллере, открываем ntdsutil
Далее идем в меню:
metadata cleanup
connections
подключаемся к владельцу
connect to server МОЙ-ДОХЛЫЙ-КОНТРОЛЛЕР
далее топает на уровень выше quit
select operation target
list sites
находим наш сайт - циферка (например 007)
select site 007
list servers in site (находим циферку нашего сервера, например 1)
select server 1
аналогично находим наш домен
list domains (например домен номер 5)
select domain 5
quit
remove selected server
появляется предупреждение - проверяем - соглашаемся
Идем в оснастку  Active Directory Sites and Services
Выходим из этой софтины.
Находим контроллер в нашем сайте, смотрим что он больше не содержит объектов. Удаляем его - правой кнопкой - Delete.
Идем в оснастку  Active Directory Users and Computers, в OU - Domain Controllers - смотри наличие контроллера. Должен исчезнуть.
Далее идем в DNS, выбираем зону которую обслуживал дохлый контроллер. Жмем на нее правой кнопкой - Properties.
Далее идем в Name Servers (там-же в свойствах), удаляем дохлый контроллер от туда.
затем проверяем A и PTR записи - вычищаем.
Вот собственно и все :)

среда, 20 апреля 2011 г.

При попытке установить Windows 2003 R2 получаем "Another application requires a restart of this computer. Before setup can run, you must restart your computer"

Лечение: удалить ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

четверг, 2 декабря 2010 г.

squid + ldapauth + centos 5.x i386

Давненько я не писал. Встала классическая задача пришить к сквиду авторизацию в LDAP (AD2003). От kerberos решено отказаться, т.к. мне не нужно чтобы учетка бралась из логина винды. Пользователь должен сознательно вводить логин с паролем в браузер при запуске.

суббота, 11 сентября 2010 г.

в Firefox 3.6.9 ubuntu 10.04 пропал русский язык, переустановки пакетов, локализаций не помогла

в итоге был найден красивый способ без бубна:
Устанавливаем расширение LocaleSwitcher
Затем идет на страницу с руссификацией и устанавливаем нужную
Далее в фоксе в меню Tools -> Languages переключаем на «Russian». В

понедельник, 14 июня 2010 г.

nfs через iptable

буду лаконичен: нужно настроить nfs на фиксированные порты, в случаеу centos
правим /etc/sysconfig/nfs
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
далее сам фаервол
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 32769 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT

понедельник, 17 мая 2010 г.

Мапинг портов в Windows

netsh routing ip nat install
netsh routing ip nat add interface "external" full
netsh routing ip nat add portmapping "external" tcp 0.0.0.0 8080 192.168.1.1 80

пятница, 14 мая 2010 г.

использование Posix Threads в Windows

Имеем Windows XP SP3. Но не суть, не вижу причин не запустить птриды и в Win7 и Win2000. Есть Visual Studio. Подключаются Posix Threads очень легко. Можно как и руками, а можно в GUI самой студии. Ниже краткая инструкция по употреблению.
Качаем сами птриды. тут

В моем случае птриды стоят тут "d:\Develop\libs\pthreads\"

Далее от сюда "d:\Develop\libs\pthreads\Pre-built.2\lib\" берем
"pthreadVSE2.dll" и копируем либо в сам проект, к exe'шникам. Либо, например, в windows\system32. Или добавить папку с dll'ками в path, но это не гибко.
Обратите внимание, dll'ки там разные. Под вин+студия нужна "pthreadVSE2.dll", что ясно из названия файликов :)

Далее открываем студию и создаем новый проект (или открываем готовый). Начнем с инклюда в код.

тут масса вариантов. Скопировтаь h файлы в свой проект или добавить папку с ними в path.
Мы делаем средствами самой студии. Идем в свойства проекта далее
-> Configuration Properties
-> C/C++
-> General
-> Добавляем путь "D:\Develop\libs\pthreads\Pre-built.2\include" в Additional Include Directories

Затем топаем в свойства линкера этого проекта.
-> Configuration Properties
-> Linker
-> General
-> Добавляем путь "D:\Develop\libs\pthreads\Pre-built.2\lib" в Additional Library Directories
Это мы сделали для того, чтобы компилятор знал где искать lib файл.
Сам файл можно добавить в исходники, например так:

А можно там же - в свойствах проекта.
-> Configuration Properties
-> Linker
-> General
-> Input
-> Additional Dependencies
-> Добавляем файл "pthreadVSE2.lib"
Имя файла, опять же, говорит само за себя.
Ну а ниже - краткий пример рабочего кода.

среда, 12 мая 2010 г.

в 5ом CentOS'е есть баг

Basically you can just copy the example files from /usr/share/doc/bind-9.x.x/sample/etc/ and /usr/share/doc/bind-9.x.x/sample/var/ to start your own configuration from.

простой NAT в Windows XP

Задача поднять NAT в Windows XP. Стандартная утилита не подходит в виду своей ущербности.

просомтр текущей конфигурации
netsh routing ip nat dump
настраиваем NAT
netsh routing ip nat install
смотрим что получилось
netsh routing ip nat show global
netsh routing ip nat add interface "ISP" full
netsh routing ip nat add interface "Local Area Connection" private
если нужен DNS форвардинг
netsh routing ip dnsproxy install
netsh routing ip dnsproxy set interface name="ISP" mode=enable
смотрим результат
netsh routing ip nat dump
удалить все
netsh routing ip nat uninstall

Попутно, если NAT'ить нужно много устройств. Например Wi-Fi, BT, LAN делаем Bridge (мост) и натим на него.

Затем разрешаем форвард пакетиков My Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter
меняем с 0 на 1

Далее ОТКЛЮЧАЕМ службу "Windows Firewall/Internet Connection Sharing (ICS)"
И включаем "Routing and Remote Access"
sc config RemoteAccess start= auto
net start RemoteAccess

понедельник, 15 марта 2010 г.

Наблюдение за трафиком на удаленном хосте через GUI-интерфейс Wireshark

Наблюдение за трафиком на удаленном хосте через GUI-интерфейс Wireshark

Для наблюдения за трафиком, проходящим через сетевой интерфейс удаленной машины
192.168.1.2 в bash можно воспользоваться следующей конструкцией:

wireshark -k -i <(ssh -l root 192.168.1.2 tshark -w - not tcp port 22)

Конструкция "not tcp port 22" необходима для запрещения перехвата трафика
передаваемого в wireshark по ssh.

В других shell:

mkfifo /tmp/pipe
ssh user@192.168.1.2 "tshark -w - not port 22" > /tmp/pipe
wireshark -k -i /tmp/pipe

Если перехват в реальном времени не требуется, можно записать на удаленной машине дамп в файл:

tshark -w capture.cap

а потом на локальном машине выполнить операцию анализа:

wireshark -k -i capture.cap
взято тут

пятница, 15 января 2010 г.

Флажки национальный раскладок языка в трее гнома

cd ~/.icons
mkdir flags
cd flags
wget http://sowcom.de/ubuntu/keyb/fl0/{ru,us}.png
gconftool-2 -s -t bool /desktop/gnome/peripherals/keyboard/indicator/showFlags true,

четверг, 12 ноября 2009 г.

Раздаем права на запуск/остановку сервисов под Windows

записываю для себя, в хозяйстве очень нужно.

Взято с хабра

Раздаем права на запуск/остановку сервисов под Windows
Буквально сегодня понадобилось дать человеку возможность перезапускать тестовый вебсервер под виндой.
Права админа давать естественно давать не хочется.
«Мощный» юзер не подходит.

букв много

и тут на помощь приходит technet, который расcказывает про sc.

В данном случае нас интересуют 2 команды:
sc sdshow — показывает права
sc sdset — устанавливает права

Для начала узнаем, какие права у нашего сервиса уже есть:
C:\Users\administrator>sc sdshow service_name

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCR
RC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)


Без изысков.

Как видно, есть 2 интересных префикса:
S: — System Access Control List (SACL) — это нас сейчас не интересует.
D: — Discretionary ACL (DACL) — здесь указываются права для всех и всего.

Смотрим далее.
Первая буква после скобок означает разрешаем (A, Allow) или запрещаем (D, Deny).

Мы разрешаем:
(A;;;;;)

И потом видим комбинации из двух букв:
CC - SERVICE_QUERY_CONFIG
LC - SERVICE_QUERY_STATUS
SW - SERVICE_ENUMERATE_DEPENDENTS
LO - SERVICE_INTERROGATE
CR - SERVICE_USER_DEFINED_CONTROL
RC - READ_CONTROL
RP - SERVICE_START
WP - SERVICE_STOP
DT - SERVICE_PAUSE_CONTINUE

По сути, нас будут интересовать последние три опции:
(A;;RPWPDT;;;)

Последние 2 буквы обозначают кому мы разрешаем или запрещаем:
AU Authenticated Users
AO Account operators
RU Alias to allow previous Windows 2000
AN Anonymous logon
AU Authenticated users
BA Built-in administrators
BG Built-in guests
BO Backup operators
BU Built-in users
CA Certificate server administrators
CG Creator group
CO Creator owner
DA Domain administrators
DC Domain computers
DD Domain controllers
DG Domain guests
DU Domain users
EA Enterprise administrators
ED Enterprise domain controllers
WD Everyone
PA Group Policy administrators
IU Interactively logged-on user
LA Local administrator
LG Local guest
LS Local service account
SY Local system
NU Network logon user
NO Network configuration operators
NS Network service account
PO Printer operators
PS Personal self
PU Power users
RS RAS servers group
RD Terminal server users
RE Replicator
RC Restricted code
SA Schema administrators
SO Server operators
SU Service logon user

+ к этому списку можно явно указать пользователя по SID'у.

Вот это самое интересное!
как узнать SID пользователя?
есть не один способ :)

но, самый простой и удобный (на мой взгляд), написать маленький скриптик на vb:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set objAccount = objWMIService.Get _
("Win32_UserAccount.Name='username',Domain='domain'")
Wscript.Echo objAccount.SID

Заменяем имя пользователя и домен по своему вкусу, сохраняем файл с расширением .vbs и запускаем.
Появляется алерт с SID.

Копируем в блокнот(или в любое другое место)
Можно скрипт запустить в консоли, сэкономим время :)

И так. Узнали SID.
Вставляем в ключ:
(A;;RPWPDT;;;S-1-5-21-3992622163-2725220152-438995547-4172)

Теперь подготавливаем команду целиком:
sc sdset D:(A;;RPWPDT;;;S-1-5-21-3992622163-2725220152-438995547-4172)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCR
RC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Наш ключ вставляем в любое место, но важно чтобы он был перед префиксом S.
Важно не ошибиться, иначе можем потерять доступ к сервису :)
Запускаем.

проверяем:
sc \\server stop «service_name»

Надеюсь, основную мысль донес.
Так же жду критики, тк подозреваю что могут быть способы проще.

UPD можно, кстате, использовать группы.
для того чтобы узнать SID группы — вместо username, напишите имя группы.

суббота, 10 октября 2009 г.

Показывать всех пользователей в "Пользователи и группы"

Долгое время был уверен, что отсутсвие части пользователей в Администрирование->"Пользователи и группы" является фирменным багом убунты. Оказывается я был не прав. Лечится очень легко.
Идем в gconf-editor
ищем ветку /apps/gnome-system-tools/users
ставим отметку у "showall"