Инфраструктура открытых ключей в Windows Server 2016. Часть 2. RootCA Степан Москалев, Леонид Шапиро CertUtil [Options] -setreg [{ca|restore|policy|exit|template|enroll|chain| PolicyServers}[ProgId]] RegistryValueName Value+ [] certutil -setreg CA\CRLPublicationURLs "1:C:\Windows system32\CertSrv\CertEnroll\%3%8.crl\ n2:http://pki.nwtraders.msft/PKI/%3%8.crl\ n10:ldap:///CN=%7%8,CN=%2,CN=CDP,CN=Public Key Services,CN=Services,%6%10" certutil -setreg CA\CACertPublicationURLs "1:C:\Windows\system32\CertSrv\CertEnroll\%3%4.crt\ n2:http://pki.nwtraders.msft/PKI//%3%4.crt\ n2:ldap:///CN=%7,CN=AIA,CN=Public Key Services, CN=Services,%6%11" certutil -setreg CA\ValidityPeriodUnits 20 certutil -setreg CA\ValidityPeriod "Years" certutil -setreg CA\CRLPeriodUnits 26 certutil -setreg CA\CRLPeriod "Weeks" certutil -setreg CA\CRLOverlapUnits 2 certutil -setreg CA\CRLOverlapPeriod "Weeks" certutil -setreg CA\CRLDeltaPeriodUnits 0 certutil -setreg CA\CRLDeltaPeriod "Hours" certutil -setreg CA\AuditFilter 127 certutil -setreg ca\DSConfigDN "CN=Configuration, DC=nwtraders,DC= msft" ----------------------------------------------------------------------------------------- Разработка кросcплатформенной утилиты поиска файлов по имени с применением языка D Геннадий Мохов r:\Каталог\Каталог_1 r:\Каталог\Каталог_2 r:\Каталог ##### 0|Файл_1.txt|3452 0|Файл_2.txt|345 1|Файл_10.txt|8675 1|Файл_11.txt|267865 2|Файл_1.txt|556778 3|Файл_2.txt|7654 Windows: ffc ИндексныйФайл.txt C:\Windows D:\ E:\ Linux: ffc ИндексныйФайл.txt / Mac OS X: ffc ИндексныйФайл.txt /Users string[] dirs; // Список точек входа для индексации. Дин.Массив string nameFileIndex; // Имя файла индекса. Строка. // При старте приложения args Дин.Массив строк int main(string[] args) { // Перебор всех элементов в массиве foreach (i, arg; args) { switch(i) { case 0: break; // Имя программы // Имя файла индекса case 1: nameFileIndex = arg; break; // Дин.Массив dirs из папок для индексирования default: dirs ~= arg; break; } } // Проверка имени индекса if(nameFileIndex.length == 0) { writeln("Error: Not name file index"); return 1; } // Проверка точек входа if(dirs.length == 0) { writeln("Error: Not dir for index"); help(); return 2; } ... ПеребратьВсеПапкиИзВходногоМассива(Папка; dirs) { ПеребратьВсеФайлы(ЕдиничныйФайл; Папка) { // Разделим полное имя на путь и собственно имя, используя стандартные функции пакета std.path ИмяФайла = baseName(ЕдиничныйФайл); ПутьФайла = dirName(ЕдиничныйФайл); // Переведем полученные имена в CP1251 ИмяФайла = fromUtf8to1251(ИмяФайла); ПутьФайла = fromUtf8to1251(ПутьФайла); // Найдем номер (или добавим, если его нет) пути в массиве путей НомерПути = ПолучитьНомерПутиИзМассиваПуте(ПутьФайла); // Добавим имя файла в массив файлов СтрокаИмени = НомерПути + "|" + ИмяФайла + "|" + РазмерФайла(ИмяФайла); // Непосредственное добавление в массив СтрокаИмени ~= МассивИменФайлов; } } size_t[1000] vec; // вектор кэша на строки до 1000 символов // Вектор кэша на строки длины до 1000 символов Size_t[1000] vec; // Строка хранит предыдущий запрос на поиск ПредыдущаяСтрока; // Позиция предыдущего запрос на поиск в массиве ПредыдущаяПозиция; // Массив путей в котором и будем искать наши строки String[] mPath; ПолучитьНомерПутиИзМассиваПутей(ПутьФайла) { Bool найденоЧтоЛибо = false; // Результат, позиция найденная или добавленная size_t rez; If(ПутьФайла == ПредыдущаяСтрока) return ПредыдущаяПозиция; If(vec[ПутьФайла.Длина] > 0) { For(ПозицияВмассиве = vec[ПутьФайла.длина]; ПозицияВмассиве != 0; ПозицияВмассиве--) { If(mPath[ПозицияВмассиве] == ПутьФайла) { rez = mPath[ПозицияВмассиве]; найденоЧтоЛибо = true; ПредыдущаяСтрока = ПутьФайла; ПредыдущаяПозиция = rez; break; } } } // Ни чего не найдено в массиве If(!найденоЧтоЛибо) { mPath ~= ПутьФайла; // Добавим путь в массив rez = mPath.длина-1; ПредыдущаяСтрока = ПутьФайла; ПредыдущаяПозиция = rez; } Return rez; } ----------------------------------------------------------------------------------------- Программный комплекс автоматической установки связи с системой распределенных вычислений Павел Поваляев # sudo add-apt-repository ppa:ondrej/php -y # sudo apt-get update # sudo apt-get install -y git apache2 python-pip m4 pkg-config autoconf automake perl libtool build-essential libssl-dev mysql-server libmysqlclient-dev libmysqld-dev curl libcurl4-openssl-dev software-properties-common python-software-properties php5.6 php5.6-mysql libapache2-mod-php5.6 php5.6-mbstring php5.6-simplexml # git clone https://github.com/BOINC/BOINC.git BOINC-server # cd BOINC-server #./_autosetup 1>../server-autosetup.log 2>../server-autosetup-error.log #./configure --disable-manager --disable-client 1>../server-config.log 2>../server-config-error.log # make 1>../server-make.log 2>../server-make-error.log # ./tools/make_project —db_passwd='123123' --db_user='root' --delete_prev_inst --drop_db_first ↵ --url_base="http://unixubuntu.my-BOINC-test-project.com" testappw # chmod –R 755 html/* Order deny, allow Deny from all Require all denied Order allow, deny Allow from all Require all granted # root@BOINCserver:/home/BOINCadm/projects/meapp> # cat meapp.httpd.conf >> /etc/apache2/httpd.conf # root@BOINCserver:/home/BOINCadm/projects/meapp> # /etc/init.d/apache2 restart # sudo htpasswd -c html/ops/.htpasswd admin read -p "url to server: http://" -e BOINC_URL BOINC_URL="http://$BOINC_URL" read -p "project_name: " -e BOINC_NAME read -p "password for admin web-page: " -e ADMIN_PASSW echo "url: $BOINC_URL" echo "project_name: $BOINC_NAME" # dpkg -s lsb-release >/dev/null 2>/dev/null || sudo apt-get -y install lsb-release # LINUX_DIST=$(lsb_release -a 2>/dev/null | grep "Distributor ID:") # python -c "exec(\"f=open(''${BOINC_NAME}'.httpd.conf', 'r') \\nf2 = open('BOINC.httpd.conf', 'w') \\nfor line in f: f2.write(line .replace('Order deny,allow', '') .replace('Order allow,deny', '') .replace('Allow from all', 'Require all granted') .replace('Deny from all', 'Require all denied'))\")" # sudo sh -c "cp BOINC.httpd.conf /etc/apache2/ BOINC.httpd.conf" # sudo sh -c "echo 'Include BOINC.httpd.conf' >> /etc/apache2/apache2.conf" -----------------------------------------------------------------------------------------