debian 9 repository list /etc/apt/sources.list

deb http://deb.debian.org/debian/ stretch main contrib non-free
#deb-src http://deb.debian.org/debian/ stretch main contrib non-free

deb http://deb.debian.org/debian/ stretch-updates main contrib non-free
#deb-src http://deb.debian.org/debian/ stretch-updates main contrib non-free

deb http://security.debian.org/debian-security/ stretch/updates main contrib non-free
#deb-src http://security.debian.org/debian-security/ stretch/updates main contrib non-free

# debian backports for lasted backported software only
#deb http://deb.debian.org/debian stretch-backports main contrib non-free
#deb-src http://deb.debian.org/debian stretch-backports main contrib non-free

dante socks proxy с авторизацией из файла паролей

Debian 9 : Dante socks proxy v1.4.1 с авторизацией через pam из файла паролей (а не из системных пользователей)
Также можно использовать Ubuntu 16.04, но там старый danted версии 1.2 и надо поставить свежий, например из ppa http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/
Следовательно, просто меняя socksmethod мы меняем авторизацию с системных юзеров (/etc/passwd) на pam файл паролей
libpam-pwdfile https://github.com/tiwe-de/libpam-pwdfile имеет некоторые ограничения, а именно, пароли необходимо шифровать используя md5crypt и длинна ограничена в 8 символов, больше обрезается (наподобие как в vnc)
Если известны более современные способы, то welcome в комментарии к посту

# apt install dante-server libpam-pwdfile apache2-utils

# mv /etc/danted.conf /etc/danted.conf.orig
 

# vi /etc/danted.conf

#logoutput: stderr

logoutput: syslog
internal: eth0 port = 1080
external: eth0

#socksmethod: username
socksmethod: pam.username
user.privileged: root
user.unprivileged: nobody


client block {
        from:  0/0 to: lo
        log: error
}


client pass {
        from: 0/0 to: 0/0
        log: error connect
}

socks pass {
        from: 0/0 to: 0/0
        log: error connect
}


# vi /etc/pam.d/sockd
auth required pam_pwdfile.so pwdfile /etc/danted.passwd
account required pam_permit.so


# htpasswd -b -d -c /etc/danted.passwd username pass

# danted


и если все работает успешно, то в автозапуск и запускаем сервис
 

# systemctl enable danted && systemctl start danted

Запретить локальному пользователю перезагружать систему

В системах которые используют systemd локальный пользователь может перезагружать систему без авторизации командой reboot (он же alias для /bin/systemctl, он же systemctl reboot)
Что может привести к незапланированной перезагрузке, например, если ошибиться окном терминала
Чтобы это отключить в Ubuntu 16.04 создайте файл конфигурации

/etc/polkit-1/localauthority/50-local.d/99-disallow-shutdown.pkl

и в нем пропишите следующее:

[Disallow shutdown]
Identity=unix-group:*
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions
ResultAny=auth_admin_keep
ResultInactive=auth_admin_keep
ResultActive=auth_admin_keep



Полезные ссылки:
https://wiki.archlinux.org/index.php/Polkit_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
http://rus-linux.net/MyLDP/sec/PolicyKit_pr1.html

Отключить push уведомления в firefox глобально для всех сайтов

Каждый раз когда мы заходим в firefox на какой-либо сайт, в нем всплывает push уведомление с предложением подписаться на новости сайта и приходится его закрывать
Как же это отключить глобально? Очень просто

about:config => dom.push.enabled, dom.webnotifications.enabled => false

И больше уведомления беспокоить не будут.

В Chrome данные настройки делаются через интерфейс

chrome://settings/content

В появившемся окне находим блок «Оповещения» и устанавливаем переключатель в положение «Не показывать оповещения на сайтах»

centos 7 : roundcube выдает ошибку Server Error (OK) при открытии папки

В лог при этом пишется Notice: No suitable function found for UTF-8 encoding in /var/www/kdn570/html/program/lib/Roundcube/rcube_charset.php on line 276

Решение править скрипт https://www.roundcubeforum.net/index.php?topic=23440.0 у меня не заработало

Помогло обновление с 1.1.10 (штатно в репозитории CentOS 7) до 1.3.3

bitrix выдает ошибку ERR_CONTENT_DECODING_FAILED

bitrix при открытии сайта выдает в браузере ошибку (а скажем через wget нормально открывается)

ERR_CONTENT_DECODING_FAILED
Ошибка в типе содержимого. Страница, которую вы пытаетесь просмотреть, не может быть показана, так как она использует неверную или не поддерживаемую форму компрессии

Лечение: прописать

define('BX_COMPRESSION_DISABLED',true);

в bitrix/php_interface/init.php (dbconf.php если старый и нет такого файла)

Поставить свежее ядро в Debian 8

Самый простой способ установить ядро в Debian 8 из Debian 9 - это использовать debian-backports

echo 'deb http://deb.debian.org/debian jessie-backports main contrib non-free' >> /etc/apt/sources.list
apt-get update
apt-get -t jessie-backports install linux-image-amd64


Получим более-менее свежее ядро 4.9, которое, в отличие от 3.16, работает, скажем с LSI MegaRAID 9361-4i (с новой прошивкой этот контроллер переименовался в AVAGO MegaRAID) 

Посчитать объем баз данных MySQL

Посчитать объем баз

 

SELECT table_schema "Data Base Name",

sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB",
sum( data_free )/ 1024 / 1024 "Free Space in MB"
FROM information_schema.TABLES
GROUP BY table_schema;

 

Размеры всех таблиц в БД

SELECT
table_schema as `Database`,
table_name AS `Table`,
round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
ORDER BY (data_length + index_length) DESC;


Студент 20 с небольшим лет попал под автобус, и — насмерть. Очнулся на том свете. В кресле напротив увидел кого-то, похожего на человека, но светящегося изнутри инфракрасным светом. -Где я? — Ты в аду, сынок. Но не бойся заранее, здесь на самом деле намного лучше, чем описывают там, на земле. Вот ты в жизни курил? Студент опускает глаза: — Да, курил. — Ну значит, по понедельникам для тебя будет праздник. Это у нас день курения. Выбор — огромный, от трубки и махорки до дорогих сигар и кальяна. Курим весь понедельник, до поздней ночи. И пофигу астма и рак — ты ведь уже умер! А выпить ты любил? Студент опускает голову: — Не без этого... — У-у! Тогда готовься к праздникам по вторникам! Этот день мы пьем весь, с самого утра, от пива и легких вин до самых крепких напитков: самогона и спирта. И плевать на печень: ты ведь уже умер! А как насчет наркотиков? Студент краснеет: — Да, бывало! — Что ж, повеселишься по средам! У нас это день наркотиков, от самых легких, до героина и тяжелой синтетики. Хочешь — колись, хочешь — кури, и не бойся ни ломки, ни передоза, ни ментов — ты ведь уже умер! А с женщинами? Студент оживляется: — А как же! — Тогда оторвешься по четвергам! Это у нас день повального ceкcа. Дело в том, что женщин в аду в 10 раз больше, чем мужчин, и у тебя будет супервыбор! А о сифилисе там всяком даже не вспоминай — ты ведь уже умер! А не был ли ты голубым? Студент вскидывается: -Нет, что вы! — М-да-ссс... Вот пятницы тогда станут для тебя настоящим адом! anekdotov.net

Оптимизация картинок по cron через jpegoptim и optipng

## Optimization jpg
15 22 * * *     /usr/bin/find /var/www/*/data/www/ -type f -iregex '.*\.jpe?g' -mtime -1 -exec /usr/bin/jpegoptim --preserve --quiet {} \;
 

## Optimization png
15 23 * * *     /usr/bin/find /var/www/*/data/www/ -type f -iregex '.*\.png' -mtime -1 -exec /usr/bin/optipng --preserve --quiet {} \;

bitrix ошибка : Mysql query error: Unknown or incorrect time zone: 'Europe/Moscow' (400)

bitrix выдает ошибку при открытии сайта на CentOS 7
Mysql query error: Unknown or incorrect time zone: 'Europe/Moscow' (400)

Лечение - создать базу timezone в mysql сервере:
# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql