Не работает масштабирование картинок в медиатеке WordPress

В WordPress есть функция редактирования изображения. При нажатии кнопки "Масштабировать" появляется сообщение об ошибке "Не удалось создать новое изображение" и "Поворот изображения на вашем сервере не поддерживается".

Для исправления необходимо установить модуль php-gd и включить его в конфиге PHP.

Не работают постоянные ссылки WordPress

Страницы сайта на WordPress перестали открываться после изменения настроек постоянных ссылок: с "Простые" на "Название записи".

Чтобы исправить это безобразие, необходимо изменить настройки сервера Apache:

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride All
	Require all granted
</Directory>
Параметр AllowOverride должен иметь значение All.

Пользователь терминального сервера Windows Server 2019 не может изменить пароль

Некоторые пользователи терминального сервера Windows Server 2019 не могут изменить свой пароль, т.к. в настройках учетной записи не отображается кнопка "Изменить пароль".

В этом случае можно использовать альтернативный метод: кликнуть по «лупе» (значок в левом нижнем углу терминала рядом с кнопкой «Пуск») или нажать комбинацию клавиш Win-R и выполнить команду:

C:\Windows\explorer.exe shell:::{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}

Появится меню и нажать «Изменить пароль».

ContactsXML — программа для синхронизации контактов на смартфоне через XML

Скачать ContactsXML
Платформа: Android 6 и выше.
Программа ContactsXML предназначена для синхронизации контактов IP-телефонии на смартфоне через XML-файл (общий список контактов). Для IP-звонков используется программа CSIPSimple.

Установка ContactsXML:
- установить приложение через файл APK;
- добавить разрешение на "Контакты", автозапуск, контроль активности - без ограничений (для работы приложения в фоновом режиме);
- запустить приложение хотя бы один раз для работы службы по расписанию.

Настройка ContactsXML:
- указать путь (URL) к файлу XML и период обновления контактов.

Формат файла XML:

<?xml version="1.0" encoding="utf-8"?>
<YealinkIPPhoneBook>
<Title>Контакты</Title>
<Menu Name="ИмяГруппы">
<Unit Name="ИмяКонтакта" default_photo="" Phone3="" Phone2="" Phone1="10.8.0.4"/>
<Unit Name="ИмяКонтакта2" default_photo="" Phone3="" Phone2="" Phone1="10.8.0.8"/>
</Menu>
</YealinkIPPhoneBook>

Этот формат используется в IP-телефонах Yealink для удаленной книги адресов.

После запуска ContactsXML будут удалены все контакты на смартфоне и загружены новые из удаленной адресной книги XML. Тип контактов: csip.

Вопросы по разработке ContactsXML - через форму ниже.

Ошибка при запуске Anydesk: библиотека libgtkglext-x11

При запуске Anydesk появляется ошибка "anydesk: error while loading shared libraries: libgtkglext-x11-1.0.so.0: cannot open shared object file: No such file or directory".

Для исправления необходимо установить недостающую библиотеку:

sudo apt-get update
sudo apt-get install libgtkglext1

Если не устанавливается: sudo apt-get -f install

Учет рабочего времени с помощью чата MyChat и CRM-системы Creatio

Корпоративный чат MyChat имеет интересную функцию - логирование заголовков окон пользователей. Данные сохраняются в файлах CSV.

Визуализация и обработка этих данных осуществляется на платформе Creatio с помощью пакета WorkTimeMC.

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

Подсчитывается продолжительность работы сотрудника и эффективность его работы (количество заголовков окон в час) как по дням, так и по месяцам. Табличные данные отображаются на итоговом дашборде раздела "Сотрудники". Есть возможность настройки периода и фильтрации через настройки дашборда.

Путь к логам MyChat задается в системной настройке "Путь к логам MyChat" (код WorkTimePathToMCLog). Предварительно необходимо настроить доступ к логам для пользователя IIS_IUSRS.

Установка пакета осуществляется стандартным способом: "Дизайнер системы" - "Установка приложений". После установки желательно заполнить поле "Код пользователя MyChat" для каждого сотрудника.

Для просмотра детального журнала работы сотрудника с функциями поиска и сортировки можно создать новый справочник на основе объекта "Учет рабочего времени MyChat":

Вопросы по доработке пакета WorkTimeMC просьба отправлять через форму комментариев на этой странице.

Отключение опции Secure Boot в BIOS ноутбуков Acer

По умолчанию в ноутбуках Acer большинство опций BIOS недоступно для редактирования.
Чтобы исправить это, необходимо установить пароль: Security - Set Supervisor Password.

Перенос системных баз данных MS SQL Server

Перемещение базы master:
Открыть MS SQL Server Configuration Manager, зайти в свойства SQL-сервера, вкладка "Параметры запуска". Установить нужный путь к базе master.

Остановить SQL-сервер, скопировать в новое место файлы базы master (данные и лог). Проверить права доступа: должен быть полный доступ для учетки MSSQLSERVER.

Запускаем SQL-сервер и выполняем скрипт:

ALTER DATABASE model MODIFY FILE ( NAME = modeldev , FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.SKY38\MSSQL\Data\model.mdf' )
ALTER DATABASE model MODIFY FILE ( NAME = modellog , FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.SKY38\MSSQL\Data\modellog.ldf' )
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBData , FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.SKY38\MSSQL\Data\MSDBData.mdf' )
ALTER DATABASE msdb MODIFY FILE ( NAME = MSDBLog , FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.SKY38\MSSQL\Data\MSDBLog.ldf' )

Здесь указан новый путь для системных баз данных model и msdb. Name - логическое имя файла. Остановить SQL-сервер, переместить файлы системных баз данных на новое место и не забывать про права доступа к файлам для учетки MSSQLSERVER.

Усечение логов транзакций базы данных MS SQL Server

USE DB_name
BACKUP LOG DB_name to DISK = 'path_to_file_bak';
DBCC SHRINKFILE (Logical_Log_Name, 128)
WAITFOR DELAY '00:00:01'
BACKUP LOG DB_name to DISK = 'path_to_file_bak';
DBCC SHRINKFILE (Logical_Log_Name, 128)
WAITFOR DELAY '00:00:01'
DBCC SHRINKFILE (TSOnline_Log, 128)

Восстановление Windows Server 2019 с помощью wbadmin

Исходные данные: наличие резервных копий томов, сделанных с помощью утилиты wbadmin.

1. Запустить восстановление системы (F8 при загрузке или воспользоваться загрузочным диском / флешкой). Зайти в командную строку.
2. Разметить новые диски под структуру восстанавливаемых с помощью утилиты diskpart. Для каждого тома выполнить:

create partition primary size=916480 (в мегабайтах)
format fs=ntfs quick
active (только для резервного системного тома, который должен быть активным)
assign letter=C (буква тома)

3. Восстановление томов с помощью утилиты wbadmin:

wbadmin get versions -backupTarget:E: (получить версию с источника на диске E:, каталог WindowsImageBackup)
wbadmin get items -version:02/07/2021-02:00 -backupTarget:E: (получить список томов в источнике)
wbadmin start recovery -version:02/07/2021-02:00 -backupTarget:E: -itemType:Volume -items:\\?\Volume{}\ -recoveryTarget:c: (выполнить для каждого тома)

Вместо \\?\Volume{}\ (в квадратных скобках ID тома, полученное через get items) можно указать букву тома, например, C:.
4. Прописать загрузочную область:

bcdboot.exe С:\Windows

Создание загрузочной флешки Windows в Linux (Debian, Ubuntu)

Ниже приведен способ создания загрузочной флешки Windows (Windows 10, Windows Server 2019) в командной строке Linux (Debian, Ubuntu).
Исходник - установочной образ ISO.

Для ранних версий Windows было удобно использовать команду dd. Ныне этот способ не прокатывает. Но на помощь приходит утилита woeusb.

Залить на хост woeusb.
Запустить с параметрами:

woeusb.bash --device /mnt/d2/Win2019ru.ISO /dev/sdc --target-filesystem NTFS

Здесь указывается путь к ISO-файлу и USB-устройство.

Настройка блокировки социальных сетей на роутере Mikrotik

Для блокировки социальных сетей на роутере Mikrotik используется протокол Layer 7.

IP - Firewall - Layer 7 protocols: добавить новое правило с помощью регулярного выражения.

Name: SocialNets
Regexp: ^.+(facebook|twitter|forum).*$

IP - Firewall - Filter Rules: добавить новое правило:

Chain: forward
Src Address: 192.168.1.0/24 (локальная подсеть или IP-адрес компа пользователя)
Advanced - Layer 7 Protocol: SocalNets (наше правило)
Action: Drop

Ошибка PHP: Fatal error: Call-time pass-by-reference has been removed in \wp-content\plugins\simple-lightbox\includes\class.utilities.php on line 40

При переходе на новую версию PHP появляется ошибка:

Fatal error: Call-time pass-by-reference has been removed in \wp-content\plugins\simple-lightbox\includes\class.utilities.php on line 40

Для устранения ошибки необходимо убрать знак "&" в коде:

function SLB_Utilities(&$obj) {
$this->__construct(&$obj);
}

Настройка сканера Mustek BearPaw 1200 CU Plus в Ubuntu (Xubuntu)

При подключении сканера Mustek BearPaw 1200 CU Plus в Ubuntu он распознается стандартным пакетом SANE (версией от 1.0.17), но при сканировании выдает ошибку.

При запуске команды scanimage в терминале:

root@ubuntu:/etc/sane.d# scanimage
[bjnp] create_broadcast_socket: ERROR - bind socket to local address failed - Cannot assign requested address
[gt68xx] Couldn't open firmware file (`/usr/local/share/sane/gt68xx/PS1Gfw.usb'): No such file or directory
scanimage: open of device gt68xx:libusb:002:005 failed: Invalid argument

Чтобы исправить эту ошибку, необходимо скачать файл PS1Gfw.usb и поместить его в директорию /usr/local/share/sane/gt68xx/

root@ubuntu:~/Downloads# scanimage -L
[bjnp] create_broadcast_socket: ERROR - bind socket to local address failed - Cannot assign requested address
device `gt68xx:libusb:002:005' is a Mustek Bearpaw 1200 CU Plus flatbed scanner

Windows 10 — не запускаются программы от администратора

Включить контроль учетных записей UAC:

Панель управления\Система и безопасность\Центр безопасности и обслуживания

Также можно зайти через свойства ярлычка "Мой компьютер".

Настройка интернет-банкинга в Xubuntu

Интернет-банкинг

Установка java вручную

sudo apt-get install default-jre
sudo apt-get install icedtea-plugin

Настройка ссылок, плагин браузер

Но браузер не видит usb-токен
Клиент-банк Аваль:

#!/bin/sh

export LANG=ru_RU.cp1251
export LC_ALL=ru_RU.cp1251

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
JAVACMD=$JAVA_HOME/bin/java

$JAVACMD -Xmx256M -cp ./launcher.jar com.bifit.launcher.Launcher

Автоматическое сохранение скриншотов в Xubuntu 14.04 (Ubuntu Linux)

Установить утилиту scrot:

sudo apt-get install scrot

Скриншоты будут сохраняться на сетевую шару.
Монтируем шару с помощью файла /etc/fstab
Добавить следующую строчку в конец файла:

//IP-address/screenshot /usr/share/screenshot cifs username=screenshot,password=screenshot,rw 0 0

Проверить, что есть права на запись в шару.

Запуск задания по расписанию:

Под пользователем сделать

crontab –e

Добавить строчку:

*/10 * * * * /home/user/scrot.sh

/10 – задание будет запускаться каждые 10 минут

Содержимое файла scrot.sh:

#!/bin/sh
export DISPLAY=:0
/usr/bin/scrot -z /usr/share/screenshot/test/%Y%m%d_%T.jpg

Проверить права чтения на файл scrot.sh

Ошибка в Windows XP SP2 при подключении к удаленному рабочему столу

При подключении к удаленному рабочему столу появляется ошибка: "Удаленный компьютер требует проверки подлинности на уровне сети, которую данный компьютер не поддерживает" или "Клиентскому компьютеру не удается установить подключение к удаленному компьютеру".

Для исправления ошибки необходимо в реестре открыть ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa и для параметра SecurityProviders добавить строку credssp.dll

Перезагрузка.

Terrasoft 3.3.2.275: пользователь не может обновить записи при интеграции Excel

Отредактировать скрипт Dataflow\Library\scr_DataflowUtils (изменения выделены красным):

function InitRecordUpdateQuery(ImportObject) {

AddFieldParamCompareFilter(ImportObject.UpdateQuery.Filters,
ImportObject.Table.Fields('ID'), ImportObject.TableName.SQLName,
ImportObject.UpdateQueryIDParam, cotEqual);

function ImportDataByImportObject(Dataset, ImportObject, UpdateRecords)
InitRecordUpdateQuery(ImportObject);

Установка Windows Server на виртуальный сервер Hetzner

Облачный сервис Hetzner очень популярен благодаря надежности и низкой стоимости (от 3 евро за виртуальный сервер).

Ниже приведена последовательность установки Windows Server 2019.

Зайти в Hetzner Cloud Console, выбрать проект и сервер.
На вкладе ISO-images примонтировать установочный образ с Windows Server 2019.

Открыть консоль (через меню в верхнем правом углу) и перезагрузить сервер. Начнется установка Windows. В консоли включить GUI-mode.
На шаге выбора раздела для установки Windows примонтировать образ virtuo-win с драйверами и нажать кнопку "Load driver"

Из списка драйверов выбрать подходящий:

Появится раздел - нажать кнопку Delete. Примонтировать обратно установочный образ Windows и нажать кнопку Next. При желании можно вручную создать разделы.

Если кнопка Next неактивна - нажать Refresh.

После установки Windows – установить с образа virtuo-win драйвер сетевой карты и других неработающих устройств. Установить все обновления системы, при необходимости перезагрузить сервер.

Настройка WiFi-адаптера D-Link DWA-172 в Xubuntu (Ubuntu) 18.04

Для WiFi-адаптера D-Link DWA-172 необходимо установить дополнительные драйвера в Xubuntu:

sudo apt update
sudo apt install build-essential git dkms
git clone https://github.com/brektrou/rtl8821CU.git
cd rtl8821CU
chmod +x dkms-install.sh
sudo ./dkms-install.sh
sudo modprobe 8821cu

Настройка COM-коннектора 1С 8

Наличие на сервере COM-коннектора 1С8 позволяет другим приложениям интегрироваться с 1С.

Регистрация библиотеки (запускать с правами администратора):

regsvr32 "C:\Program Files\1cv8\8.3.10.2252\bin\comcntr.dll"

Создать новое приложение COM+:
Службы компонентов

Создание приложения COM+

Имя приложения

Пользователь приложения

Добавить пользователей/роли, которые будут использовать компоненту:
Доблавление пользователей

Добавить новый компонент comcntr.dll:
Добавление компонента comcntr.dll

Добавление компонента comcntr.dll

Свойства коннектора, вкладка «Безопасность – снять галку «Принудительная проверка доступа для приложения»:
Свойства коннектора

Свойства компонента, вкладка «Безопасность» - установить галку на CreatorOwner:
Свойство компонента

Аналогично для интерфейса (раскрываем коннектор, далее компоненты, далее интерфейсы):
Свойство интерфейса IV8COMConnector3

Интеграция Creatio с 1С 8 с помощью COM-коннектора

Существуют различные способы интеграции Creatio CRM и 1С 8. Наиболее распространенный и технологичный - через протокол ODATA. Единственный недостаток этого способа - необходимо публиковать базу 1С 8.

Если не хочется заморачиваться с программированием, то можно приобрести задорого готовые модули интеграции Creatio с 1С на Terrasoft Marketplace.

Наиболее быстродействующий способ интеграции - средствами SQL-сервера, минуя сервер 1С Предприятия. В этом случае обычно не контролируются права доступа пользователей.

В данной статье рассматривается довольно-таки старый способ интеграции через COM-коннектор, который использовался еще во времена ламповой Terrasoft CRM 3.x. Способ простой, но требует предварительной настройки COM-коннектора для 1С.

Ниже приведен код сценария C# (можно использовать в бизнес-процессе Creatio), который позволяет подключиться к базе 1С 8 и записать реквизиты контрагента.

string AccountCode = Get<string>("ProcessSchemaParameterAccountCode"); //код контрагента
int AccountSum = Get<int>("ProcessSchemaParameterAccountSum"); // значение некоего параметра контрагента

string connectionString = "Srvr='ServerName';Ref='BD1SName';Usr='User1SName';Pwd='User1SPassword';";
Type oType = Type.GetTypeFromProgID("V83.COMConnector");
if (oType != null) {
object V8 = Activator.CreateInstance(oType);
object connection;
try {
connection = oType.InvokeMember("Connect", BindingFlags.Public | BindingFlags.InvokeMethod, null, V8, new object[] { connectionString });
}
catch (Exception e) {
//Сформировать сообщение об ошибке подключения к 1С. Сообщение выводится логикой бизнес-процесса, в зависимости от параметра ниже.
Set<bool>("ProcessSchemaParameterConnectionTo1SIsOK", false);
return true;
}

object Dictionaries1C = connection.GetType().InvokeMember("Справочники", BindingFlags.GetProperty, null, connection, null);
object Accounts1C = connection.GetType().InvokeMember("Контрагенты", BindingFlags.GetProperty, null, Dictionaries1C, null);
object FindAccount1S = connection.GetType().InvokeMember("НайтиПоРеквизиту", BindingFlags.InvokeMethod, null, Accounts1C, new object[] { "КодПоЕДРПОУ", AccountCode });

bool Account1CIsNotExist = Convert.ToBoolean(connection.GetType().InvokeMember("Пустая", BindingFlags.InvokeMethod, null, FindAccount1S, new object[] {}));

if (Account1CIsNotExist == true) {

//Контрагент не найден в 1С
Set<bool>("ProcessSchemaParameterAccount1SIsOK", false);

} else {

object GetAccount1S = connection.GetType().InvokeMember("ПолучитьОбъект", BindingFlags.InvokeMethod, null, FindAccount1S, null);

connection.GetType().InvokeMember("Сумма", BindingFlags.SetProperty, null, GetAccount1S, new object[] { AccountSum });
connection.GetType().InvokeMember("Записать", BindingFlags.InvokeMethod, null, GetAccount1S, null);

}
}

return true;

Мультиязычность для простых сайтов

Наиболее простой способ добавить языки для сайта - использование Javascript.

В HTML-документ, в области HEAD добавляем скрипт:

<script type="text/javascript">
let langs = ['ru', 'en'];
let lang = 'ru';
setLangStyles(lang);

function setStyles(styles) {
var elementId = '__lang_styles';
var element = document.getElementById(elementId);
if (element) {
element.remove();
}

let style = document.createElement('style');
style.id = elementId;
style.type = 'text/css';

if (style.styleSheet) {
style.styleSheet.cssText = styles;
} else {
style.appendChild(document.createTextNode(styles));
}
document.getElementsByTagName('head')[0].appendChild(style);
}

function setLang(lang) {
setLangStyles(lang);
}

function setLangStyles(lang) {
let styles = langs
.filter(function (l) {
return l != lang;
})
.map(function (l) {
return ':lang('+ l +') { display: none; }';
})
.join(' ');

setStyles(styles);
}
</script>

На сайт (обычно в шапку страницы) добавляем ссылки смены языка. Например,

<a href="#" hreflang="en" onclick="setLang('en'); return false">Switch to english</a>
<a href="#" hreflang="ru" onclick="setLang('ru'); return false">Переключить на русский</a>

И последний шаг, добавить тексты на нужных языках, промаркировав их аттрибутом lang с указанием названия языка. Пример:

<p lang="ru">Текст на русском</p>
<p lang="en">English text</p>

Разблокировка смартфона Xiaomi Redmi 4x после сброса настроек

После сброса настроек в смартфоне Xiaomi Redmi 4x может возникнуть ситуация, когда пользователь не может ввести учетные данные Google и смартфон становится нерабочим.

Для разблокировки смартфона необходимо выполнить следующее:

1. Запустить браузер.
Задача нетривиальная на заблокированном смартфоне. После настройки Wi-Fi вернуться на экран приветствия с логотипом MI и нажать двумя пальцами на экран. Через 10 секунд запустится TallBack. Провести по экрану сверху вниз (от верхнего левого угла) и слева направо (буквой L). Откроются настройки TallBack - выбрать пункт "Справка и отзывы". В справке выбрать первый пункт - откроется страничка с окном Youtube. Зажать клавиши громкости на 3 секунды - выключится режим TallBack. Кликнуть по окну Youtube и выбрать "Смотреть позже". Откроется браузер MI.

2. Включение режима отладки USB.
В браузере скачать файл APK приложения Go Launcher Z. Установить и запустить это приложение.
Появится рабочий стол - открыть настройки и создать "Второе пространство". Эта настройка может быть в новых функциях.
Во втором пространстве запустить PlayMarket и пройти авторизацию Google.
Теперь опять в настройки - О телефоне - несколько раз кликнуть "Версия MUI" до появления сообщения "включен режим разработчика".
В дополнительных настройках прыгаем в пункт "Для разработчика" и включаем режим "Отладка по USB".

3. Магия FRP.
Подключить смартфон к компьютеру. Подтвердить режим отладки.
Установить драйвер через ADB Driver Installer.
Запустить скрипт Google FRP Bypass.
Удалить второе пространство и сбросить настройки смартфона.

Ошибка 0x80300001 при установке Windows Server 2019

Во время установки Windows Servewr 2019 появляется ошибка: "Windows is unable to install to the selected location. Error: 0x80300001".

Данная ошибка возникает после установки дополнительного драйвера для диска.
Исправление ошибки: подключить (вставить) установочный диск Windows, нажать кнопку "Refresh" и продолжить установку.

Windows Server 2019 — активация просмотрщика фото (Windows Photo Viewer)

По умолчанию в Windows Server 2019 используется Paint для просмотра фотографий и графических файлов. Что не всегда есть удобно. Если в Windows Server 2012 было достаточно включить компоненту "Особенности рабочего стола" для активации встроенного просмотрщика фотографий, то в Windows Server 2019 придется править ветку реестра [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities\FileAssociations]. По аналогии с расширением .tif добавить расширения .jpg, .gif:

Windows Photo Viewer

Ошибка при отправке почты на ukr.net «sender domain SPF exact match mandatory»

При отправке письма на адреса ukr.net приходит возврат:


host mxs.ukr.net [212.42.75.251]
SMTP error from remote mail server after RCPT TO:
550 sender domain SPF exact match mandatory for

Для исправления необходимо скорректировать для домена запись SPF:

v=spf1 +mx +a -all

Тип записи должен быть TXT для всех поддоменов @.

Ошибка при подключении к OpenVPN-серверу «CRL has expired»

При подключении к OpenVPN-серверу возникает ошибка:

VERIFY ERROR: depth=0, error=CRL has expired: CN=user
OpenSSL: error:1417C086:SSL routines:tls_process_client_certificate:certificate verify failed
TLS_ERROR: BIO read tls_read_plaintext error
TLS Error: TLS object -> incoming plaintext read error
TLS Error: TLS handshake failed

Решение:
./easyrsa gen-crl
И скопировать /etc/openvpn/easy-rsa/pki/crl.pem в нужное место. Или же обновить crl.pem отзывом любого сертификата с помощью утилиты revoke-full.

Также можно увеличить срок действия сертификата в настройках SSL:

default_days = 3650
default_crl_days= 3650

Настройка сертификата SSL для сайта на веб-сервере Apache с помощью сервиса Let’s Encrypt

Задача: привязать к сайту SSL-сертификат и использовать защищенное соединение HTTPS.

    • Преимущества использования SSL-сертификата:
  • данные между клиентом и сервером (явки, пароли) передаются по защищенному соединению HTTPS;
  • улучшение ранжирования Гуглом;
  • URL-сайта подсвечивается зеленым значком в адресной строке браузера - эстетическое наслаждение.

В качестве центра проверки подлинности сертификата будет использоваться бесплатный сервис Let's Encrypt.

Внимание! Нижеописанный метод не действует с 2021 года. Использовать Certbot.

Настройка веб-сервера Apache:

sudo a2enmod ssl
sudo a2ensite default-ssl

Получение SSL-сертификата от Let's Encrypt:

sudo apt-get install git
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
cd /opt/letsencrypt
sudo -H ./letsencrypt-auto certonly --standalone -d site.com -d www.site.com

В директории /etc/letsencrypt/live должна появиться директория site.com, содержащая новые сертификаты.

Если появляется ошибка "Problem binding to port 80: Could not bind to IPv4 or IPv6.", остановить службу Apache, повторить последнюю команду и запустить Apache заново.

Настройка виртуального хоста на порту 443:

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/site.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/site.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/site.com/fullchain.pem

Дополнительно можно настроить переадресацию HTTP -> HTTPS. В дефолтный виртуальный хост добавляем:

Redirect / https://www.site.com/

Перезапуск Apache.

Настройка автоматического продления SSL-сертификата Let's Encrypt - добавляем в crontab задание:
0 0 1 * * root service apache2 stop && /opt/letsencrypt/letsencrypt-auto renew && service apache2 start

Настройка виртуального хоста в Apache

Для добавления виртуального хоста (новый сайт) в конфиг веб-сервера Apache добавить:


<VirtualHost IP-address:80>
ServerName www.site.com
ServerAlias site.com
ServerAdmin postmaster@site.com
DocumentRoot /var/www/site.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Здесь важно указание IP-адреса хоста, чтобы работала директива ServerAlias.

Переадресация запросов на новый сайт с помощью htaccess

В корневой .htaccess старого сайта добавить:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^oldsite\.com$ [NC]
RewriteRule ^(.*)$ http://www.oldsite.com/$1 [R=301,L]
Redirect 301 / http://www.newsite.com/

Настройка веб-сервера LAMP на Debian 10

LAMP - сокращенное название технологий: Linux, Apache, MySQL, PHP.
MySQL не входит в стандартный репозиторий Debian 10, поэтому будем использовать MariaDB.

sudo apt update
sudo apt upgrade
sudo apt install apache2
sudo apt install mariadb-server mariadb-client
mysql_secure_installation
sudo apt install php libapache2-mod-php php-mysql php-xml php-mbstring php-gd
sudo a2enmod rewrite

Добавляем FTP-сервер.

sudo apt install vsftpd

Изменения в конфигурации FTP-сервера, файл /etc/vsftpd.conf:

listen=YES
listen_ipv6=NO
write_enable=YES
chroot_local_user=YES
chroot_list_enable=NO
allow_writeable_chroot=YES
local_umask=022
chmod_enable=YES
file_open_mode=0644

Перезапуск службы FTP:

sudo /etc/init.d/vsftpd restart

Добавление пользователя:
adduser --home /var/www/site_dir --shell /bin/sh --ingroup www-data user

Последняя версия phpMyAdmin.

Создание суперпользователя MySQL (авторизация рутом в phpMyAdmin невозможна):

sudo mysql -p -u root
CREATE USER 'rootpm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'rootpm'@'%' WITH GRANT OPTION;

Изменение пароля пользователя MySQL:

sudo mysql -p -u root
ALTER USER 'пользователь'@'localhost' IDENTIFIED BY 'новый пароль';
FLUSH PRIVILEGES;

Смартфон Meizu M5 — сброс в заводские настройки

Сброс настроек на смартфоне Meizu M5:
1. Выключить смартфон.
2. Зажать кнопку увеличения громкости и кнопку питания.
3. Отпустить кнопку питания при появлении лого MEIZU.
4. В меню выбрать "Clear data" и нажать кнопку "Start".

Terrasoft XRM 3.4 — ошибка при списании большого количества продукта по методу «средневзвешенный»

В Terrasoft XRM 3.4 обнаружен глюк - при определенных условиях продукты не списываются из партий. Ошибка наблюдается при списании большого количества продуктов (более 28000 шт.) из нескольких партий по методу "средневзвешенный".

Для исправления ошибки необходимо увеличить разрядность до 6 знаков после запятой переменной @Part в хранимой процедуре tsp_RoughOfferingDistribute:

declare @Part decimal(15, 6);

Сканеры МФУ Samsung не работают в Ubuntu 18.04

В новой версии Ubuntu 18.04 встречается проблема с МФУ Samsung, когда не работает сканирование. Встроенная утилита Simple Scan не видит сканеры Samsung даже после установки родного драйвера.

Решение: добавить IP-адрес МФУ c указанием протокола tcp в файл /etc/sane.d/xerox-mfp.conf

tcp 192.168.0.100

Перевод сайта на OpenCart с HTTP на HTTPS

HTTPS - безопасный протокол передачи данных, для работы которого необходим сертификат SSL.
При правильной работе сайта на HTTPS-протоколе в адресной строке браузера отображается зеленый замочек.

Сертификат SSL обычно устанавливается и настраивается через панель хостинга сайта.
После активации сертификата - убедиться, что сайт отображается по протоколу HTTPS.
В конфиге должна быть указана переменная HTTPS_SERVER.
Может потребоваться изменение ссылок в контроллере OpenCart. Для этого добавляем в линки 'SSL'.
Например, в файле /catalog/controller/common/header.php:

$data['home'] = $this->url->link('common/home');

меняем на

$data['home'] = $this->url->link('common/home', '', 'SSL');

Контроллеры для корректировок: common, module, product.

После вычищения всех http-ссылок настраиваем переадресацию в файле .htaccess:

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Ошибка форума phpBB3: Could not get style data BACKTRACE

После переноса форума phpBB3 на другой хостинг возникает ошибка при его открытии:
Could not get style data BACKTRACE FILE: (not given by php) LINE: (not given by php) CALL: msg_handler()

Для исправления ошибки необходимо удалить все файлы в папке /phpBB3/cache и установить доступ на нее 777.

Ошибка запроса MS SQL: Оригинальное сообщение об ошибке: Не удалось разрешить конфликт параметров сортировки между «Ukrainian_CI_AS» и «Cyrillic_General_CI_AS» в операции equal to

Ошибка "Оригинальное сообщение об ошибке: Не удалось разрешить конфликт параметров сортировки между "Ukrainian_CI_AS" и "Cyrillic_General_CI_AS" в операции equal to" может возникать при разных кодировках баз данных.

Для исправления необходимо добавить в запросе после имени колонки параметр COLLATE Cyrillic_General_CI_AS. Этот параметр добавляем только для колонок с типом "строка".

Пример:

SELECT Name1 COLLATE Cyrillic_General_CI_AS FROM DB1.dbo.Table1
UNION
SELECT Name2 FROM DB2.dbo.Table2

Удаленное выключение Windows Server 2012

Для удаленного выключения Windows Server 2012 можно использовать стандартную команду shutdown:

shutdown /s /m \\IP-address

При выполнении этой команды возникнет ошибка "Отказано в доступе. (5)" / "Remote shutdown Access Denied (5)".
Это связано с тем, что удаленный пользователь получает права админа только, если он заходит под встроенной учеткой "Администратор", которая, обычно, по умолчанию отключена.

Для исправления этого необходимо добавить параметр LocalAccountTokenFilterPolicy типа DWORD и значением "1" в ветку реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System

Необходимо, чтобы пользователь на локальной и удаленной машинах имели одинаковый логин и пароль. И также добавить права для этого пользователя в локальную политику безопасности: параметры "Завершение работы системы" и "Принудительное удаленное завершение работы".

Также в брандмауэре должен быть открыть входящий порт UDP 445.

Перенос раздела Swap в Ubuntu

Необходимость переноса раздела Swap в Ubuntu может возникнуть при увеличении основного раздела, например, на виртуальной машине.

Создаем новый раздел для Swap с помощью GParted.
Отключаем Swap на старом разделе sda3 и создаем новый на sda4:

swapoff /dev/sda3
mkswap /dev/sda4

Редактируем UID нового раздела Swap в /etc/fstab.

Включаем Swap:

swapon -a

После этого можно удалять старый swap-раздел и расширять основной раздел.

Дополнительно:

Создание Swap-файла

dd if=/dev/zero of=/PATH/FILENAME bs=1024 count=SIZE
chmod 600 /PATH/FILENAME
mkswap /PATH/FILENAME
swapon /PATH/FILENAME

Увеличение размера шрифта меню Adobe Photoshop 2014 для дисплеев с высоким разрешением

Меню - Редактирование - Настройки - Экспериментальные функции - включить настройку "Масштабирование пользовательского интерфейса до 200% для дисплеев с высокой плотностью воспроизведения информации (только для ОС Windows)".

При запуске MS Outlook 2013 появляется окно установщика компонентов MS Office

При запуске MS Outlook 2013 на Windows Server 2012 появляется следующее окно:

Чтобы это окно не появлялось каждый раз при запуске Outlook, необходимо установить на сервере компоненту "Служба Windows Search".

Если после установки компоненты "Служба Windows Search" перестал работать поиск в MS Outlook, то необходимо в параметрах индексирования (вход через Панель управления) снять выбор с расположения Microsoft Outlook.

Установка Truecrypt в Ubuntu

sudo add-apt-repository ppa:stefansundin/truecrypt
sudo apt-get update
sudo apt-get install truecrypt

Для того чтобы Truecrypt не запрашивал привилегии администратора при монтировании диска или контейнера, необходимо выполнить:

sudo visudo
UserName ALL=NOPASSWD:/usr/bin/truecrypt

Установка и настройка Samba на Debian

Samba позволяет организовать общий ресурс на сервере Debian с тонкой настройкой прав доступа.

sudo apt-get install samba
smbpasswd -a DebianUser

Добавление шары в smb.conf:

[backup]
comment = backup
path = /var/smb
guest ok = no
browseable = no
read only = no
create mask = 0700
directory mask = 0700
valid users = DebianUser

После изменения конфига необходимо перезагрузить службу: /etc/init.d/samba restart

Примечание: пользователь DebianUser должен быть уже заведен в системе и иметь права доступа к директории /var/smb.
Добавление пользователя для FTP-сервера Debian

Открытие портов в IPTABLES для Samba:

-A INPUT -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 445 -j ACCEPT
-A INPUT -p udp -m udp --dport 137 -j ACCEPT
-A INPUT -p udp -m udp --dport 138 -j ACCEPT

Windows 7 не загружается после установки обновлений — синий экран с ошибкой с0000145

После установки обновлений Windows 7 перестает загружаться.
При загрузке появляется синий экран с ошибкой с0000145:

Причиной этого является использование пиратской версии Windows и активаторов.

Для исправления необходимо вернуть загрузчик в первоначальное состояние - убрать зловредные активаторы.
Удаляем файлы для успокоения совести:
Windows\system32\drivers\oem-drv64.sys
Windows\system32\xNtKrnl.exe
Windows\system32\xOsLoad.exe
Windows\system32\ru-RU\xOsLoad.exe.mui

Путь загрузчика (BCDedit - переменная path) вместо xOsLoad.exe прописываем:
\Windows\system32\winload.exe

Удаляем переменные: kernel, nointegritychecks, custom:26000027.

Редактировать загрузчик можно с помощью команды BCDedit или графической утилиты.
Аналогичного эффекта можно добиться с помощью средства восстановления системы. Но данный способ не будет работать, если системный диск зашифрован.

Joomla: не работает mod_rewrite

В директиве сайта (настройка Apache) должна быть опция AllowOverride All.

Пример директивы для сайта на Joomla:

<Directory "/var/www/YourSite/public_html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>

Инкрементное резервное копирование файлов на Windows Server 2014

Система архивации данных Windows Server 2014 поддерживает инкрементное создание резервных копий на локальный диск. Но данный вариант не работает при копировании в сетевую папку.

Решение - использование "Планировщика задач" и простых, стандартных утилит.

Батник для создания копий (ставим в Планировщик):

echo %off
setlocal
1>nul chcp 1251
set day=-7
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "data=%dd%.%mm%.%yyyy%"
forfiles /p C:\users /m * /s /D %data% /c "cmd /q /c if @isdir==FALSE echo @path" > C:\list_zip.txt
C:\Progra~1\7-Zip\7z.exe a -spf -scsWIN -ssw -xr!~$*.* -pChangePwd \\[Сетевой источник]\Backup\%date%.zip @C:\list_zip.txt

Здесь,
%data% - вычисляется дата, меньше текущей на 7 дней,
forfiles - формирование списка файлов для архивирования, измененных за последние 7 дней,
7z - создание и копирование запароленного архива по ранее сформированному списку файлов.

Для удаления старых архивных копий можно использовать следующий батник:

NET USE V: \\[Сетевой источник]\Backup
forfiles /p V:\ /m *.zip /s /d -31 /c "cmd /c del @path /q"
NET USE V: /delete /yes

Здесь удаляются все архивы, старее 31 дня.

Вышеописанный метод эффективно работает с периодическим созданием полного бекапа сервера.

Настройка почтового сервера с антивирусом и спам-фильтром на Debian: Exim4 / VEXIM, Dovecot, SpamAssassin, Clamav

В статье рассматривается настройка полноценного почтового сервера на операционной системе Debian с использованием шифрования для безопасной передачи почты.
EXIM4 - агент для передачи почты.
Dovecot - сервис для передачи почты клиенту.
VEXIM - управление почтовыми доменами и ящиками через веб-интерфейс.
SpamAssassin - спам-фильтр.
Clamav - антивирус.

Исходные данные: настроенный Apache сервер с PHP и MySQL.

Как театр начинается с вешалки, так почтовый сервер начинается с домена. Необходимо добавить записи для почтового домена:

example.com. 3600 IN MX 10 mail.example.com.
mail.example.com. 3600 IN A IPv4-address
mail.example.com. 3600 IN AAAA IPv6-address
@.example.com. 3600 IN TXT v=spf1 +a +mx -all

Если на почтовом сервере используется только один домен, то SPF запись должна быть такой: "v=spf1 mx -all".

2 и 3 строки – связь домена с сервером, в формате IPv4 и IPv6. Если адресация IPv6 не используется, то третью строку пропускаем. Но при этом могут быть проблемы с Гуглом.
Без третьей строки почтовик Гугла отказывается принимать почту, выдавая такую ошибку:

Our system has detected that this message does
550-5.7.1 not meet IPv6 sending guidelines regarding PTR records and
550-5.7.1 authentication.

Для почтового домена необходимо указать обратную зону (связать IP-адрес с доменом) - Reverse DNS entry, как для IPv4, так и для IPv6.

Важно! Проверить IP-адрес почтового сервера на отсутствие в спамовых черных списках. Для этого можно воспользовать сервисом MX ToolBox. Если адрес светится в черных списках - удалить (делистинг) до запуска почтового севрера.

Установка сервисов:

apt-get install exim4-daemon-heavy
apt-get install dovecot-pop3d dovecot-common dovecot-mysql
apt-get install clamav-daemon clamav-freshclam spamassassin

Установка и настройка VEXIM

Проверить, есть ли php-pear – требуется для vexim.

apt-get install php-pear

Должно быть сообщение, что пакет уже установлен.

VEXIM - набор php-скриптов, которые нужно скачать и распаковать:

cd /var/www
wget https://github.com/vexim/vexim2/archive/master.zip
apt-get install unzip
unzip master.zip
chown -R root:www-data /var/www/vexim2-master

Создать каталог, где будет храниться почта:

mkdir /var/mail/vmail

Изменить владельца этого каталога: пользователь - Debian-exim, группа - mail.

Добавление пользователя vexim:

adduser --system --home /var/mail/vmail --disabled-password --disabled-login --group vexim

Подготовка базы данных для VEXIM:
Раскомментировать команду создания базы данных в скрипте /var/www/vexim2-master/setup/mysql.sql, не забывая вместо CHANGE указать свой пароль:

CREATE DATABASE IF NOT EXISTS `vexim` DEFAULT CHARACTER SET utf8;
USE `vexim`;
GRANT SELECT,INSERT,DELETE,UPDATE ON `vexim`.* to "vexim"@"localhost"
IDENTIFIED BY 'CHANGE';
FLUSH PRIVILEGES;

И запустить скрипт (требует пароль mysql):

mysql -u root -p < /var/www/vexim2-master/setup/mysql.sql

Запоминаем пароль пользователя siteadmin или меняем его. Важно! Этот скрипт не подходит для MySQL версии 8 и выше.

Создать файл variables.php:

cp /var/www/vexim2-master/vexim/config/variables.php.example /var/www/vexim2-master/vexim/config/variables.php

В файле variables.php правим следующие строки:

$sqlpass = "";
$uid = "90";
$gid = "90";
$mailroot = "/var/mail/vmail/";
$cryptscheme = "sha512";

Здесь uid и gid - данные пользователя Debian-exim (можно посмотреть в файле /etc/passwd).
$cryptscheme должна совпадать со схемой, указанной в sql-конфиге Dovecot (рассматривается ниже).

Создать пользователя mail_user, который будет использоваться службами Exim и Dovecot для проверки авторизации, доступ к базе vexim только на чтение (вместо CHANGE задать свой пароль):

#mysql -u root -p vexim
mysql>CREATE USER 'mail_user'@'localhost' IDENTIFIED BY 'CHANGE';
mysql>GRANT SELECT ON vexim.* TO 'mail_user'@'localhost';
mysql>flush privileges;

Создание сертификатов SSL

Сертификаты SSL используются для шифрования передачи почты, что хорошо для защиты от несанкционированного чтения почты.

openssl dhparam -out /etc/exim4/dhparam.pem 4096
cd /etc/ssl && openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 100000 -subj '/O=Some Org/CN=mail.example.com'

Для других почтовых доменов указываем другое имя файла вместо smtpd.pem, например, mail.example.com.pem.
Права доступа к сертификату: 0440 (только чтение для владельца рут и группы мейл).

Примечание.
Недостаток самоподписанных сертификатов - их нельзя импортировать в аккаунт Гугл, чтобы Гугл забирал почту с нашего ящика. С некоторого момента времени Гугл доверяет только центрам сертификации, например, таким как Mozilla CA. Поэтому или покупаем сертификат, или не паримся с Гуглом, т.к. самоподписанные сертификаты прекрасно работают как на ПК, так и на мобильных устройствах (Android - проверено).

Настройка Exim

Копируем конфиг из папки VEXIM:

cp /var/www/vexim2-master/docs/configure /etc/exim4/exim4.conf.template

Также необходимо скопировать все файлы конфигурации из docs/vexim* в /usr/local/etc/exim/.

Пример файла конфигурации Exim
Особое внимание следует уделить строкам:

primary_hostname = mail.example.com
daemon_smtp_ports = 25 : 465
tls_on_connect_ports = 465
domainlist local_domains = @ : ${lookup mysql{VIRTUAL_DOMAINS}} : ${lookup mysql{ALIAS_DOMAINS}}
hide mysql_servers = localhost::(/var/run/mysqld/mysqld.sock)/vexim/mail_user/passwd
log_selector = +all_parents +connection_reject +incoming_interface +lost_incoming_connection +received_sender +received_recipients +smtp_confirmation +smtp_syntax_error +smtp_protocol_error +queue_run
tls_certificate = ${if exists{/etc/ssl/${tls_sni}.pem}{/etc/ssl/${tls_sni}.pem}{/etc/ssl/smtpd.pem}}
tls_privatekey = ${if exists{/etc/ssl/${tls_sni}.pem}{/etc/ssl/${tls_sni}.pem}{/etc/ssl/smtpd.pem}}
auth_advertise_hosts = ${if eq {$tls_cipher}{}{}{*}}
exim_user = Debian-exim
av_scanner = clamd:/var/run/clamav/clamd.ctl
spamd_address = 127.0.0.1 783
CHECK_RCPT_REVERSE_DNS = yes

Здесь используется технология TLS SNI, которая позволяет использовать разные сертификаты для нескольких почтовых доменов на сервере. Но smtpd.pem обязателен (сертификат главного почтового домена).

Настройка Dovecot

Пример файлов конфигурации Dovecot.
В файле dovecot.conf следует обратить внимание на строки:

listen = *, ::
base_dir = /var/run/dovecot/
protocols = pop3
disable_plaintext_auth = yes
ssl = required
ssl_cert = </etc/ssl/smtpd.pem
ssl_key = </etc/ssl/smtpd.pem
local_name mail.example.com {
ssl_cert = </etc/ssl/mail.example.com.pem
ssl_key = </etc/ssl/mail.example.com.pem
}
login_greeting = POP3 server ready.
mail_location = maildir:/var/mail/vmail/%d/%n/Maildir
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot_info.log
verbose_proctitle = yes
first_valid_uid = 26
first_valid_gid = 6
maildir_copy_with_hardlinks = yes

service auth {
unix_listener auth-client {
mode = 0600
user = Debian-exim
}
unix_listener auth-master {
mode = 0600
user = Debian-exim
}
user = root
}

service pop3-login {
chroot = login
process_limit = 200
process_min_avail = 3
service_count = 1
vsz_limit = 64 M
}

protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

protocol lda {
postmaster_address = postmaster@example.com
auth_socket_path = /var/run/dovecot/auth-master
}

passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}

passdb {
driver = pam
}

userdb {
args = blocking=yes
driver = passwd
}

userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}

##!include conf.d/*.conf
##!include_try local.conf

С помощью local_name{} задаются разные сертификаты для нескольких доменов.

В файле dovecot-sql.conf.ext отредактировать строки:

driver = mysql
connect = host=/var/run/mysqld/mysqld.sock user=mail_user password=CHANGE dbname=vexim
default_pass_scheme = SHA512-CRYPT
password_query = SELECT crypt AS password, '/var/mail/vmail/%d/%n' AS userdb_home, 'mail' AS userdb_uid, 'mail' AS userdb_gid FROM users WHERE username = '%n@%d' AND enabled = '1'
user_query = SELECT pop AS home, uid AS uid, gid AS gid FROM users WHERE username = '%n@%d'

Примечание: в файле конфигурации Dovecot по умолчанию подключаются дополнительные настройки в директории conf.d.

Настройка SpamAssassin

Редактируем файл /etc/default/spamassassin:

#ENABLED=1
CRON=1

Дополнительную настройку и работу с белыми/черными списками можно выполнить через Webmin или добавлением директив в файл конфигурации /var/mail/vmail/.spamassassin/user_prefs

whitelist_from user@domain.com
blacklist_from *@domain.com

Создать директорию и назначить владельца - vexim:

mkdir /var/mail/vmail/.spamassassin

Проверить настройки групп (файл /etc/group), чтобы все наши почтовые сервисы были в группе mail:

mail:x:8:dovecot,clamav,Debian-exim,www-data,mail
Debian-exim:x:113:clamav
clamav:x:116:Debian-exim

/var/run/clamav - доступ на запись должен быть для пользователя и группы clamav.

Перезапустить службы:
/etc/init.d/exim4 restart
/etc/init.d/dovecot restart
/etc/init.d/spamassassin restart
/etc/init.d/clamav-daemon restart

/var/spool/exim4/scan – настроить право записи для группы mail

Настройка Apache:
добавляем алиас для нашего хоста: /vexim > /var/www/vexim2-master/vexim (можно сделать через Webmin).
Проверяем работу: https://IPv4-address/vexim/. После успешной авторизации создать новые домены и почтовые ящики. В каталоге /var/mail/vmail/ должна появиться новая структура. Если этот каталог остался пустым - проверять права доступа и создавать домены заново.

Отправляем тестовое сообщение и смотрим логи на предмет ошибок.

Дополнительные команды:
Проверка SSL: openssl s_client -connect mail.example.com:pop3s
Выполнить обработку очереди: exim -qf
Очистка очереди: exipick -i | xargs exim -Mrm

Настройка Outlook: при первом подключении к серверу появится окно «Предупреждение безопасности». Нажать кнопку «Показать сертификат», установить.
NB! Могут возникнуть трудности с настройкой MS Outlook 2003 SP1: не подхватывает сертификат. При подключении к серверу дает ошибку 0x800CCC0F. Требуется ручная установка и настройка.

Если включить функцию пересылки сообщений для почтового ящика и указать ящик Гугл, то последний будет блокировать пересылаемые сообщения из-за проверки DKIM. Хотя прямая отправка писем на Гугл прекрасно работает. Помним и на Гугл не пересылаем.

Проверка антвируса Clamav

Отправить на свой почтовый ящик заархивированный файл с расширением COM и следующим содержимым:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

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

Примечание: копирование почты

Для дублирования всей почты на отдельный почтовый ящик name@domain.com необходимо добавить в конфиг exim4 после begin routers:

auditor:
driver = redirect
domains = *
data = name@domain.com
unseen

Редактирование заголовка писем

Для удаления IP-адреса отправителя из заголовка письма необходимо добавить переменную received_header_text в конфиг Exim. Текущее значение этой переменной можно посмотреть с помощью команды:

exim -bP received_header_text

Ошибка при установке драйвера принтера Samsung ML-1610 на Windows Server 2012

При попытке установить драйвер принтера Samsung ML-1610 на Windows Server 2012 появляется ошибка: "Не удается установить драйвер... Хэш этого файла отсутствует в заданном файле каталога. Возможно файл поврежден или подделан".
Samsung ML-1610 driver error in Windows Server 2012

Политика безопасности Windows Server 2012 не позволяет устанавливать не подписанные драйвера. Хотя сам драйвер является официальным драйвером от производителя.
Для установки не подписанных драйверов необходимо выполнить следующие команды:

bcdedit /set testsigning on
bcdedit /set nointegritychecks true

И выполнить перезагрузку сервера. После установки драйвера делаем то же самое, но с обратными параметрами.

Ошибка конфигуратора 1С 7.7 SQL: «Для периферийной информационной базы сохранение измененной Конфигурации запрещено!»

При сохранении конфигурации базы 1С 7.7 формата SQL возникает ошибка: "Для периферийной информационной базы сохранение измененной Конфигурации запрещено!".
1S7.7 SQL error save denied

Для исправления ошибки необходимо удалить значения в полях DBSign и DBSetUUId таблицы _1SSYSTEM. Это можно сделать с помощью MS SQL Server Management Studio.
1S7 SQL 1SSYSTEM edit

После этого конфигурация перестанет быть периферийной и с ней можно будет работать как с обычной.

Windows Server 2012 добавить программу в автозагрузку

В Windows Server 2012 нет привычного меню "Автозагрузка".
Для автоматической загрузки программы при входе пользователя необходимо добавить ярлык программы в папку "Автозагрузка":

C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Если программа должна запускаться для всех пользователей, то ставим ее в папку:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

Средство просмотра фотографий недоступно в Windows Server 2012

Если средство просмотра фотографий недоступно в Windows Server 2012, то необходимо установить компонент "Дополнительные возможности рабочего стола".

Сообщение «Ошибка потока данных» при запуске 1С8

Сообщение "Ошибка потока данных" при запуске 1С8 может возникать после сбоя дисковой системы.
Для исправления необходимо удалить профиль пользователя 1С8:

C:\Users\UserName\AppData\Local\1C\1cv8
C:\Users\UserName\AppData\Roaming\1C\1CEStart
C:\Users\UserName\AppData\Roaming\1C\1cv8

Или указать путь к базе данных под другим именем.

Ошибка при выполнении net use: «Системная ошибка 1312».

При выполнении команды net use через службу возникает ошибка: "Системная ошибка 1312. Указанный сеанс работы не существует. Возможно, он уже завершен."

Для исправления необходимо указывать имя сервера в ключе /user.

Получение списка документов Excel по дате изменения с помощью Forfiles

Forfiles - командная утилита Windows.

Запускаем в командной строке:

forfiles /S /P C:\ /M *.xls* /D DD.MM.YYYY /C "cmd /c echo @FDATE @path" > list_xls.txt

где DD.MM.YYYY - дата изменения файла. В этом случае будут найдены файлы с датой изменения равной или большей DD.MM.YYYY.
Если использовать знак "-", то соответственно, равной или меньшей.
Файл list_xls.txt будет создан в текущей директории.

Архивирование данных с помощью планировщика заданий Windows

Архивирование всего сервера:

%windir%\System32\wbadmin.exe start backup -backupTarget:\\сетевой путь\ -include:C:,\\?\Volume{ID раздела}\ -allCritical -systemState -noVerify -user:UserName -password:Pwd -noInheritAcl -vssCopy -quiet

Здесь UserName / Pwd - учетка пользователя для подключения к шаре.

Для Windows Server 2012 работает более короткая инструкция:

%windir%\System32\wbadmin.exe start backup -backupTarget:\\сетевой путь\ -include:C: -systemState -noVerify -user:UserName -password:Pwd -quiet

Архивирование базы данных MS SQL Server (засунуть в батник):

sqlcmd -S SERVER -U sa -P [pwd] -i C:\backup.sql
"C:\Program Files\7-Zip\7z.exe" a \\[сетевой путь]\%date%.zip C:\Backup\DB.bak -[пароль на архив]

Содержимое backup.sql:

DECLARE @pathName NVARCHAR(512)
SET @pathName = 'C:\Backup\DB.bak'
BACKUP DATABASE DB TO DISK = @pathName WITH NOFORMAT, INIT, NAME = N'DB', SKIP, NOREWIND, NOUNLOAD, STATS = 10

Удалять архивы старше 30 дней с сохранением ежемесячного архива (задание запускается раз в месяц), батник:

NET USE V: \\[сетевой путь]
copy V:\day\DB%date%.zip V:\month\DB%date%.zip
forfiles /p V:\day /m *.zip /s /d -30 /c "cmd /c del @path /q"
NET USE V: /delete /yes

Резервное копирование документов, измененных за последние 7 дней:

echo %off
setlocal
1>nul chcp 1251

set day=-7
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "data=%dd%.%mm%.%yyyy%"

forfiles /P C:\docs /M * /S /D %data% /C "cmd /q /c if @isdir==FALSE echo @path" > C:\list_zip1.txt
forfiles /p C:\Users /m *.doc /s /D %data% /c "cmd /q /c echo @path" > C:\list_zip2.txt
forfiles /p C:\Users /m *.xls /s /D %data% /c "cmd /q /c echo @path" > C:\list_zip3.txt
forfiles /p C:\Users /m *.pdf /s /D %data% /c "cmd /q /c echo @path" > C:\list_zip4.txt
forfiles /p C:\Users /m *.txt /s /D %data% /c "cmd /q /c echo @path" > C:\list_zip5.txt
forfiles /p C:\Users /m *.jpg /s /D %data% /c "cmd /q /c echo @path" > C:\list_zip6.txt
forfiles /p C:\Users /m *.docx /s /D %data% /c "cmd /q /c echo @path" > C:\list_zip7.txt
forfiles /p C:\Users /m *.xlsx /s /D %data% /c "cmd /q /c echo @path" > C:\list_zip8.txt

C:\Progra~1\7-Zip\7z.exe a -spf -scsWIN -ssw -xr!~$*.* -pPassword \\backup-server\backup\%date%.7z @C:\list_zip1.txt @C:\list_zip2.txt @C:\list_zip3.txt @C:\list_zip4.txt @C:\list_zip5.txt @C:\list_zip6.txt @C:\list_zip7.txt @C:\list_zip8.txt

Вышеприведенный батник ищет файлы, которые были изменены за последние 7 дней, в указанных каталогах. Создаются списки с именами этих файлов. Затем все файлы, указанные в списках, архивируются.

Динамическое добавление колонки в датагрид Terrasoft 3.x

В функцию onprepare добавить:

var Column = Self.CreateComponent('DataGridColumn', 'colName');
grdData.ActiveView.Add(Column);
grdData.ActiveView.ItemsByName('colName').DataFieldName = 'DataFieldName';

для удаления колонки:

var ColumnObject = grdData.ActiveView.ItemsByName('colName');
grdData.ActiveView.RemoveItem(ColumnObject);

Создание SSH-ключа в Windows

SSH-ключ используется для подключения к серверу.
Генерируются две пары ключей: для сервера и для клиента, чтобы последний мог подключаться к серверу по SSH.

Для генерации ключей в Windows используется программа puttygen.
ssh key gen putty

Запустить программу, нажать кнопку Generate и дождаться окончания создания нового ключа.
Кнопка "Save public" - сохранить ключ для сервера.
Кнопка "Save private" - сохранить ключ для клиента.

Указать пароль для повышения надежности ключа.

Сбивается раскладка клавиатуры на сервере терминалов Windows Server 2008

При глючной раскладке клавиатуры на клиентском компьютере может глючить раскладка в терминальном сеансе Windows Server 2008.
Чтобы избежать этого, достаточно добавить параметр IgnoreRemoteKeyboardLayout типа REG_DWORD (32 bit) со значением 1 в следующую ветку реестра сервера терминалов: HKLM\System\CurrentControlSet\Control\Keyboard Layout

Резервное копирование сервера Debian с помощью Tartarus

Установка пакета Tartarus:

wget -O /etc/apt/sources.list.d/wertarbyte.list http://wertarbyte.de/apt/wertarbyte-apt.list
apt-get update
apt-get install tartarus

Создание файла конфигурации generic.inc в директории /etc/tartarus/:

> generic.inc
STORAGE_FTP_SSL_INSECURE="yes"
STORAGE_METHOD="FTP"
STORAGE_FTP_SERVER="1.2.3.4"
STORAGE_FTP_USER="12345"
STORAGE_FTP_PASSWORD="SecretPassword"
STORAGE_FTP_USE_SFTP="yes"
COMPRESSION_METHOD="bzip2"
LVM_SNAPSHOT_SIZE="1000M"
ENCRYPT_SYMMETRICALLY="yes"
ENCRYPT_PASSPHRASE_FILE="/etc/tartarus/backup.sec"
STAY_IN_FILESYSTEM="yes"

Там же создаем файл с паролем на архив:

> backup.sec
[passw]

Создаем профиль резервного копирования:

> root.conf
# /etc/tartarus/root.conf
#
# Чтение главного конфигурационного файла
source /etc/tartarus/generic.inc
# Имя профиля
NAME="root"
# Директория / Резервная копия
DIRECTORY="/"
# Не делать копии временных файлов
# несколько директорий отделяются пробелом
EXCLUDE="/tmp/"
# Без LVM снапшота
CREATE_LVM_SNAPSHOT="no"

Для ручного запуска копирования:

/usr/sbin/tartarus /etc/tartarus/root.conf

Теперь автоматизируем процесс создания резервной копии сервера:

crontab -e
PATH=/bin/:/sbin/:/usr/bin/:/usr/sbin/:/usr/local/sbin/:/usr/local/bin
0 1 1 * * /usr/sbin/tartarus /etc/tartarus/root.conf

Архивная копия будет создаваться раз в месяц.

Восстановление

Просмотр файлов в резервной копии:
Список файлов в архиве:

curl ftp://USER:PASS@YOURSERVER/home-20170501-0000.tar.bz2.gpg | gpg --decrypt | tar tpvj

Распаковка архива в /mnt/restore:

curl ftp:///USER:PASS@YOURSERVER/home-20170501-0000.tar.bz2.gpg | gpg --decrypt | tar xpvj -C /mnt/restore

Настройка брандмауэра для автоматического обновления Windows Server 2012 R2

По умолчанию в брандмауэре Windows открыт исходящий трафик и проблем с обновлением системы не возникает.
Если в целях безопасности исходящий трафик закрыт, то необходимо создать следующее правило для нормальной работы "Центра обновления Windows".

Создать правило для работы программы C:\Windows\system32\svchost.exe.
Удаленный порт: 80, 443.
Удаленный IP-адрес:
134.170.0.0/16
191.232.80.60
13.81.59.242
13.107.4.50
52.178.193.116
2.21.246.0/24
67.24.35.254
8.253.145.105
8.254.200.78
8.249.209.254

Вышеуказанные IP-адреса включают сервера для обновления Microsoft Security Essentials.

Отключение автозапуска диспетчера сервера Windows Server 2012

По умолчанию при входе на сервер Windows Server 2012 запускается Диспетчер сервера для всех пользователей.

Чтобы отключить автозапуск диспетчера необходимо открыть планировщик заданий, выбрать ветку "Библиотека планировщика заданий - Microsft - Windows - Server Manager" и удалить задание Server Manager.
windows server manager off

Работа 1С:Предприятие 7.7 на MS SQL Server 2014

Вопрос решается довольно-таки легко с использованием доработанного файла BkEnd.dll.

Не нужно менять системные файлы и режим совместимости базы данных. Да, и не получится это сделать для MS SQL Server 2014, т.к. режим совместимости с 2000-м sql-сервером не поддерживается.

Единственное, что нужно сделать - произвести реструктуризацию базы данных через конфигуратор. Например, добавить новый отчет и сохранить конфигурацию. При возникновении ошибки в конфигураторе "База данных не может быть открыта в однопользовательском режиме!" необходимо перезапустить SQL-сервер и повторить реструктуризацию.

Если в параметрах подключения базы 1С к SQL-серверу указан пользователь, не имеющий прав SA, то необходимо выполнить sql-запрос:

USE master
GO
GRANT VIEW SERVER STATE TO <пользователь>
GO

Установка Microsoft Security Essentials на Windows Server 2012

Установить режим совместимости Windows 7 для установочного файла и запустить его с параметром:
mseinstall.exe /disableoslimit

Но необходимо учитывать, что установка Microsoft Security Essentials на Windows Server 2012 нарушает лицензионное соглашение Microsoft.

Настройка интеграции Terrasoft 3.4 с MS Outlook 2013

Настройка интеграции Terrasoft 3.4 с MS Outlook 2013 производится стандартным способом через программу TSMSOfficeConfig.

Если возникает ошибка "MS Office Outlook не установлен в системе", то необходимо подправить значение переменной в сервисе scr_MSOfficeConsts (или scr_MSOfficeUtils), которая должна выглядеть следующим образом:

var SupportedMSOfficeVersionArray = new Array('15.0', '14.0', '12.0', '11.0', '10.0', '9.0');

здесь '15.0' - обозначение версии MS Outlook 2013.

terrasoft outlook2013 интеграция

Если Outlook каждый раз показывает предупреждение о попытке отправить через него письмо, то необходимо запустить Outlook c правами администратора и в настройках безопасности выбрать опцию "Никогда не предупреждать о подозрительной активности".

Примечание. Terrasoft Sales версии 3.3.1 тоже совместим с MS Outlook 2013. Нужно проверить, чтобы при запуске Terrasoft не было ошибки, связанной с пользователем fkeys, и отключить в Outlook 2013 надстройку "Outlook advanced security", которая использует библиотеку Terrasoft (OutlookSecurity.dll). В версии 3.4 такой библиотеки уже нет. Если эту надстройку не отключить, то Outlook будет зависать при вложении файла.

Ошибка при подключении к удаленному рабочему столу: «Удаленный сеанс отключен, т.к. клиентская лицензия удаленного рабочего стола, хранимая на этом компьютере, была изменена».

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

Ошибка может возникать на компьютерах с Windows 10.
Для исправления ошибки необходимо удалить содержимое ветки реестра HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing и запустить программу подключения к удаленному рабочему столу с правами администратора.

Сброс в заводские настройки смартфона Nokia Lumia 625

Для сброса настроек смартфона Nokia Lumia 625 необходимо выполнить следующее:

  1. Выключить питание смартфона
  2. Одновременно нажать кнопки "Уменьшение громкости" и "Питание".
  3. После вибрации смартфона отпускаем кнопку "Питание", но не отпускаем кнопку "Уменьшение громкости".
  4. Дождаться появления большого восклицательного знака и отпустить кнопку "Уменьшение громкости".
  5. Поочередно нажать кнопки: "Уменьшение громкости", "Увеличение громкости", "Питание" "Уменьшение громкости".
  6. После появления на экране шестеренок дождаться окончания сброса настроек и загрузки смартфона.

nokia lumia 625 hard reset

Настройка почты в JIRA с использованием SSL на Windows Server 2008

Настройки исходящего почтового сервера JIRA с использованием шифрования SSL:

JIRA mail server settings

При использовании этих настроек необходимо установить сертификат используемого почтового сервера. Сам сертификат можно экспортировать, если он уже был установлен на сервере, например, при использовании Outlook: Свойства браузера - Содержание - Сертификаты.

Стандартная инструкция для импорта сертификата для Java-машины из командной строки:

>cd /d C:\Program Files (x86)\Java\jre1.8.0_91\bin
>keytool -importcert -keystore ..\lib\security\cacerts -file server-certificate.cer
>set JAVA_TOOL_OPTIONS=-Djavax.net.ssl.trustStore="C:\Program Files (x86)\Java\jre1.8.0_91\lib\security\cacerts" -Djavax.net.ssl.trustStorePassword="changeit"

Предварительно файл server-certificate.cer скопировать в папку с программой keytool.
Пароль по умолчанию: changeit.

При удачном импорте сертификата будет сообщение: "Certificate was added to keystore".

Но! Для самоподписанных сертификатов данный вариант не работает. И при отправке тестового письма появляется сообщение об ошибке: " Could not connect to SMTP host; PKIX path building failed: unable to find valid certification path to requested target".
В этом случае можно использовать плагин "SSL for JIRA".

Устанавливаем плагин SSL for JIRA и настраиваем импорт сертификата в админке JIRA:
JIRA save certificate

После сохранения сертификата он появится в списке установленных. Перезапускаем службу JIRA и проверяем отправку тестового письма.

Настройка VPN-сервера с функцией интернет-шлюза (анонимный вебсерфинг)

VPN-сервер будет использоваться как интернет-шлюз для того, чтобы скрыть IP-адрес пользователей. В этом случае пользователи будут VPN-клиентами.

В качестве VPN-сервера будет использоваться виртуальный сервер на Debian с OpenVPN. Стоимость виртуального сервера в нынешнее время крайне невысока. Даже домашние пользователи могут позволить себе поднять VPN-сервер за 4 евро в месяц и вкусить все прелести анонимного вебсерфинга или создать частную защищенную сеть over internet.

Базовая настройка OpenVPN приведена здесь. Отличаться будут только файлы конфигурации сервера и клиента.

server.conf:

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0
cipher AES-256-GCM
;compress lz4-v2 #v.2.4
;push "compress lz4-v2"
;comp-lzo
;max-clients 2
persist-key
persist-tun
status /etc/openvpn/openvpn-status.log
log /etc/openvpn/openvpn.log
verb 3
explicit-exit-notify 1

Включаем форвардинг.
Настраиваем IPTABLES. В файл /etc/rc.local добавить:

iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Примечание: в новых версиях Debian отсутствует файл rc.local. Чтобы не париться с его добавлением и настройкой служб, можно выполнить вышеприведенные команды IPTABLES, сохранить их:

iptables-save > /etc/iptables/rules.conf

и добавить в конец файла /etc/network/interfaces

pre-up iptables-restore < /etc/iptables/rules.conf

Если pre-up не работает, то создать файл iptables (раздать права на выполнение) в директории if-pre-up.d со следующим содержимым:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables/rules.conf

Перезагружаем сервер и переходим к настройке Windows-клиента.

Настройка OpenVPN на Windows-клиенте

Скачать и установить OpenVPN для Windows.
В C:\Program Files\OpenVPN\config закинуть ключи, сертификаты и конфиг:
ca.crt
ta.key
user.crt
user.key
vpn.ovpn

Содержимое файла vpn.ovpn:

client
dev tun
proto udp
remote XX.XX.XX.XX 1194
ping 10
tls-client
remote-cert-tls server
ca ca.crt
cert user.crt
key user.key
tls-auth ta.key 1
cipher AES-256-GCM
;comp-lzo no
;comp-lzo
verb 3
pull

Запускаем службу OpenVPN или GUI и проверяем свой внешний IP-адрес, который должен совпадать с внешним IP-адресом VPN-шлюза.

Если на клиентском компьютере блокируется исходящий трафик, то для работы VPN необходимо открыть UDP-порт 1194.

Примечания:
Если клиентский сертификат защищается паролем (build-key-pass), то в клиентский конфиг можно добавить команду

askpass file.txt

где file.txt - файл с паролем. В этом случае не нужно будет вручную вводить пароль.

OpenVPN версии 2.4.4 может использовать компрессию lz4-v2, которая менее требовательна к ресурсу процессора. Но на этой компрессии у меня резко упала скорость на внешние сети, поэтому пришлось оставить старушку lzo.

По умолчанию использует топология сети net30. Для первого клиента будут использоваться следующие адреса:
10.8.0.4 : network address
10.8.0.5 : virtual remote endpoint; non pingable; only used for routing
10.8.0.6 : client IP address
10.8.0.7 : network broadcast address

При смене IP-адреса для Windows-клиента необходимо ребутнуть TAP-адаптер.

Создание загрузочной флешки Windows Server 2012 — Zotac WinUSB Maker

Стандартный образ для установки Windows Server 2012 занимает более 5 ГБ. Поэтому для установки целесообразней использовать usb-накопитель.

Для создания загрузочной флешки Windows Server 2012 используется программа Zotac WinUSB Maker.

Zotac WinUSB Maker работает по принципу "drag and drop".
zotac winusb maker

В окно программы необходимо перетащить флеш-диск из проводника и затем перетащить установочный образ ISO.
Флешку предварительно отформатировать в NTFS и на запрос "Нужна ли совместимость с EFI?" уверено ответить "нет". Иначе флешка будет отформатирована в FAT32 и на нее не влезут многогигабайтные установочные файлы Windows Server 2012.

Изменение времени в Debian

Изменение временной зоны

ln -sf /usr/share/zoneinfo/Europe/Kiev /etc/localtime

Дополнительно: изменить название зоны в файле /etc/timezone

Изменение даты и времени

date MMDDhhmmYYYY.ss

Если нужно изменить только время:

date --set hh:mm

Удаление данных с флешки с помощью команды dd в Ubuntu без возможности восстановления

sudo dd if=/dev/zero of=/dev/sdb status=progress

Здесь /dev/sdb - наша флешка

Дождаться сообщения об окончании свободного места на флешке.
После записей нулей необходимо создать новую файловую систему и раздел на флешке, например, с помощью GParted.

Создание загрузочной флешки с образом Acronis Backup

Исходные данные: ISO-образ Acronis Backup Boot.
Необходимо создать загрузочную флешку с этим образом.

Для этого используется бесплатная программа WinSetupFromUSB.

Указываем путь к ISO-образу и нажимаем кнопку RMPrepUSB

В окне RMPrepUSB выбираем загрузочный сектор "XP/BartPE bootable" и нажимаем "Подготовить диск". По окончании - кнопку "Установить Grub4DOS".

Закрываем окно RMPrepUSB и нажимаем кнопку "GO".

Сигналом об успешном окончании создания загрузочной флешки будет сообщение "Job done".

Для клонирования загрузочной флешки можно использовать утилиту dd в Ubuntu:

dd if=/dev/sdb of=/flash.img
dd if=/flash.img of=/dev/sdb

Первая команда создает файл-образ флешки. Вторая - записывает образ на новую флешку (/dev/sdb). Перед записью можно размонтировать раздел флешки: umount /dev/sdb1

VMware Workstation: загрузка виртуальной машины с флешки

В VMware Workstation нет возможности загружать виртуальную ОС с флешки. Но это можно исправить с помощью Plop Boot Manager.

Распаковываем образ plpbt.iso и монтируем его в привод виртуальной машины. Загружаемся с привода и в меню загрузки выбираем USB:

Флешка должна быть доступна в виртуальной машине.

Настройка сетевой карты на ноутбуке Asus K50C под Ubuntu 14.04 i386 (Xubuntu)

После установки Xubuntu 14.04 на ноутбук Asus K50C сетевая карта как бы есть, но не работает.

Для исправления этого косяка необходимо отредактировать файл конфигурации GRUB - /etc/default/grub

Находим строчку

GRUB_CMDLINE_LINUX_DEFAULT="quite splash"

И в кавычки добавляем параметр pci=nomsi

GRUB_CMDLINE_LINUX_DEFAULT="quite splash pci=nomsi"

Обновляем GRUB:

update-grub2

Если после перезагрузки сетевая карта не завелась, то можно попробовать удалить и установить заново службу network-manager.

Настройка видеокарты SiS672 на ноутбуке Asus K50C в Ubuntu 14.04 i386 (Xubuntu)

Настройка видеокарты SiS672 на ноутбуке Asus K50C в Ubuntu 14.04 i386 (Xubuntu)

Обратите внимание, решение, приведенное в этой статье, работает только для Ubuntu (Xubuntu) 14.04 i386. Для поздних версий Ubuntu, а также для 64-разрядных систем этот способ не применим.

После установки Xubuntu 14.04 ноутбук Asus K50C работает только при разрешении экрана 640х480.

Если подсунуть системе драйвер Vesa, то разрешение поднимается до 1024 на 768, что далеко до идеала.

Для настройки родного разрешения 1368х768 (1366х768) необходимо следующее:
Скачать драйвер SISIMEDIA и установить его:
dpkg -i xserver-xorg-video-sisimedia-1.0.1-1zatherz1_i386.deb

На ругательства установщика (не найдено ядро Иксов) не обращаем внимания.

Внести изменения в файл конфигурации X-сервера:
В папку /usr/share/X11/xorg.conf.d добавляем файл 70-custom.conf со следующим содержимым

Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
EndSection

Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "built-ins"
EndSection

Section "Module"
Load "glx"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection

Section "Server Flags"
Option "IgnoreABI"
EndSection

Section "Device"
Identifier "Card0"
Option "UseTiming1366" "yes"
Driver "sisimedia"
BusID "PCI:1:0:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

В этом конфиге самыми важными параметрами являются UseTiming1366 и указание драйвера SISIMEDIA.

Перезагрузка. Алилуйя!

Настройка сетевой карты на ноутбуке Asus K50C под Ubuntu 14.04 i386 (Xubuntu)

Настройка МФУ Canon i-SENSYS MF6180dw в Ubuntu (Xubuntu)

МФУ Canon i-SENSYS MF6180dw по сравнению с популярным, но несколько глючным Samsung SCX-4833FR отличается более высокими: скорость работы, шум, размеры. И более трудной настройкой под Ubuntu.
Этот МФУ обладает всем необходимым для небольшого офиса: двухсторонние печать и сканирование, печать/сканирование флешка, SMB, электронная почта, расширенный лоток на 500 листов, картриджи обычной и увеличенной емкости (719 и 719H), отличающиеся легкостью перезаправки.

На фото ниже представлены два МФУ, белый - это Canon.

Настройка принтера Canon i-SENSYS MF6180dw в Ubuntu (Xubuntu)

На официальном сайте Canon доступны драйвера для Ubuntu. Если в Ubuntu после установки этих драйверов принтер сразу заводится, то в Xubuntu принтер не устанавливается. Приходится идти другим путем: во время установки принтера через AppSocket (установка через IPP-соединение не работает) скормить ему файл PPD, который есть в официальном установщике.

Примечание: печать работает с приминением драйвера HP серия Designjet. В аплете "Printers", в окне выбора драйвера выбираем драйвер HP (рекомендуемый).
Driver: HPPD0011.PPD
HP Designjet T920 PostScript
через AppSocket/ HP JetDirect

Настройка сканнера Canon i-SENSYS MF6180dw в Ubuntu (Xubuntu)

Со сканнером придется повозиться чуть больше, т.к. официально Canon i-SENSYS MF6180dw не поддерживает сканирование в Linux. Но на помощь снова приходит пакет XSane.
Перед установкой XSane необходимо удалить ранее установленные сканеры. Если в сети есть другие сканеры, то XSane подцепит в первую очередь их и не дойдет до нашего сканера Canon i-SENSYS MF6180dw.

sudo apt-get install xsane git
git clone git://git.debian.org/sane/sane-backends.git
cd sane-backends
./configure
make
sudo make install
sudo adduser username scanner
sudo ldconfig -v | grep libsane

Последняя команда должна показать самую старшую библиотеку libsane на первом месте.

Запускаем XSane, ждем 1-2 минуты. Перед сканированием необходимо перевести Canon i-SENSYS MF6180dw в режим "Удаленный сканер".

Это архидолго, возможно в будущих версиях Sane backends все будет намного быстрее.

Буду признателен, если кто-то поделится решением, как ускорить процесс обнаружения сетевого сканера Canon i-SENSYS MF6180dw.

Примечание: сканирование в Ubuntu возможно без танцев с бубном в программе Simlpe Scan, но в настройках программы приходится ждать несколько минут обнаружения сканера.

Принудительное завершение зависшей службы Windows

Зависшая служба Windows не реагирует на команды запуска и остановки.
Управление службой через стандартную оснастку недоступно. Использование команды sc также не дает результата.

C:\Windows\system32>sc start ZvitGrp1
[SC] StartService: ошибка: 1056:
Одна копия службы уже запущена.

C:\Windows\system32>sc stop ZvitGrp1
[SC] ControlService: ошибка: 1061:
Служба в настоящее время не может принимать команды.

Для того, чтобы убить зависшую службу, необходимо получить ее ID и воспользоваться командой taskkill:

C:\Windows\system32>sc queryex ZvitGrp1

Имя_службы: ZvitGrp1
Тип : 10 WIN32_OWN_PROCESS
Состояние : 3 STOP_PENDING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
Код_выхода_Win32 : 0 (0x0)
Код_выхода_службы : 0 (0x0)
Контрольная_точка : 0x0
Ожидание : 0x0
ID_процесса : 56624
Флаги :

C:\Windows\system32>taskkill /PID 56624 /F
Успешно: Процесс, с идентификатором 56624, успешно завершен.

Все действия выполнять из командной строки, запущенной с правами администратора.

Ошибка при установке 2xclient в Ubuntu (Xubuntu)

При установке 2xclient в Ubuntu (Xubuntu) появляется ошибка "Неразрешимая зависимость pcscd".

Для исправления ошибки необходимо выполнить следующее:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo dpkg -i 2XClient.deb
sudo apt-get -f install

При установке 2xclient на Xubuntu 18.04 может возникать ошибка при запуске программы: 2XClient: error while loading shared libraries: libQtDBus.so.4: cannon open shared obkect file: No such file or directory.

Исправление:

sudo apt-get install libqtdbus4
sudo apt-get install libqtgui4

В Xubuntu 20.04 отсутствуют библиотеки Qt4, поэтому перед установкой RAS client необходимо выполнить:

sudo add-apt-repository ppa:rock-core/qt4

Ошибка при запуске 1С 7.7 SQL — доступ возможен только из одного каталога

При запуске 1С 7.7 SQL возникает ошибка: "Доступ к базе данных на сервере возможен только из одного каталога информационной базы!".
1s error sql

Первый пользователь запускает 1С без ошибок, последующие не могут зайти.

Для исправления ошибки необходимо добавить для пользователя SQL-сервера роль processadmin: SQL Server - Security - Logins - вкладка Server Roles.

Роль processadmin позволяет закрывать sql-соединения и используется очень редко.

Viber не запускается в Xubuntu (Ubuntu)

При запуске Viber в Xubuntu (Ubuntu) появляется сообщение об ошибке:
This application failed to start because it could not find or load the Qt platform plugin "xcb".

Для исправления ошибки необходимо установить пакет qt5-default.

Watch Dog в CRM Terrasoft — отправка информационных писем средствами MS SQL Server

В CRM Terrasoft есть функции отправки писем через Outlook, но их неудобно использовать для рассылок по расписанию, т.к. это требует постоянно запущенного клиента Terrasoft.

Для решения этой задачи можно использовать встроенную функцию sp_send_dbmail MS SQL Server.

Включение процедуры посредством запроса в MS SQL Management Studio:

sp_CONFIGURE 'show advanced', 1
GO
RECONFIGURE
GO
sp_CONFIGURE 'Database Mail XPs', 1
GO
RECONFIGURE
GO

Настроить учетку и профиль для отправки почты в том же MS SQL Management Studio: Management - Database Mail - Configure Database Mail.
database mail account

database mail profile

Настройка безопасности профиля (почти ничего не меняем):
database mail profile security

Отправляем тестовое сообщение для проверки настроек. Необходимо учитывать, что служба Database Mail работает далеко не со всеми почтовыми серверами.

Теперь можно создать Job для отправки информационных писем по расписанию с помощью SQL Server Agent. В SQL-скрипт вставляем функцию sp_send_dbmail.

Пример:

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Watch dog',
@recipients = @EmailHead,
@body = @BodyMessage,
@body_format = 'TEXT',
@subject = 'Уведомление о необработанных сообщениях в Террасофт';

Здесь
'Watch dog' - название профиля, созданного на предыдущем шаге
@EmailHead, @BodyMessage - переменные типа "строка", с помощью которых передаются результаты SQL-запросов.

С помощью конструкции CURSOR можно отсылать не только одиночные письма, но и делать рассылки (проходить циклом по таблице адресов электронной почты). Например, отправлять контрольные письма-уведомления по невыполненным задачам для всех сотрудников или делать рассылки по контрагентам. Последний пример может быть наиболее актуальным, так как штатное средство рассылки Terrasoft через Outlook весьма медленное.

Идея использования Database Mail взята из блога Террасофт Александра Свистунова.

Настройка SQL Server Agent

SQL Server Agent - служба MS SQL Server 2008, позволяющая запускать SQL-скрипты по расписанию.

Примером такого SQL-скрипта может являться функция отправки e-mail в зависимости от набора данных.

По умолчанию SQL Server Agent отключен и запуск этой службы не всегда является тривиальной задачей.

Для использования SQL Server Agent необходимо выполнить следующее:

  1. Включить процедуры агента
    sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    sp_configure 'Agent XPs', 1;
    GO
    RECONFIGURE
    GO
  2. Создать пользователя (UserSQLAS), под которым будет запускать системная служба "SQL Server Agent (MSSQLSERVER)". Указать для этой службы учетную запись нового пользователя.
    sql server agent service
    По умолчанию служба "SQL Server Agent (MSSQLSERVER)" запускает под учеткой "Сетевая служба", которая не имеет доступ к MS SQL Server. И тут два варианта: или расшаривать доступ для "Сетевой службы", или создавать отдельную учетку. Мы выбрали последний вариант.
  3. В MS SQL Server Management Studio создать новый логин с типом "Windows authentiaction" для MS SQL Server с именем, созданным на предыдущем шаге (UserSQLAS). Роль: sysadmin. На вкладке "User Mapping" указать доступ к системной базе данных msdb и к тем базам, к которым будет обращаться агент. При необходимости настроить права пользователя для конкретных баз данных.
  4. Запустить службу "SQL Server Agent (MSSQLSERVER)" через диспетчер служб или через MS SQL Server Management Studio.

Примечания по SQL Server Agent

  • Программа SQL Server Agent располагается по следующему пути (может отличаться в зависимости от места установки MS SQL Server: C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\SQLAGENT.EXE
  • Владельцем (Owner) для Job установить пользователя UserSQLAS.
  • Возможные ошибки при запуске SQL Server Agent:
    - Unable to start service SQLSERVERAGENT on server.(mscorlib) Additional information: the SQLSERVERAGENT service started and then stopped.
    - SQLServer Error: 229, The EXECUTE permission was denied on the object 'sp_sqlagent_has_server_access', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (ConnIsLoginSysAdmin).

Сброс пароля пользователя Ubuntu

Сброс пароля пользователя Ubuntu может понадобиться, если Вы забыли пароль администратора системы.

Инструкция по сбросу пароля:

  1. Во время загрузки компьютера активно нажимать кнопку Esc для входа в меню загрузки.
  2. Появится меню, в котором необходимо выбрать "Ubuntu дополнительные параметры"
  3. В следующем меню выбрать "Safe mode"
  4. Затем строчку "root"
  5. Появится командная строка, в которой набрать команду:
    mount -o rw,remount /
  6. Теперь можно поменять пароль пользователя user:
    passwd user

Да, пребудет с Вами Контрол, Альт и Делит!

Terrasoft: переход в раздел с включением фильтра

В Terrasoft CRM есть встроенные функции для программного перехода в другой раздел, типа gotoworkspace(). Но эти функции используют фильтрацию только по одному или несколько ID.
Если после перехода в раздел требуется включение фильтрации по какому-то полю (фильтру), то это можно реализовать с помощью ниже приведенной функции FilterByFieldValue().

function amiPricesAllOnExecute(ActionMenuItem, Sender) {
var OfferingName = BaseGridArea.GridDataset.DisplayValues('OfferingID'); //сохраняем значение параметра, по которому будем фильтровать
var MainWindow = Connector.Attributes('MainWindow');
MainWindow.ScriptControl.Run('ShowWorkspace', 'wnd_OffMoveWorkspace'); //переходим в раздел wnd_OffMoveWorkspace
var WorkspaceWindow = MainWindow.ComponentsByName('wndWorkspace').Window;
FilterByFieldValue(WorkspaceWindow, 'OfferingName', OfferingName); //вызов функции фильтрации
var WorkspaceDataset = WorkspaceWindow.ComponentsByName('dlOffMove').Dataset;
RefreshDataset(WorkspaceDataset); //обновление раздела (аналог кнопки "Применить" в фильтрах)
}

function FilterByFieldValue(WorkspaceWindow, DataFieldName, DataFieldValue) {
var FBControl = WorkspaceWindow.ComponentsByName('fbcFilters');
var Dataset = FBControl.DatasetLink.Dataset;
FBControl.FiltersBuilder.ClearFilter();
var DataField = Dataset.DataFields.ItemsByName(DataFieldName);
var FBItem = FBControl.FiltersBuilder.RootItems.CreateItemByDataField(DataField);
FBItem.Value = DataFieldValue;
FBItem.Operator = totEqual;
FBControl.FiltersBuilder.RootItems.Add(FBItem);
EnableDatasetFilters(Dataset, false);
FBControl.ApplyFilter();
FBControl.Refresh();
}

Настройка Database Mail на аккаунт Google

Micrsoft SQL Server имеет сервис Database Mail для отправки служебных писем.

К сожалению, этот сервис работает далеко не со всеми почтовыми серверами.

Необходимо использовать следующие настройки аккаунта в Database Mail для работы с почтовым ящиком Google:

Server name: smtp.gmail.com
Port: 587
This server requires a secure connection (SSL): Enabled
Basic Authentication: e-mail / password

Также необходимо проверить, чтобы в аккаунте Google была включена функция доступа для непроверенных приложений:
https://www.google.com/settings/security/lesssecureapps
google account settings

При других настройках могут возникать ошибки:

  • The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 2 (2016-04-13T14:30:26). Exception Message: Cannot send mails to mail server. (Серверу SMTP требовалось защищенное соединение, или подлинность клиента не была установлена. Ответ сервера: 5.5.1 Authentication Required. Learn more at
  • The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 2 (2016-04-13T14:20:49). Exception Message: Cannot send mails to mail server. (Серверу SMTP требовалось защищенное соединение, или подлинность клиента не была установлена. Ответ сервера: 5.7.0 Must issue a STARTTLS command first.
  • The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 3 (2016-04-13T14:19:00). Exception Message: Cannot send mails to mail server. (Время ожидания операции истекло.).

Монтирование флешек в формате ExFAT в Ubuntu

По умолчанию Ubuntu не поддерживает флешки в формате ExFAT. Этот формат используется для работы с файлами больше 4 ГБ в системах Windows.

Для включения формата ExFAT в Ubuntu необходимо установить следующие утилиты:

sudo apt-get install exfat-fuse exfat-utils

Настройка интернет-банкинга в Ubuntu

Большинство интернет-банкингов, предлагаемых такими банками как "Аваль" и "Укрсиббанк", могут работать в Ubuntu, но требуют Java-машины.

Для установки Java в Ubuntu делаем следующее:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

В результате также будет установлен java-плагин для браузера Mozilla Firefox.

Следует учитывать, что под Ubuntu не всегда распознаются USB-токены, но с обычными флешками интернет-банкинг работает нормально.

Дополнительная информация о Java в Ubuntu

Изменение разрешения монитора с помощью Xrandr в Ubuntu

В некоторых случаях Ubuntu не может правильно подобрать разрешения для монитора. Например, родным разрешением для монитора Nec LCD2070nx является 1600х1200, а в системе доступно только 1024х768.

Исправить это можно с помощью команды Xrandr.

Получение информации о графическом режиме:

cvt 1600 1200 60

Результат команды:

# 1600x1200 59.87 Hz (CVT 1.92M3) hsync: 74.54 kHz; pclk: 161.00 MHz
Modeline "1600x1200_60.00" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync

Установка нового режима с использованием результата предыдущей команды:

xrandr --newmode "1600x1200_60.00" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync
xrandr --addmode VGA1 1600x1200_60.00
xrandr --output VGA1 --mode 1600x1200_60.00

Здесь VGA1 - название графического вывода (можно определить запустив команду Xrandr без параметров).

Если разрешение изменилось удачно, то можно поставить последние три команды Xrandr в скрипт SH и поместить в автозагрузку.

Добавление программ в автозагрузку Ubuntu (Xubuntu)

В меню "Настройки" выбрать "Сеансы и запуск" (Xubuntu).
На вкладке "Автозапуск приложений" добавить нужную программу. В автозапуск можно добавлять скрипты SH (первая строчка #!/bin/bash).
xubuntu startup programm

Ошибка «Медок» — не указан зарегистрированный отладчик jit

При запуске программы "Медок" появляется ошибка "Не указан зарегистрированный отладчик jit".

Ошибка возникает, если "Медок" не может получить доступ к файлу UniCrypt.exe (например, если эта программа запрещена политикой безопасности сервера).

Установка МФУ Canon MF3010 в Ubuntu

Запустить МФУ Canon MF3010 в Ubuntu дело не тривиальное, но возможное.

Настройка печати Canon MF3010

  1. Скачать драйвер принтера LT UFRII/UFRII для Linux v2.70
  2. Установить два пакета:
    • cndrvcups-common_2.70-1_amd64.deb
    • cndrvcups-ufr2-uk_2.70-1_amd64.deb

    Названия пакетов могут отличаться в зависимости от разрядности Debian.

  3. Подключаем принтер Canon MF3010, система распознает его и устанавливает необходимые дрова.

Настройка сканирования Canon MF3010

Со сканером Canon MF3010 больше заморочек, но не настолько все печально, как с некоторыми моделями сканеров Canon, которые не идут под Ubuntu от слова "вообще".

  1. Установить XSane с приблудами:
    sudo apt-get install xsane libusb-dev git
    git clone git://git.debian.org/sane/sane-backends.git
    cd sane-backends
    ./configure
    make && sudo make install
  2. Скопировать файл libsane.rules из папки sane-backends/tools/udev/ в папку /etc/udev/rules.d
  3. Добавить пользователя в группу scanner:
    sudo adduser username scanner

Для сканирования использовать программу XSane.

Ошибка №1824 присоединения базы данных к MS SQL Server

Во время присоединения (attach) базы данных к MS SQL Server появляется ошибка: Cannot attach a database that was being restored . (Microsoft SQL Server, Error: 1824).
База данных не присоединяется.
attach error 1824

Для обхода этой ошибки можно сделать "финт ушами":

1. Создать новую базу данных с таким же названием, как и присоединяемая.
2. Отсоединить новую базу данных и переместить файлы базы данных в другую папку.
3. Присоединить новую базу данных.
4. Перевести новую базу данных в режим "оффлайн".
5. Вместо файлов новой базы данных поставить файлы базы данных, которую нужно присоединить.
6. Перевести базу данных в режим "онлайн".

Просмотр журнала транзакций MS SQL Server

Для просмотра журнала транзакций MS SQL Server используется недокументированная функция DBCC:

DBCC LOG('DB_name', 3)

Результат функции DBCC:
dbcc mssql server

Важно понимать, что журнал транзакций не предназначен для пользователей и сисадминов баз данных. Это служебная фишка MS SQL Server. Данные в журнале хранятся в шестнадцатиричном виде. Но поддаются визуальному представлению в удобном виде с помощью платной программы ApexSQL Log.

Просмотр файлов DBF с помощью DBFViewerPlus

Для просмотра файловых баз данных в формате DBF используется программа DBF Viewer Plus (Windows-платформа). Программа DBF Viewer Plus имеет простой понятный интерфейс и позволяет производить поиск и сортировку записей.
dbf viewer plus

Отдельное спасибо говорим разработчику программы Алекс Нолан.

Проверка украинской орфографии в LibreOffice под Ubuntu

Для установки модуля проверки украинской орфографии в офисном пакете LibreOffice под Ubuntu необходимо выполнить следующую команду в терминале:

sudo apt-get install aspell-uk myspell-uk

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

Ошибка интеграции Terrasoft-Excel — пользователь не может обновлять записи

В Terrasoft CRM версии 3.3.2.275 есть досадная ошибка, которая не позволяет пользователю, не обладающему правами администратора, использовать интеграцию с MS Excel c признаком "Обновлять существующие записи". Т.е. пользователь может создавать новые записи в Terrasoft, но не может изменять их.

Нелепость этой ошибки заключается в халатности разработчиков Terrasoft: программиста, тестировщика, их начальников.

Для исправления ошибки необходимо чуток подправить сервис USI: Dataflow\Library\scr_DataflowUtils.
В функции InitRecordUpdateQuery(ImportObject) этого сервиса найти строку кода:

AddFieldParamCompareFilter(ImportObject.UpdateQuery.Filters, ImportObject.Table.Fields('ID'), ImportObject.TableName, ImportObject.UpdateQueryIDParam, cotEqual);

исправить на:

AddFieldParamCompareFilter(ImportObject.UpdateQuery.Filters, ImportObject.Table.Fields('ID'), ImportObject.TableName.SQLName, ImportObject.UpdateQueryIDParam, cotEqual);

Форматирование флешки в XUbuntu (Ubuntu) с помощью GParted

Для форматирования флешки в Xubuntu (Ubuntu) используется программа GParted.
ubuntu format flash gparted
Перед форматированием необходимо выбрать нужное устройство (флеш-накопитель) и отмонтировать его. После этого станет доступной команда для форматирования.

Обновление датагрида Terrasoft CRM

По умолчанию датагрид обновляется после нажатия кнопки ОК в карточке редактирования записи.

Если необходимо выполнить дополнительное обновление детали, то можно использовать функцию SendNotify() из скрипта src_WindowsUtils.

Вызываем эту функцию в обработчике AfterPost карточки редактирования:

SendNotify(Self, 'MSG_REFRESHGRID');

В скрипте датагрида детали добавляем обработчик OnNotify:

if ((Message == 'MSG_REFRESHGRID') && (Sender.Name == 'wnd_AccountCreditLimitDataEdit')) {
RefreshDataset(dlData.Dataset);
}

wnd_BaseGridAreaOnNotify(ScriptableService, Sender, Message, Data);

Здесь wnd_AccountCreditLimitDataEdit - окно редактирования, которое и отправляет Notify после своего закрытия. RefreshDataset() - функция обновления датасета из скрипта src_DB.

Редактирование меню Проводника «Отправить»

В меню Проводника, которое появляется при клике правой кнопой мыши по файлу, есть пункт "Отправить".

С помощью этого пункта можно отправить файл одним из способов (электронная почта, Skype).

Для редактирования меню "Отправить" необходимо перейти в папку %AppData%\Microsoft\Windows\SendTo\ и изменить свойства ярлычков. Например, можно создать новый ярлык Outlook со следующей строкой запуска:

"C:\Program Files\Microsoft Office\Office14\OUTLOOK.EXE" /c ipm.note /a

Настройка почтовой программы для пункта "Адресат" выполняется в редакторе реестра, ветка HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command.

Переадресация трафика с одного сервера на другой с помощью IPTABLES

Рассматривается пример перевода трафика с одного внешнего IP-адреса на другой с помощью IPTABLES.
Данный вариант может использоваться для скрытия IP-адреса второго сервера.

Первый сервер Debian имеет IP-адрес X, второй - Y.

По умолчанию IPTABLES работает на сервере X и пропускает весь трафик.
Для перевода трафика используется две команды:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport port1 -s Z -j DNAT --to Y:port2
iptables -t nat -A POSTROUTING -j MASQUERADE

Здесь port1, port2 - произвольные порты. Например, 3389.
-s Z - указание IP-адреса источника, трафик с которого будет форвардиться. Источник можно не указывать. Обязательно указание сетевого интерфейса eth0.

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

iptables -t raw -A PREROUTING -i eth0 -p tcp --dport port3 -s Z -j DROP

Фильтры INPUT DROP не всегда могут работать, т.к. они стоят после PREROUTING.

Открываем дополнительные порты и дропаем весь трафик:

iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
iptables -P INPUT DROP

Примечание: перед дропанием трафика желательно установить необходимые программы, например, mc.

Дополнительные команды IPTABLES

Вывод списка всех правил

iptables -n -L -v --line-numbers

То же самое, только для цепочки nat

iptables -t nat -L -n

Очистка всех правил

iptables -F

или только цепочки nat

iptables -t nat -F

Удаление правил:

iptables -t nat -L PREROUTING --line-numbers
iptables -t nat -D PREROUTING [line number]

для фильтров:

iptables -D INPUT [line number]

Анализа сетевого трафика

tcpdump -n not port 22

Сохранение правил IPTABLES

iptables-save > /etc/iptables/rules.conf

Добавляем в конец файла /etc/network/interfaces следующие строки (или в другой конфиг, где инициализируется сетевой интерфейс):

pre-up sysctl net.ipv4.ip_forward=1
pre-up iptables-restore < /etc/iptables/rules.conf

Первая строка включает форвардинг пакетов, который по умолчанию отключен.

Для ежедневного сброса правил IPTABLES добавляем в файл /etc/crontab:

0 0 *** iptables-restore < /etc/iptables/rules.conf

Advanced Host Monitor — простой мониторинг серверов и сетевых ресурсов

Advanced Host Monitor - простая и удобная программа для мониторинга состояния серверов и сетевых ресурсов. На сайте разработчиков можно скачать пробную 30-дневную версию.

Advanced Host Monitor прекрасно становится на Windows Server 2008 и на другие версии семейства Windows.

После установки Advanced Host Monitor содержит ряд преднастроенных ресурсов для мониторинга, которые можно смело удалить и приступить к созданию своих.
advanced host monitor

При добавлении новой задачи необходимо указать адрес ресурса и выбрать Alert profile - действие, которое будет выполняться при недоступности ресурса:
host monitor new task
В нашем случае выбираем Send e-mail - отправка уведомления по электронной почте.

Для создания нового профиля для оповещения или редактирования существующего необходимо войти в список профилей.
host monitor profile
Для каждого профиля можно настроить не только действия при недоступности серверов (Bad status actions), но и действия при переходе устройства в нормальный режим (Good status actions).

При настройке профиля Send e-mail необходимо указать настройки почтового сервера, через который будут отправляться электронные письма.

Перед запуском Advanced Host Monitor в качестве службы необходимо задать пароль для пользователя Admin: User - Operators.

Установка службы:

hostmon.exe /InstallService

Ключ InstallService можно прописать в ярлык запуска программы, запустить и потом убрать ключ.

После установки службы работа с Advanced Host Monitor будет доступна только через веб-консоль - rcc.exe.

Для мониторинга каналов интернет локальных провайдеров необходимо включить на маршрутизаторе функцию обнаружения ping.

Проверка диска в Ubuntu (Linux)

В один прекрасный момент компьютер под управлением Ubuntu перестает загружаться, выдавая дисковую ошибку:

error: failure reading sector
from hd0
Entering rescue mode...
grub rescue >

Это верный признак того, что жесткий диск начал сыпаться и скоро полностью выйдет из строя. В качестве временной меры можно загрузиться с live-cd Ubuntu и запустить проверку диска с автоматическим поиском плохих секторов и исправлением ошибок:

sudo fdisk -l
sudo fsck -y -f -c /dev/sda1

С помощью первой команды определяем устройство, которое будем сканировать. В нашем случае это /dev/sda1.
Используемые ключи для команды fsck:
-y - отвечать на все вопросы "да"
-f - принудительная проверка диска
-с - искать плохие сектора

Terrasoft: изменение логина пользователя

В программе Terrasoft нет возможности изменить логин пользователя.

Но если очень хочется, то необходимо выполнить следующее:

  1. Изменить логин MS SQL сервера (Security -> Logins)
  2. Изменить имя пользователя базы данных (Databases -> Terrasoft -> Security -> Users)
  3. Изменить соответствующую запись в таблице tbl_AdminUnit
  4. Сгенерировать запрос новых лицензий и загрузить их в Terrasoft

Пункты 1-3 можно выполнить с помощью SQL-скрипта:

ALTER LOGIN OldUser WITH NAME = NewUser
ALTER USER OldUser WITH NAME = NewUser
UPDATE tbl_AdminUnit SET Name = 'NewUser ', SQLObjectName = 'NewUser ' WHERE SQLObjectName = 'OldUser'

При этом новый пользователь останется привязанным к старом контакту в Terrasoft с сохранением всех прав доступа.

Ошибка Remmina: невозможно подключиться к серверу RDP

При подключении к серверу терминалов с помощью клиента Remmina (Ubuntu) появляется сообщение об ошибке:
Ошибка Remmina при подключении RDP

Такая ошибка может возникать при обновлении сертификата на сервере терминалов. Remmina, в отличии от 2x client, не обрабатывает новый сертификат. Чтобы исправить ошибку, необходимо удалить файл known_host в папке /home/user/.freerdp.

Приложения JAVA не запускаются в Internet Explorer 11 в Windows Server 2008 R2

Internet Explorer 11 с настройками повышенной безопасности под Windows Server 2008 R2 не поддерживает JAVA. Чтобы исправить сей невразумительный факт необходимо добавить нужный сайт в список надежных сайтов: Свойства браузера - вкладка Безопасность - Надежные сайты - кнопка "Сайты".
Добавление надежных сайтов для Java Internet Explorer

Ограничение доступа к сайтам в Windows Server 2008 R2 с помощью Internet Explorer

Задача: ограничить доступ к сайтам (Интернет) для терминальных пользователей Windows Server 2008 R2.

Способ: использование функции ограничения доступа в Internet Explorer. Для использования этой функции необходимо запретить запуск других браузеров на компьютере.

Включаем функцию ограничения доступа через свойства браузера (свойства обозревателя), вкладка "Содержимое":
включение ограничения доступа к сайтам

Если используется Internet Explorer 11, то кнопочка "Включить" не будет показываться просто так. Необходимо подправить административные шаблоны в групповых политиках. Открываем gpedit.msc и включаем политику "Показать параметр Ограничение доступа в свойствах браузера".
Настройка групповой политики
Полный путь параметра: Конфигурация пользователя - Административные шаблоны - Компоненты Windows - Internet Explorer - Панель управления браузером - Вкладка "Содержание".

На вкладке "Разрешенные узлы" вбиваем сайты, разрешенные для посещения.
разрешенные сайты

После этого система попросит ввести новый пароль для изменения настроек ограничения доступа к сайтам.
пароль к настройкам ограничения доступа к сайтам

Для сброса пароля на ограничение доступа необходимо удалить параметр Key в ветке реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Ratings. И перезапустить Internet Explorer.

Обновление 2020: вышеописанный функционал отключен в Windows 10 и Windows Server 2019. Для этих систем необходимо использовать доменные групповые политики.

Также ограничить доступ к сайтам можно с помощью настройки прокси на локальный адрес (вкладка "Подключения" свойств браузера). Чтобы пользователь не мог менять настройки прокси, можно отключить отображение этой вкладки через локальные групповые политики gpedit.msc: Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Internet Explorer - Панель управления браузером - отключить вкладку "Подключения".

Настройка политики ограниченного использования программ в Windows Server 2008 R2

Для ограничения программ, разрешенных для запуска на Windows Server 2008 R2, используются групповые политики.

Запускаем файл gpedit.msc. Переходим в раздел "Конфигурация компьютера" - "Конфигурация Windows" - "Параметры безопасности" - "Политики ограниченного использования программ". По умолчанию этот раздел пуст. Долбасим правую кнопу мыши и в меню выбираем "Создать политику ограниченного использования программ".

gpedit создание политики ограниченного запуска программ

Политика для ограничения запуска программ создана. Остались детали: ввести список разрешенных программ и нажать кнопку "запретить все".

Редактируем назначенные типы файлов.
gpedit назначенные типы файлов
Удаляем тип LNK, чтобы можно было запускать ярлычки разрешенных программ. Добавляем типы HTM, HTML, JS. Нечего эти файлы запускать на сервере.

Для настройки "Применение" указываем, что правила должны действовать для всех пользователей, кроме локальных администраторов. В этом случае администратор сможет запустить любую программу, если запустит ее через меню "Запуск от имени администратора".
gpedit применение

Переходим к группе "Дополнительные правила". Здесь необходимо ввести список разрешенных для запуска программ. По умолчанию в этом разделе есть две записи, разрешающие запуск служебных программ и программ из Programm Files. Нам нужны жесткие ограничения, поэтому удаляем эти записи и добавляем каждую программу по-отдельности.
gpedit расположение разрешенных  программ по умолчанию

При создании нового правила для пути необходимо указать полный путь к разрешенной программе и установить уровень безопасности "Неограниченный".
gpedit добавление разрешенной программы

Необходимо учитывать, для пользователей, работающих с терминальным сервером Windows Server 2008 R2 должны быть доступны для запуска следующие программы:

C:\Windows\explorer.exe
C:\Windows\System32\control.exe
C:\Windows\System32\csrss.exe
C:\Windows\System32\dllhost.exe
C:\Windows\System32\dwm.exe
C:\Windows\System32\logonui.exe
C:\Windows\System32\rdpclip.exe
C:\Windows\System32\rundll32.exe
C:\Windows\System32\taskhost.exe
C:\Windows\System32\TSTheme.exe
C:\Windows\System32\userinit.exe
C:\Windows\System32\taskmgr.exe (диспетчер задач)
C:\Windows\splwow64.exe
C:\Windows\System32\conhost.exe
C:\Windows\System32\cmd.exe
C:\Windows\SysWOW64\cmd.exe
C:\Windows\SysWOW64\fixmapi.exe (функция "Отправить - Адресат" меню Проводника)

Заключительный шаг: включить запрет на запуск всех программ, кроме разрешенных. В группе "Уровни безопасности" устанавливаем по умолчанию уровень "Запрещено".
gpedit уровень безопасности запрещено

После этих изменений администратор не сможет запускать файл gpedit.msc для редактирования групповых политик. Обходной путь: запустить консоль mmc.exe и вручную выбрать на редактирование нужную оснастку.