Позднее Ctrl + ↑

переносим базу SpamAssassin bayes в MySQL

для начала проверим версию SpamAssassin

$ sudo spamassassin -V
SpamAssassin version 3.4.6
  running on Perl version 5.32.1

в нашем случае это 3.4.6

теперь качаем нужный файл со структурой mysql

$ cd ~
$ wget http://svn.apache.org/repos/asf/spamassassin/tags/spamassassin_release_3_4_6/sql/bayes_mysql.sql

подключаемся к движку базы и загружаем структуру

$ mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE sa_bayes;
MariaDB [(none)]> USE sa_bayes;
MariaDB [(none)]> SOURCE ~/bayes_mysql.sql;

создадим пользователя sa_user с паролем Pa$$W0rd (замените на свой) и правами на нашу базу

MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON sa_bayes.* TO sa_user@localhost IDENTIFIED BY 'Pa$$W0rd';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [sa_bayes]> quit;

отредактируем конфиг /etc/mail/spamassassin/local.cf

use_bayes          1
bayes_auto_learn   1
bayes_auto_expire  1

# Store bayesian data in MySQL.
# Please make sure you have correct server address, port and database name.
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
bayes_sql_dsn      DBI:mysql:sa_bayes:127.0.0.1:3306

# Store bayesian data in PostgreSQL.
# Please make sure you have correct server address, port and database name.
#bayes_store_module Mail::SpamAssassin::BayesStore::PgSQL
#bayes_sql_dsn      DBI:Pg:database=sa_bayes;host=127.0.0.1;port=5432

# SQL username and password.
bayes_sql_username sa_user
bayes_sql_password Pa$$W0rd

# Override the username used for storing data in the database.
# This could be used to group users together to share bayesian filter data.
# You can also use this config option to trick sa-learn to learn data as a specific user.
#bayes_sql_override_username vmail
bayes_sql_override_username amavis

рестартим службу

$ sudo service amavis restart

проверяем, скармливаем тестовое сообщение

$ sa-learn --spam --username=amavis /usr/share/doc/spamassassin/examples/sample-spam.txt
Learned tokens from 1 message(s) (1 message(s) examined)

и проверим наполняемость базы

$ mysql -uroot -p
MariaDB [(none)]> USE sa_bayes;
MariaDB [sa_bayes]> SELECT username,spam_count,ham_count FROM bayes_vars;
+----------+------------+-----------+
| username | spam_count | ham_count |
+----------+------------+-----------+
| amavis   |          1 |         1 |
+----------+------------+-----------+
1 row in set (0,000 sec)
MariaDB [sa_bayes]> quit;

и не забудьте отредактировать файл резервирования /var/vmail/backup/backup_mysql.sh, чтобы добавить и нашу базу

# Databases we should backup.
# Multiple databases MUST be seperated by SPACE.
export DATABASES='mysql vmail roundcubemail amavisd iredadmin sogo iredapd sa_bayes'

PS мне скрипт резервирования не пришлось менять, там уже быза бала прописана

iRedMail и Roundcube

После установки и настройки iRedMail мы получаем удобный почтовый клиент Roundcube.

Давайте немного его улучшим для работы.

установим необходимые компоненты и обновим существующие модули

sudo apt install composer php-ldap

cd /opt/www/roundcubemail
sudo composer update

установим и включим контекстное меню

sudo composer require johndoh/contextmenu

установим и включим календарь

sudo composer require kolab/calendar

отредактируем файл с конфигурацией Roundcube /opt/www/roundcubemail/config/config.inc.php

// PLUGINS
$config['plugins'] = [
        'managesieve',
        'password',
        'zipdownload',
        'acl',
        'markasjunk',
        'contextmenu',
        'libkolab',
        'libcalendaring',
        'calendar',
];

убедитесь, что у вас в списке плагинов есть ’acl’ и ’markasjunk’, первый отвечает за расшаривание почтовых папок, второй за манипуляции со СПАМ сообщениями.

включим возможность отмечать сообщения как СПАМ

отредактируем файл с конфигурацией ’markasjunk’ /opt/www/roundcubemail/plugins/markasjunk/config.inc.php
и укажем следующие значения для параметров:

$config['markasjunk2_learning_driver'] = 'cmd_learn';
$config['markasjunk2_spam_cmd'] = '/usr/bin/sa-learn --spam --username=amavis %f';
$config['markasjunk2_ham_cmd'] = '/usr/bin/sa-learn --ham --spam --username=amavis %f';

PS не забудьте разрешить php исполнение внешних команд, для этого отредактируйте файл /etc/php/7.4/fpm/php.ini

и удалите в параметре disable_functions значение shell_exec

disable_functions = posix_uname,eval,pcntl_wexitstatus,posix_getpwuid,xmlrpc_entity_decode,pcntl_wifstopped,pcntl_wifexited,pcntl_wifsignaled,phpAds_XmlRpc,pcntl_strerror,ftp_exec,pcntl_wtermsig,mysql_pconnect,proc_nice,pcntl_sigtimedwait,posix_kill,pcntl_sigprocmask,fput,phpinfo,system,phpAds_remoteInfo,ftp_login,inject_code,posix_mkfifo,highlight_file,escapeshellcmd,show_source,pcntl_wifcontinued,fp,pcntl_alarm,pcntl_wait,ini_alter,posix_setpgid,parse_ini_file,ftp_raw,pcntl_waitpid,pcntl_getpriority,ftp_connect,pcntl_signal_dispatch,pcntl_wstopsig,ini_restore,ftp_put,passthru,proc_terminate,posix_setsid,pcntl_signal,pcntl_setpriority,phpAds_xmlrpcEncode,pcntl_exec,ftp_nb_fput,ftp_get,phpAds_xmlrpcDecode,pcntl_sigwaitinfo,pcntl_get_last_error,ftp_rawlist,pcntl_fork,posix_setuid

ну и перезапустим php

sudo service php7.4-fpm restart

Более полный список расширений вы сможете найти по ссылке: https://packagist.org/?type=roundcube-plugin

Fedora и драйверы Nvidia

Когда вы попробуете установить драйверы, скаченные с официального сервера Nvidia, вам сообщат, что инсталляция возможна только с отключенной графической оболочкой.

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

всё просто (отключаем графику)

sudo systemctl set-default multi-user.target
sudo reboot

логинимся в терминале и устанавливаем драйверы

возвращаем всё обратно

sudo systemctl set-default graphical.target
sudo reboot
Ранее Ctrl + ↓