вторник, 30 октября 2018 г.

x11vnc как альтернатива vino. Доступ в ЛВС к удалённому рабочему столу Linux с использованием системы VNC

В ходе решения своего частного вопроса по рекомендации был опробован альтернативный вариант доступа в ЛВС к удалённому рабочему столу Linux с использованием системы VNC, работающей по протоколу RFB.

Как известно, недостатком ПО vino является возможность получить доступ к удалённому рабочему столу Linux только при условии наличия уже активного графического сеанса пользователя.

Особенности установки vino в Linux Mint 19 читайте в этой заметке.

Пишут, что x11vnc свободен от такого недостатка vino. Но и здесь не обошлось без "ложки дёгтя". При использовании lightdm пароль для входа пользователя ввести не удастся. Поэтому для использования x11vnc Вам необходимо будет сменить lightdm на mdm, либо найти способ устранения данного явления.

Ниже приводятся команды, в результате выполнения которых x11vnc будет установлен и запущен, после чего можно осуществлять соединение с удалённым компьютером.

Выполните в терминале

sudo mkdir /etc/x11vnc && sudo apt install x11vnc && sudo x11vnc --storepasswd /etc/x11vnc/passwd

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

Далее создайте файл x11vnc.service:

sudo gedit /lib/systemd/system/x11vnc.service (Ubuntu)

sudo xed /lib/systemd/system/x11vnc.service (Linux Mint)

Примечание. Создав псевдоним, соответствующий в моей системе текстовому редактору xed (подробности), всегда ввожу gedit.

Впишите в него:

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target

[Service]
Type=simple
#ExecStart=/usr/bin/x11vnc -xkb -bg -noxrecord -auth /usr/lib/xorg/Xorg :0  -dontdisconnect -notruecolor -shared -noxfixes -noxdamage -display :0 -rfbauth /etc/x11vnc/passwd -forever -o /var/log/x11vnc.log
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc/passwd -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

и сохраните.

Выполните в терминале:

sudo systemctl enable x11vnc.service && sudo systemctl start x11vnc.service

Для подключения к удалённому рабочему столе используйте Remmina с отключённым шифрованием


или любое другое подходящее ПО, например RealVNC viewer (на англ. языке).

При написании заметки были использованы материал форума linuxmint.com.ru и публикация на сайте losst.

четверг, 25 октября 2018 г.

Совместная работа через облака. Пояснение механизма обмена информацией через ресурсы облачного хранения данных

Данная публикация имеет поясняющий характер и ставит своей целью, по возможности, простыми словами и максимально доходчиво (как просят, "для чайников"), объяснить суть и механизм совместной работы с использованием ресурсов облачного хранения данных, таких как Dropbox, pCloud, Диск Яндекс, Облако@Mail.Ru, Google Диск и т.п.

"Облако", если говорить с технической точки зрения, является онлайн-хранилищем, состоящим из большого количества серверов, объединённых в огромную сеть (облачное хранилище данных).

Облачное хранение данных следует понимать как хранение данных в системах, в которых данные распределены по большому числу серверов, объединённых в так называемые кластеры.

Кла́стер (англ. cluster – скопление) – объединение нескольких однородных элементов, которое может рассматриваться как самостоятельная единица, обладающая определёнными свойствами. В сфере информационных технологий под кластером следует понимать группу вычислительных узлов, объединённых высокоскоростными каналами связи, представляющих с точки зрения пользователя единый аппаратный ресурс (подробности).

Так как потребителю не известно на каких именно участках кластеров хранятся его данные, а известна только точка его соединения с массивом кластеров, то такую реализацию назвали "облаком". Cloud – облако (англ.)

Как происходит обмен данными между пользователями через "облако" ?

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


Например, user-1 имеет в облаке 4 папки,


а user-2 имеет в облаке 3 папки


user-1 одну из папок даёт в доступ пользователю user-2 (синего цвета). В терминологии ресурсов облачного хранения данных такое действие называется "приглашение".


user-2 принимает приглашение в папку и у него в облаке становится тоже 4 папки. Полученная от user-1 в доступ папка помечена оранжевым цветом.


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


Соответственно, эти изменения будут также переданы на компьютеры user-1 и user-2 при очередном сеансе связи их клиентов с облаком.


Получается, что после завершения синхронизации содержание жёлтой папки, владельцем которой является user-1, станет идентичным содержанию бирюзовой папки, владельцем которой является user-2, и наоборот:


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

Синхронизация данных клиента с облаком происходит по защищённому протоколу, который препятствует перехвату данных по сети. В зависимости от конкретной реализации, передаётся либо новый файл на замену старому, либо значение "дельта" (разница значений нового и старого файлов).

Для своего функционирования такая схема не требует завершения всех операций синхронизации в течение сеанса связи с Интернет. В процессе синхронизации клиент постоянно вычисляет содержание папки клиента и соответствующей ей папки облака, а также отслеживает отметку времени, назначенной каждому файлу и каждой папке. На основании этой информации клиент производит запись или удаление данных в той папке клиента или облака, отметка времени которой старше (то есть более ранняя). Если в течение сеанса работы с Интернет процесс синхронизации не был завершён, то при следующем сеансе он будет продолжен. Такой процесс условно можно назвать "докачкой данных". Учитывая указанное, процессу можно сопоставить термин "асинхронная репликация".

Репликация (англ. replication) – механизм синхронизации содержимого нескольких копий объекта (файла, папки). В процессе репликации происходит копирование данных из одного источника на другой (или на множество других) и наоборот. Иными словами, изменения, сделанные в одной копии объекта, распространяются в другие копии.

При синхронной репликации, если данная реплика (копия объекта, обновляемая автоматически при обновлении оригинала) обновляется, все другие реплики того же фрагмента данных также должны быть обновлены в одной и той же транзакции (транза́кция (англ. transaction, от лат. transactio 
 соглашение, договор) – минимальная логически осмысленная операция, которая имеет смысл и может быть совершена только полностью, см. wiki). Можно сказать, что на практике существует лишь одна версия данных.

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

В философской концепции развития по спирали, user-1 и user-2 осуществляют обмен данными через общую сетевую папку (Shared folder), как раньше это происходило в локальной сети. Но если в том случае для осуществления информационного обмена user-1 и user-2 должны были быть расположены не далее 80 метров друг от друга (максимальная дальность передачи информации, при которой гарантируется качественная связь без применения специальных усилителей-повторителей), то теперь их географическое местоположение значения не имеет.

вторник, 16 октября 2018 г.

Восстановление штатного состояния значка Dropbox


Несколько дней назад было обнаружено, что значок статуса синхронизации Dropbox отображает "бесконечное" соединение с учётной записью. При этом при  выполнении в терминале команды состояния статуса синхронизации (dropbox status) вывод показывал штатное функционирование ПО.


После переустановки клиента "начисто", подразумевающем удаление приложения с удалением относящихся к нему скрытых каталогов dropbox и dropbox-dist


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

При обращении на форум пользователь с ником Jay пояснил, что отображаемая у меня версия 60.3.89 является "бета", а разрабатываемое для Linux приложение Dropbox в используемой мной Linux Mint не всегда может функционировать должным образом. Joy рекомендовал предпринять следующие действия:

1) удалить существующую версию Dropbox;

При удалении приложения мной также были удалены и скрытые каталоги Dropbox (см. рисунок выше).

2) зайти в свою учётную запись;

3) в секции "Настройки – Общие вопросы" найти строку "Новые обновления" (Участвуйте в тестировании новых функций Dropbox. Для предварительных версий новых функций действуют настоящие дополнительные условия) и установить переключатель в положение "Выкл".


4) установить приложение Dropbox.

После данных выполнения перечисленных мероприятий отображение значка состояния Dropbox было приведено к штатному виду.

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

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

Изменение MTU в команде ping


При настройках сетей периодически возникал вопрос об отправке пакетов ping с определённым значением MTU. Такая команда (что для Windows, что для Linux) с первого раза не запоминаются, а по закону подлости бывает нужна срочно.

Хотелось по этому вопросу иметь карманную шпаргалку (хотя бы даже для себя). В Интернет по поиску информации по MTU сразу находится очень много теории. Найденными, в конце концов, командами ping с установленным значением MTU являются:

ping -f -l xxxx yyyy  или  ping xxxx -f -l yyyy   (команды равнозначны) для Windows

ping -M do -s xxxx yyyy   для Linux

xxxx = значение MTU,   yyyy = IP-адрес хоста или имя вида хост.домен

среда, 10 октября 2018 г.

Изменение цвета Mint-Y в Linux Mint 19

После некоторого периода использования Linux Mint 19 своё субъективное восприятие цветовой схемы темы оформления Mint-Y потребовало от меня желательности внесения в неё изменений.

Поставляемая в комплекте тема Mint-Y-Dark не устроила, так как уже выработалась привычка воспринимать цвета окон в классическом виде, а не в чёрном. Но мятные цвета прогресс-баров и цветов выделений хотелось сделать более тёмными.

К сожалению, такой инструмент как GTK Theme Configurator (gtk-theme-config) не поможет, так как, во-первых, при попытке установки из PPA система уведомила, что данный PPA не поддерживает Ubuntu 18.04 (кодовую базу которой использует Linux Mint 19). А во-вторых, – даже если установить deb пакет этого приложения для Ubuntu 17.10, то он не осуществит необходимые изменения.

Пришлось предпринять попытку самостоятельного внесения изменений в цветовую схему Mint-Y.

Изменение представляет собой редактирование двух файлов конфигурации и перекрашивание графических компонентов темы Mint-Y. Каталог темы Mint-Y расположен в /usr/share/themes.

Так как под правами обычного пользователя изменения в /usr/share/themes не осуществить, то каталог Mint-Y был скопирован в свой домашний каталог и уже в нём осуществлялись все дальнейшие правки.

Файлами конфигурации являются gtk-2.0/gtkrc и gtk-3.0/gtk.css, а графические компоненты расположены в каталогах gtk-2.0/assets, gtk-2.0/menubar-toolbar, gtk-3.0/assets, xfwm4. Наименование темы определяется содержанием файла index.theme

Следует отметить, что описанное ниже справедливо для оболочки XFCE. При использовании Cinnamon, вероятно, придётся осуществить ещё и изменения в каталоге cinnamon.

Сначала необходимо было определиться с цветом, в который будет перекрашиваться тема Mint-Y и получить его HEX-значение (поищите какой-либо онлайн генератор цветов для HTML, который Вам будет понятен). Например, для своих нужд мной был выбран цвет


В файлах gtk-2.0/gtkrc и gtk-3.0/gtk.css hex-значения "мяты" были заменены на выбранный код. За это отвечает строка selected_bg_color.


Так как в файле gtk.css необходимо осуществить более 90 изменений, то целесообразно использовать в текстовом редакторе механизм "Найти и заменить".

Далее "перекрашиваются" графические компоненты темы с использованием редактора GIMP.

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

Открыть файл, в котором имеется не монохромный, а "мятный" цвет. Щёлкаем по "волшебной" палочке и далее на выбранную область.



При открытии некоторых файлов изображения настолько малы, что для выбора области окрашивания придётся увеличить масштаб отображения: "Вид – Масштаб". Для рассмотрения области выделения приходилось устанавливать масштаб на 400 %.

Далее осуществляется окраска выбранной области:



Примечание. Файл gtk-2.0/assets/menuitem.png перекрашиванию не поддавался, вследствие чего он был экспортирован в jpg, перекрашен и обратно экспортирован в png.

В результате получились цвета тёмной и светлой бирюзы. После завершения всех операций каталог был переименован в Mint-Y-B, а в файле index.theme записи Mint-Y изменены на Mint-Y-B. Далее каталог Mint-Y-B под правами суперпользователя был перемещён в usr/share/themes.

Если Вам подойдёт полученный результат, то можете скачать zip












В дальнейшем было решено предпринять попытку сделать цвет светлой бирюзы более тёмным. Для этого каждое отредактированное изображение было подвергнуто в GIMP коррекции тона:


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

Тема условно обозначена как Mint-Y-C.  Скачать архив zip

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

Изменения в команде удаления старых ядер (Linux Mint 18.3/19)


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


Пришлось запускать Synaptic, находить по поиску пакеты, соответствующие номеру ядра, и удалять найденное вручную.


Примечание. При удалении через Synaptic в режиме "полного удаления" система по непонятной для меня причине при удалении какого-либо ядра linux-image-...-generic "желает" установить пакет linux-image-unsigned-...-generic (автоматически устанавливает галочку). Поэтому внимательно относитесь к перечню пакетов для удаления, который отобразит Synaptic перед запланированной процедурой.

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

linux-headers-4.15.0-34
linux-headers-4.15.0-34-generic
linux-modules-4.15.0-34-generic
linux-modules-extra-4.15.0-34-generic
linux-image-4.15.0-34-generic

Поэтому командой для полного удаления ядра 4.15.0.34 является

sudo apt purge -y linux-headers-4.15.0-34 linux-headers-4.15.0-34-generic linux-modules-4.15.0-34-generic linux-modules-extra-4.15.0-34-generic linux-image-4.15.0-34-generic

После выполнения указанной команды ядро 4.15.0.34 было полностью удалено.


Если в процессе выполнения команды в окне терминала будет выдано предупреждение:

dpkg: предупреждение: при удалении linux-modules-4.15.0-34-generic каталог «/lib/modules/4.15.0-34-generic» не пуст, поэтому не удалён

то после можно выполнить команду  sudo rm -rf /lib/modules/4.15.0-34-generic

Такая ситуация может наблюдаться, если Вами используется ПО Boinc client.