пятница, 3 февраля 2017 г.

Permission denied в Docker-volume

При монтировании тома в Docker-контейнере столкнулся с проблемой, что в контейнере нет доступа к смонтированному каталогу.
# docker run --name=nginx -d -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/lib/docker/volumes/nginx:/var/log/nginx -p 80:80 local/c7-nginx
# docker exec -it nginx bash
# ls /var/log/nginx/access.log 
ls: cannot access /var/log/nginx/access.log: Permission denied

Проблема оказалась в контроле доступов SELinux, который не позволял для контейнеров расшаривать файлы.
Тут можно почитать об этом: https://habrahabr.ru/company/kingservers/blog/209644/

Решение, отключить SELinux:
# echo SELINUX=disabled > /etc/selinux/config
# SELINUXTYPE=targeted >> /etc/selinux/config
# setenforce 0

Либо дать соответствующие права для каталога:
# chcon -Rt svirt_sandbox_file_t /var/lib/docker/volumes/nginx/

Проверка:
# docker stop nginx ; docker start nginx
# docker exec -it nginx bash
# ls /var/log/nginx/access.log
/var/log/nginx/access.log

понедельник, 23 января 2017 г.

Удаление файла с некорректным именем

Если файл имеет название типа S�vety-i-rekom.pdf и при этом через rm его не удалить, то это можно сделать с помощью find и inode файла.
# ls -li | grep rekom
41831918 -rw-r--r--  1 username usergroup    54074 Jan 30  2016 S\356vety-i-rekom.pdf
# find . -inum 41831918 -delete

четверг, 29 декабря 2016 г.

Авторизация по ssh-ключу в Bitbucket

Задача: создать локальный репозиторий и пушить его в приватный репозиторий на Bitbucket.
В качестве примера покажу на примере конфигов для Ansible.

воскресенье, 11 декабря 2016 г.

Порядок установки цепочки сертификатов Comodo

Запишу сюда, постоянно забываю порядок.
$ cat www_example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt

воскресенье, 13 ноября 2016 г.

Ищем баги в shell-скриптах с помощью ShellCheck

Репозиторий проекта: https://github.com/koalaman/shellcheck
Там же написано как его использовать, я решил его попробовать для своего редактора Sublime Text 3.
Выглядит это примерно так:

В моем случае сделать такое можно за 1 минуту.
1. В Sublime Text устанавливаем SublimeLinter (Preferences - Package Control - Install Package - SublimeLinter)
2. Ставим shellcheck:
$ sudo apt-get install shellcheck
3. Снова в Sublime Text устанавливаем теперь уже SublimeLinter-shellcheck (Preferences - Package Control - Install Package - SublimeLinter-shellcheck)
4. Перезапускаем Sublime Text
После перезапуска все работает.

вторник, 1 ноября 2016 г.

Некорректный перезапуск httpd в logrotate

Проблема состоит в том, что с определенной периодичностью (раз в неделю) падает apache, который приходится потом поднимать вручную.

В error.log:
[Sun Oct 30 04:33:05 2016] [notice] SIGHUP received.  Attempting to restart
[Sun Oct 30 04:33:05 2016] [notice] seg fault or similar nasty error detected in the parent process

Если запустить вручную service httpd restart, то апач поднимается и нормально работает.

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

Вход в админу битрикс без пароля

В корне сайта создаем php-файл:
$ vim enter.php
<? require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php"); 
global $USER; 
$USER->Authorize(1); 
@unlink(__FILE__); 
LocalRedirect("/bitrix/admin/"); 
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?> 

Переходим в браузере по ссылке например https://site.ru/enter.php и авторизуемся в админку без пароля.
Это может пригодиться например для сброса пароля от админки, если забыл.
Также может быть полезно для техподдержки, чтобы не спрашивать у клиента доступы к админке.

via.

понедельник, 19 сентября 2016 г.

WordPress 4.6: cURL error 23: Failed writing body

После недавнего обновления WordPress до 4.6 возникли проблемы с cURL (например при обновлении плагинов, которые используют cURL):
cURL error 23: Failed writing body (373 != 449)

Судя по форуму, в 4.6 cURL поломали, а в 4.6.1 до сих пор этот фикс не выкатили.
Решение исправить строку:
if (!function_exists(‘curl_init’) || !function_exists(‘curl_exec’)) {
на
if (true || !function_exists('curl_init') || !function_exists('curl_exec')) {
в файле ./wp-includes/Requests/Transport/cURL.php

Еще один вариант решения, описанный на форуме, который я не проверял, это отключить func_overload:
mbstring.func_overload = "0"

понедельник, 12 сентября 2016 г.

Решение проблемы с редиректом страницы на порт 80

У некоторых клиентов на шареде, в котором использутся связка Nginx+Apache, может возникать проблема с редиректом (часто встречается на CMS битрикс):
$ curl -I http://site.ru/bitrix/admin
HTTP/1.1 301 Moved Permanently
Server: nginx
Location: http://site.ru:80/bitrix/admin/

Т.е. видим, что идет некорректный редирект на https://site.ru:80/bitrix/admin/
Если же напрямую со слешем отправляем запрос, то все ок:
$ curl -I http://site.ru/bitrix/admin/ --silent | head -1
HTTP/1.1 200 OK

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

Странный баг в Thunderbird+Lightning

Использую расширение Lightning в Thunderbird для календаря и уведомлений и случайно заметил баг.

Если создать новое событие в календаре, с названием "ДР":

То после нажатия на кнопку сохранения оно каким-то образом трансформируется в белеберду:

Если же написть не "ДР", а например "ДРа" или "ДД", то все отображается нормально:

Что это за баг я так и не понял, получилось воспроизвести только на "ДР", на других сочетаниях букв все в порядке.
Интересно у меня одного такой баг?

Thunderbird 45, Lightning 4.7b3