aleksandr ● ru - блог http://aleksandr.ru/blog/ Последние 10 постов блога Fri, 01 Dec 2017 11:50:51 +0000 ru-ru Triage CMS.7 Добавление SubjectSignTool в КриптоПро через командную строку http://aleksandr.ru/blog/dobavlenie_subjectsigntool_v_kriptopro_cherez_komandnuyu_stroku/ http://aleksandr.ru/blog/dobavlenie_subjectsigntool_v_kriptopro_cherez_komandnuyu_stroku/#comments Fri, 01 Dec 2017 11:50:51 +0000 http://aleksandr.ru/blog/dobavlenie_subjectsigntool_v_kriptopro_cherez_komandnuyu_stroku/ КриптоПро

В продолжении темы про выпуск сертификатов в Крипто-ПРО расскажу про добавление SubjectSignTool к запросу на сертификат (CSR) через командную строку.

Мануал к cryptocp говорит нам использовать -ext /path/to/ext/file, но вот про то, как создать файл с расширениями, естественно, умалчивает.

Читать дальше

]]>
Избавляемся от .DS_Store и других .файлов на маке http://aleksandr.ru/blog/izbavlyaemsya_ot__ds_store_i_drugih__faylov_na_make/ http://aleksandr.ru/blog/izbavlyaemsya_ot__ds_store_i_drugih__faylov_na_make/#comments Mon, 20 Nov 2017 11:30:15 +0000 http://aleksandr.ru/blog/izbavlyaemsya_ot__ds_store_i_drugih__faylov_na_make/ Для того, чтоб мусорные файлы мака (мета-данные) не появлялись на флешке и не мешали, например, воспроизведению музыки в машине, нужно предпринять ряд действий. Это непривычно для линуксоида и для windows-юзера.

Очень полезное описание нашлось на просторах интернета:

Запретить MDS индексировтаь том:

sudo touch /Volumes/<your volume name here>/.metadata_never_index

Запретить индексирование тома и поиск Spotlight:

sudo mdutil -i off -d /Volumes/<your volume name here>

Отличить создание '.ds_store' на USB устройствах:

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

Отключить создание '.ds_store' на сетевых дисках:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

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

find /Volumes/<your volume name here> \( -name ._* -or -name .DS_Store -or -name .T* -or -name Thumbs.db -or -type d -name .\* ! -name . \) -exec rm -rf {} \;

Ну а для ленивых есть специальное ПО BlueHarvest, которое делает всю работу за вас, но хочет за это денег.

Читать дальше

]]>
Тай чили вок в домашних условиях http://aleksandr.ru/blog/tay_chili_vok_v_domashnih_usloviyah/ http://aleksandr.ru/blog/tay_chili_vok_v_domashnih_usloviyah/#comments Mon, 16 Oct 2017 23:35:13 +0000 http://aleksandr.ru/blog/tay_chili_vok_v_domashnih_usloviyah/ Очередной вечер в холостяцком стиле дома послужил причиной кухонного креатива, который оказался на удивление удачен, а также позабавил моих друзей.


Итак рецепт как приготовить тай чили вок в домашних условиях.

Читать дальше

]]>
Node.js + oracledb на Ubuntu http://aleksandr.ru/blog/node_js___oracledb_na_ubuntu/ http://aleksandr.ru/blog/node_js___oracledb_na_ubuntu/#comments Fri, 13 Oct 2017 17:20:43 +0000 http://aleksandr.ru/blog/node_js___oracledb_na_ubuntu/ Начнем с того, что у нас есть уже установленный Oracle Instant Client и SDK на Ubuntu, процесс его установки описывать не буду тк все это давно описано. Итак, мы хотим подружить наш новомодный Node.js с ораклом. Для этого нам потребуется фирменный node-oracledb - a Node.js driver for Oracle Database.

Скорее всего команда

npm install oracledb

закончится ошибкой, потому, что как обычно это бывает с ораклом, не хватает переменных окружения. В моем случае Oracle Instant Client установлен в /opt/Oracle/instantclient_11_2, поэтому все буду описывать относительного этого пути. SDK расположен в /opt/Oracle/instantclient_11_2/sdk.

Идем в /etc/profile.d/oracle.sh, который вы создали при установке клиента, и добавляем в него OCI_LIB_DIR и OCI_INC_DIR, таки образом, чтоб получилось что-то вроде моего:

export PATH=/opt/Oracle/instantclient_11_2:$PATH
export LD_LIBRARY_PATH=/opt/Oracle/instantclient_11_2:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.UTF8
export ORACLE_HOME=/opt/Oracle/instantclient_11_2
export TNS_ADMIN=/opt/Oracle
export SQLPATH=/opt/Oracle/instantclient_11_2
export OCI_LIB_DIR=$ORACLE_HOME
export OCI_INC_DIR=$ORACLE_HOME/sdk/include

Так же можно прописать нужные переменные в /root/.bashrc для того, чтоб они были доступны под суперпользователем.

Читать дальше

]]>
Veto files в Samba http://aleksandr.ru/blog/veto_files_v_samba/ http://aleksandr.ru/blog/veto_files_v_samba/#comments Tue, 12 Sep 2017 00:08:54 +0000 http://aleksandr.ru/blog/veto_files_v_samba/ или как не дать маку и другим клиентам писать назойливые .DS_Store и Thumbs.db на файловый сервер.

Решается все достаточно просто - для этого существует директива veto files в конфиге самбы, она может быть установлена глобально или отдельно на каждую шару, вот пример из моего конфига:

veto files = /._*/.DS_Store/.T*/Thumbs.db
delete veto files = yes

И после рестарта самбы рекомендуется зачистить сервер от такого рода файлов командой

find /path/to/samba/shares \( -name ._* -or -name .DS_Store -or -name .T* -or -name Thumbs.db \) -delete

После этого проблема закрыта.

Справочный материал:

PS Так же на стороне мака можно запретить создание подобного рода файлов на сетевых носителях и прочих примонтированных устройствах командой

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Но по отзывам это применимо не ко всем Mac OS, из быстро-гуглинга так и не понял у кого работает, а у кого нет, но официальный саппорт apple рекомендует именно такой способ.

Читать дальше

]]>
Бабблс-бургерс http://aleksandr.ru/blog/babbls_burgers/ http://aleksandr.ru/blog/babbls_burgers/#comments Mon, 07 Aug 2017 13:03:29 +0000 http://aleksandr.ru/blog/babbls_burgers/ Готовим специальные котлеты на углях


Этот рецепт я придумал буквально за пару минут в машине по дороге домой, но можно сказать, что это новое слово в бургерах и практически революционный подход! В основе этих бургеров лежит специальная котлета с дыркой посередине, как у бублика.

Берем обычную бургерную котлету мираторг или сами делаем котлету размером немного больше чем булочка для бургера, так что бы после жарки она получилась размером ровно как булочка. В центре котлеты делаем сквозную дырку, например, стопкой для крепкого. Полученное изделие солим, перчим по вкусу и обжариваем на углях до готовности.

Готовим салат. Мелко нарезаем огурцы и помидоры, перемешиваем с майонезом (или другим белым соусом, например, можно использовать чесночный). Так же можно использовать приправу для тако.

Берем половинку бургерной булочки (которую можно предварительно разогреть), смазываем соусом барбекю. На нее кладем лист салата. Сверху кладем лук по вкусу (это сделает бургер более сочным, ну или вместо него можно положить кусочек плавленного сыра и получится чизбургер), а на него котлету с дыркой. В дырку кладем примерно столовую ложку салата. Сверху ничем не накрываем.

Блюдо готово к употреблению, можно подавать на стол.

Готовое блюдо

Читать дальше

]]>
Cretan Village или как я побывал в Греции http://aleksandr.ru/blog/cretan_village_ili_kak_ya_pobival_v_grecii/ http://aleksandr.ru/blog/cretan_village_ili_kak_ya_pobival_v_grecii/#comments Sun, 30 Jul 2017 22:28:37 +0000 http://aleksandr.ru/blog/cretan_village_ili_kak_ya_pobival_v_grecii/ Вот такой вид открывается лежа на кровати в отеле)

Этим летом удалось осуществить давнюю хотелку - побывать в Греции. Поездка получилась неоднозначной. В принципе, было ожидаемо, что там не будет торчать из под каждого куста той самой греческой мифологии, которую мы читали в учебниках истории, но почему-то её регулярно недоставало. При этом остров Крит оказался полон совсем другого очарования, уюта маленьких городков и таверн.

Но сначала о первом впечатлении. Греция встретила нас красивейшей посадкой на заходе солнца в маленьком аэропорту города Ираклиона, который расположен прямо на берегу моря. Через примерно полтора-два часа пути на автобусе, объехав множество отелей и когда уже капитально стемнело, мы таки добрались до своего.

Читать дальше

]]>
Авторизация, аутентификация и идентификация http://aleksandr.ru/blog/avtorizaciya__autentifikaciya_i_identifikaciya/ http://aleksandr.ru/blog/avtorizaciya__autentifikaciya_i_identifikaciya/#comments Thu, 06 Jul 2017 13:10:28 +0000 http://aleksandr.ru/blog/avtorizaciya__autentifikaciya_i_identifikaciya/ Авторизация будущего

Такие, казалось бы, схожие и одновременно разные понятия, которые часто путают. Чтоб не путаться самому, решил записать.

Идентификация

Идентификация (от латинского identifico — отождествлять): присвоение субъектам и объектам идентификатора и / или сравнение идентификатора с перечнем присвоенных идентификаторов. Например, представление человека по имени отчеству - это идентификация.

Аутентификация

Аутентификация (от греческого: αυθεντικός ; реальный или подлинный): подтверждение подлинности чего-либо или кого либо. Например, предъявление паспорта - это подтверждение подлинности заявленного имени отчества.

Авторизация

Авторизация является функцией определения прав доступа к ресурсам и управления этим доступом. Авторизация — это не то же самое что идентификация и аутентификация: идентификация — это называние лицом себя системе; аутентификация — это установление соответствия лица названному им идентификатору; а авторизация — предоставление этому лицу возможностей в соответствие с положенными ему правами или проверка наличия прав при попытке выполнить какое-либо действие. Например, авторизацией являются лицензии на осуществление определенной деятельности.

Читать дальше

]]>
Декодируем \x## последовательности в строке http://aleksandr.ru/blog/dekodiruem__x___posledovatelnosti_v_stroke/ http://aleksandr.ru/blog/dekodiruem__x___posledovatelnosti_v_stroke/#comments Fri, 30 Jun 2017 17:49:00 +0000 http://aleksandr.ru/blog/dekodiruem__x___posledovatelnosti_v_stroke/ Получая данные из unix консоли, в результате exec() и других вызовов, не латинские символы обычно экранируются с помощью \x##, где ## - это шестнадцатеричный код символа, но совсем не UTF8.

Например при получении текста сертификата средствами OpenSSL вместо русских будет что-то вроде этого:

C=RU, L=\xD0\x9C\xD0\xBE\xD1\x81\xD0\xBA\xD0\xB2\xD0\xB0,

Для того чтоб перевести это к читаемому виду в в консоли надо сделать:

<ваша команда> | sed 's@+@ @g;s@%@\\x@g' | xargs -0 printf '%b'

А для PHP вот такой код (на всякий случай, перед x стоит 4 обратных слеша):

preg_replace_callback('/\\\\x([0-9A-F]{2})/', function($a){ return pack('H*', $a[1]); }, $your_string);

В результате получаем русский текст:

C=RU, L=Москва,

Читать дальше

]]>
Добавление SubjectSignTool в КриптоПро ЭЦП Browser plug-in http://aleksandr.ru/blog/dobavlenie_subjectsigntool_v_kriptopro_ecp_browser_plug_in/ http://aleksandr.ru/blog/dobavlenie_subjectsigntool_v_kriptopro_ecp_browser_plug_in/#comments Fri, 23 Jun 2017 12:01:16 +0000 http://aleksandr.ru/blog/dobavlenie_subjectsigntool_v_kriptopro_ecp_browser_plug_in/ КриптоПро


Пишу, как говорится, о наболевшем, я от всей души ненавижу создателей браузерного плагина crypto-pro, но об этом в PS, а теперь к делу. В процессе формирования запроса на сертификат (CSR) силами cadesplugin нам нужно добавить в него расширение SubjectSignTool (OID.1.2.643.100.111) со значением в виде строки (UTF8String).

На первый взгляд все кажется не сложно: создать объект X509Enrollment.CObjectId и инициализировать его значением, создать объект X509Enrollment.CX509Extension и инициализировать его созданным OID и нужной строкой с правильным EncodingType. Сделать это правда придется два раза, для синхронного и асинхронного режима, но об этом тоже в PS. На практике все не так просто, и приходится погружаться в низкоуровневое кодирование ASN.1.

Читать дальше

]]>