Debian gnu linux comes with absolutely no warranty to the extent permitted by applicable law

Изменяем приветствие в SSH Debian

Все, кто совершал вход в систему Debian через консоль или посредством SSH, видели следующее сообщение: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

Перевод: Программы, входящие в состав системы Debian GNU/Linux, являются свободными программами; точные условия распространения для каждой программы описаны в отдельных файлах в /usr/share/doc/*/copyright.

Debian GNU/Linux поставляется без каких-либо гарантий, разрешено действующим законодательством.

Один раз прочитать нужно, а в дальнейшем видеть эту информацию не имеет смысла. Можно заменить её на что-то более полезное. Или, например, вывести информативный баннер, а лучше информацию об использовании оперативной памяти или нагрузке на процессор. Так как же изменить приветствие в консоли или в SSH Debian?

Текст об отказе от гарантий находится в файле /etc/motd. Открываем его в текстовом редакторе nano (выполняем с правами root):

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

Теперь попробуем вывести баннер. Для этого, сначала надо очистить /etc/motd. Удалять не надо – просто очистить.

# cat /dev/null > /etc/motd

Затем понадобится программа figler. Устанавливаем её через apt или aptitude (кому как нравится):

# aptitude install figlet

Программа figlet выводит в стандартный поток вывода текстовый баннер составленный из символов. Например, команда:

$ figlet -ct aitishnik.ru

Выведет на экран следующий баннер.

Ключ –с выравнивает баннер по центру, а ключ –t устанавливает ширину вывода по ширине экрана. Figlet поддерживает юникод. Т. е. можно сделать баннер на русском языке. Для этого нужно указать ключ –C и использовать соответствующий шрифт -f.

$ figlet -ct -C utf8 -f banner айтишник.ру

Выведет на экран следующий баннер.

Кстати, посмотреть используемые figlet шрифты можно с помощью команды:

Пока о figlet достаточно, а мы продолжим. Нам нужно сделать простейший скрипт, например salute.sh, содержащий вызов figlet с нужными параметрами и разместить его в /etc/profile.d.

С помощью редактора nano сразу создаем его в нужном месте:

Со следующим содержанием:

Сохраняем файл (Ctrl+O, Enter), закрываем редактор (Ctrl+X). Выходим из системы и входим заново. Любуемся результатом!

А теперь давайте выведем в приветствие полезную информацию о файловой системе, загрузке процессора, использовании оперативной памяти и т. д. Для этого нам понадобится другой скрипт. Назовём его sshinfo.sh. Содержимое скрипта взято отсюда.

Сохраняем и закрываем файл. И опять выходим из системы и входим в неё. Полезно, не так ли?

Комбинируя всё то, о чём вы прочитали в этой статье, можно добиться от приветствия хорошей информативности. Надеюсь, статья вам понравилась.

Помните, что у нас вы можете не только купить готовый сайт или заказать его разработку, но и подобрать подходящий тариф поддержки сайта, заказать продвижение сайта в поисковых системах, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! Айтишник РУ

Источник

LXDE ошибка

Установил LXDE на дедик (KDE будет тяжеловатой)

Сделал ребут, залогинился под root и пишу:

и вылазит ошибка:

Linux Debian9x64 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u1 (2017-06-18) x86_64

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the exten permitted by applicable law.

-bash: startx: command not found

** Message: main.vala:102: Session is LXDE

** Message: main.vala:103: DE is LXDE

(lxsession:884): Gtk-WARNING **: cannot open display:

Получается просто пользователя нужно создать, а не логиниться под рутом?

Потом перелогинился под NAME и прописал startxlxde и всё равно такая ошибка

Что ты получить-то хочешь в итоге?

Чтобы запустились кеды

Slim мёртв. У Lxde есть Lxdm.

Потом перелогинился под NAME и прописал startxlxde и всё равно такая ошибка

startxlxde и прочие команды, запускающие сессии какого-либо DE нужно запускать в x-сессии, просто вызывать startlxde в консоли не получится.

Нужно либо прописать команду запуска сессии DE в файле

/.xinitrc и использовать команду startx, либо можно попробовать использовать команду xinit.

Либо запустить DM (Desktop Manager), ты как раз поставил slim, и уже в нём вызвать сессию нужного DE.

У тебя он, видимо, по какой-то причине не установлен.

Поставь, ну и, скорее всего, не установлен даже xorg-server.

Установил дисплейный менеджер, но пишу startlxde. Пользоваться хочу как обычный юзверь, поэтому графическую среду запускаю из-под рута. Блин, вот уж точно. Либо крестик сними, либо трусы надень.

Ставь LXDE и LXDM. Debian симлинки на загрузку запилит сам.

Читайте также:  Как отключить службу защитника windows 10 навсегда

Поставь xorg, запускай от обычного пользователя, а не рута. Для рута поставь и включи sudo.

Wrong

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

И ещё раз, в ’10годах — дисплейные менеджеры суть атавизм и архаичность.

/.xinirc автоматического входа в OS с разными DE и WM здесь в ЛОР.
И если не изменяет память, а она этого никогда не делает,
показал пример

/.zshlogin, там где правильно прописан xinit и закомментирован startx с комментарием # xinit таки быстрей запускает.

Если нужно войти без X, комментируется строка с xinit.

Источник

Debian gnu linux comes with absolutely no warranty to the extent permitted by applicable law

Re: Removing log in warranty-warning?

Re: Removing log in warranty-warning?

Re: Removing log in warranty-warning?

It is the Message Of The Day.

You can replace the with your own message or delete for no additional message.

Note: You need to have root privileges to modify /etc/motd

Re: Removing log in warranty-warning?

Can I comment lines in motd?
Is it text only? I currently have a script in .bashcr that gives me the IP and some more stuff, could I put this in the motd? The .bashcr script takes a few seconds after the motd to load.

EDIT: Should have checked the comment thing by myself, and I couldn’t comment it.

Re: Removing log in warranty-warning?

Re: Removing log in warranty-warning?

Re: Removing log in warranty-warning?

Re: Removing log in warranty-warning?

Your previous message says you logged in with pi/raspberry.
And as stated before, the ‘NO WARRANTY’ message shows up *after* you log in.

Do you expect the GUI to start automatically?

And there’s no need to shout.

Re: Removing log in warranty-warning?

If it comes up with that message you are logged in correctly

What else were you expecting?

Did you read the Getting Started guide?

Why have you posted this or similar on more than one old thread?

Источник

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

Подключаюсь по ssh. Когда пытаюсь запустить приложение в графическом режиме, выдает вот такое:

Вот файл конфигурации в удленном компютере /etc/ssh/sshd_config :

Подключение производится с Linux Mint 17.3 (kernel 3.19.0-32-generic) на Debian (kernel 3.2.0-4-486)

На удалённом компьютере:

Содержимое /etc/ssh/ssh_config из локальной машины:

Это локальный. Удачно запускается:

Это удаленный. Не запускается:

Вывод команды sudo lsof -Pn -iTCP:6012 -sTCP:LISTEN

telnet localhost 6012

1 ответ 1

Вывод команды ssh -vvv user@192.168.1.241 -X
debug1: identity file /root/.ssh/id_rsa type -1

судя по информации в приведённом логе, вы подключаетесь из-под локального пользователя root .

с огромной долей вероятности локальная x-сессия у вас запущена от имени другого пользователя (если вообще запущена), соответственно, доступа к x-сессии у программы ssh — нет.

запускайте команду ssh -X . из окна эмулятора терминала от имени того же пользователя, под которым запущена x-сессия (и внутри которой запущен данный эмулятор терминала).

дополнение:

возможно, стоит ещё добавить опцию -Y при вызове программы ssh для разрешения «доверенного» x11-forwarding.

диагностика:

после подключения с пробросом x-сессии программа sshd на удалённой стороне начинает слушать tcp-порт, номер которого (как и принято у x-сервера) равен 6000 плюс номер дисплея.

номер дисплея (на удалённой стороне) можно посмотреть в переменной окружения $DISPLAY :

здесь 12 — это номер дисплея. соответственно, порт будет 6012, и проверить, слушает ли его sshd можно, например, так:

видно, что sshd слушает обращения на loopback-адресах: 127.0.0.1 (ipv4) и [::1] (ipv6).

в принципе, этот трафик может быть заблокирован средствами netfilter-а. что-нибудь вроде:

поэтому имеет смысл проверить эти правила программой iptables-save на наличие подобной блокировки.

возможно, кстати, имеет смысл проверить и несколько других портов, начиная с 6010 (sshd начинает присвоение номеров с 10-го дисплея): они могут быть заняты каким-нибудь локальным процессом (тем же подвисшим sshd, например).

Источник

Безумный дом

Мы часто думаем о том, как автоматизировать свое жилище, но часто этот вопрос упирается в то, что готовые системы слишком негибки и дороги, а разбираться, как сделать что-нибудь самому совершенно нет времени.

Под катом — подробный гайд по настройке системы умного дома: сделаем возможным работу устройств ZWave и кастомных MQTT-устройств на базе ESP8266, настроим управление домом при помощи HomeKit и Яндекс Алисы.

Первоначальная настройка Raspberry PI

Установка системы

На распберри ставим raspberry pi os https://www.raspberrypi.org/downloads/raspberry-pi-os/ Записываем ее на MicroSD от 16 ГБ. Обязательно класса 10 и выше, иначе не хватает скорости доступа для работы операционной системы.

Headless

Если не хотим подключать монитор

В boot разделе создаем файл с именем ssh(это одноразовый способ: при наличии файла с именем ssh в разделе при старте raspberry sshd запускается и удаляется этот файл, поэтому не забываем в sudo raspi-config включить ssh насовсем)

Теперь при первом запуске у нас будет возможность подключиться к системе по ssh.

Если необходимо подключение к локальной сети посредством wifi, создаем в boot разделе файл wpa_supplicant.conf

Содержимое файла wpa_supplicant.conf

Первый запуск

Вставляем флешку в малину, подключаем ее по ethernet к сети, если не настроили wifi, подаем питание по microUSB, используя блок питания с предельным током как минимум 2 ампера.

Raspberry PI должна загрузить систему, а также подключиться к сети.

Попробуем получить к ней доступ по ssh.

Для этого нам необходимо узнать, какой ip-адрес получила raspberry pi в нашей локальной сети. Вы можете зайти в веб интерфейс маршрутизатора и посмотреть список активных хостов, но я предпочитаю использовать nmap. Выполняю сканирование сети посредством пингования всех ip адресов подсети.

Читайте также:  Windows vps хостинг что это

Здесь можно заметить, что кроме самого роутера(192.168.0.1) и моего ПК(192.168.0.105) появился еще один хост 192.168.0.120 — многовероятно, что это и есть наша малина.

Попробуем подключиться. Стандартная пара логин/пароль: pi/raspberry.

Мы успешно вошли по ssh на raspberry pi и теперь можем приступать к дальнейшей настройке системы.

Установка Domoticz

Domoticz — программная система для управления умным домом с открытым исходным кодом. Написана на C++. На хабре я видел статьи про аналоги этой системы, такие как openhub и home assistant, но мой выбор пал на domoticz вследствие того, что эта платформа максимально проста для конфигурирования, а кроме того, написана на C++, что делает ее гораздо менее требовательной к вычислительным мощностям для работы, чем аналоги, использующие java и python. Кроме того, подкупила простая система написания сценариев на Lua или python.

Итак, установим domoticz на наш одноплатник. Установка максимально простая, за что личный респект разработчикам.

На экране, спустя некоторое время, появится псевдографический диалог установки, в котором будет возможно выбрать порты и протоколы для веб интерфейса, директорию для установки. Лично я оставил исключительно HTTP на 80 порту, но вы вольны в своих решениях.

После окончания установки и, на всякий случай, ребута, проверяем, что демон domoticz поднялся:

Также проверим, что web интерфейс доступен: http://192.168.0.120/

В процессе эксплуатации я заметил, что Domoticz иногда падает с ошибкой. Чтобы поднимать его автоматически, напишу watchdog с помощью cron.

Теперь каждые 5 минут будет запускаться скрипт, который проверит, работает ли Domoticz и перезапустит его, если это необходимо

Настройка domoticz для работы с устройствами

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

IP-камера

Самое простое, что можно настроить в Domoticz — это камера. Для этого зайдем в web-интерфейсе в Setup -> More options -> Cameras -> Add camera.

Вводим данные о своей камере. У меня возникли сложности с определением picture url, но они решились вот этим сервисом.

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

Z-Wave USB Stick

Посредством Domoticz, мы можем управлять домашней сетью Z-Wave IoT устройств. Это удобный протокол, позволяющий устройствам взаимодействовать друг с другом так, чтобы некоторые из них являлись, помимо своего основного назначения, Z-Wave ретрансляторами, своей работой расширяя радиус покрытия Z-Wave. Протокол закрытый, проприеритарный, поэтому просто создать свое Z-Wave устройство не выйдет, поэтому обычно, по этому протоколу работают покупные устройства/компоненты умного дома.

По моему опыту, настройка Z-Wave сети в Domoticz оказалась сильно проще и, в отличие от систем Home Assistant и openHub, здесь USB Stick заработал сразу и без проблем.

Для того, чтобы настроить свою сеть Z-Wave, я приобрел Z-Wave USB Stick. Подключив его к Raspberry pi, я добавил его как еще одну Hardware, с Type OpenZWave USB. Путь к Serial Port у меня выглядел примерно так: /dev/serial/by-id/usb-0658_0200-if00

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

ВАЖНО: следите, чтобы рабочая частота Z-Stick соответствовала рабочей частоте Z-Wave устройств

MQTT-брокер

Для создания кастомных IoT устройств я собираюсь использовать Arduino с подключением к локальной сети. В рамках данной сети общепринятым стандартом общения между устройствами является MQTT — протокол, ориентированный для обмена сообщениями по принципу издатель-подписчик. Для передачи сообщений посредством данного протокола нам необходим MQTT-брокер — своеобразный хаб для сообщений. Domoticz и IoT устройства выступят в качестве клиентов сети, подключившись к брокеру.

Установим свободный MQTT-брокер Mosquitto.

Теперь Mosquitto установлен и работает. Мы можем подключиться к нему без аутентификации по адресу 0.0.0.0:1883. Таких настроек нам хватит на первое время.

Domoticz — MQTT клиент

Подключим domoticz к MQTT-брокеру. В web-интерфейсе Domoticz — Setup -> Hardware.

Type — MQTT Client Gateway with LAN interface.

Remote address — localhost

Data Timeout — disabled

Username и password — оставляем пустыми до лучших времен

Prevent loop — в большинстве случаев эту настройку следует оставить включенной, но в нашем случае мы собираемся подключать собственные устройства по MQTT и управлять ими внешними методами, поэтому мы выключим prevent loop и domoticz будет пересылать все обновления статусов устройств из domoticz/in в domoticz/out. Это нужно, тк внешнее управление осуществляется посредством публикаций в domoticz/in, а наши устройства слушают domoticz/out, и если domoticz не будет пересылать сообщения из in в out, то устройства не смогут узнать об обновлениях их статусов.

Publish topic — топик, куда domoticz будет публиковать все обновления статусов. Для себя я оставил стандартно — out, и domoticz публикует в топик domoticz/out.

После нажатия на Add у нас добавился новый hardware. Если все хорошо, то в таблице, в колонке Enabled мы увидим Yes.

Dummy switch

Хотелось бы быстро проверить работу нашей системы. Для этого есть виртуальные устройства — не имеющие физических воплощений(по крайней мере, пока мы их не сделаем), но имеющие статус в системе domoticz и управляемые из нее.

Добавим Dummy hardware. В web-интерфейсе Domoticz — Setup -> Hardware

Type — Dummy (Does nothing, use for virtual switches only)

Добавляем. В таблице появилась еще одна запись. Можно увидеть, что в таблице рядом с Type есть кнопка Create virtual sensors. Нажимаем ее, вводим параметры

Sensor type — Switch

Сохраняем и переходим в меню Switches. Теперь здесь можно увидеть новый переключатель:

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

Читайте также:  Драйвера для всех звуковых карт под windows

$ mosquitto_sub -h localhost -v -t «domoticz/out»

Мы использовали клиент MQTT, который установили вместе с брокером, и подписались на топик, куда domoticz публикует свои обновления. Нажмем на лампочку в веб-интерфейсе

Смотрим в терминал и видим сообщение из топика:

В подобных сообщениях Domoticz сообщает нам об изменении своего состояния. Формат тела сообщения — JSON. В поле name видим название, которое мы ранее установили для switch’а в domoticz. Новое состояние свитча мы можем увидеть в поле nvalue.

Программируем собственные IoT устройства на базе Arduino-like контроллеров.

Теперь, когда MQTT-брокер доступен из сети и Domoticz публикует туда сообщение каждый раз, когда мы переключаем switch, можно заняться программированием микроконтроллера. Задача: подключиться к сети, подключиться к брокеру MQTT, подписаться на нужный топик и парсить сообщения от Domoticz, выделяя те, поле name которых совпадает с названием, захардкоженым в программу, и выполняя переключения встроенного светодиода в зависимости от нового состояния из сообщения. Впоследствии переключаться будет не встроенный светодиод, а реле, управляя каким-либо процессом.

Для реализации данного функционала я использую клон Arduino Uno, Ethernet Shield, а также Arduino-like плату на основе контроллера ESP8266, который способен подключаться к сети по WiFi. Таким образом, у меня будут две версии устройства — с подключением по Ethernet и по WiFi.

Для работы с MQTT я использовал библиотеку MQTT.h. Для парсинга JSON — ArduinoJSON.h.

Изначально, написав скетч для Arduino, я, выставив значение для буферов MQTTClient и ArduinoJSON в 500 байт и использовав преобразование входных данных в класс String, превысил мизерное количество оперативной памяти в 2 килобайта. Уменьшив размер буферов до 300 байт и использовав «сишные» строки, мне удалось уложиться в данный лимит, и даже оставить 300-400 свободных байт, но стало понятно, что модифицировать и усложнять программу, добавлять дополнительную логику в случае этой платы будет затруднительно.

Программировать ESP8266 оказалось сильно проще, так как оперативной памяти здесь на порядок больше.

Отлично! Оба устройства отслеживают изменения значения переключателя в интерфейсе Domoticz, и переключают светодиод соответственно значению переключателя!

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

нет давящего ограничения по оперативной памяти

цена за комплект Arduino UNO + Ethernet Shield — 1100 руб, а на плату с работающим из коробки WiFi — 400

Таким образом, мы научились управлять собственным WiFi устройством прямо из интерфейса Domoticz, что открывает перед нами гигантские перспективы для автоматизации

Управляем всем через Яндекс Алису

Domoticz как таковой не поддерживает интеграцию с Алисой, потому что для этого необходим работающий навык Алисы и какой-то облачный интерфейс. Поэтому, для работы с Алисой предлагается следующий костыль: к mqtt брокеру, куда domoticz публикует изменения своих статусов, подключить homebridge — средство для подключения умного дома Apple, и передавать команды от Алисе к domoticz через него.

Поставим все необходимое ПО:

Теперь заходим на веб-интерфейс homebridge по порту 8581, логинимся admin:admin и видим qr-код устройства, который сканируем приложением Дом на iphone. Homebridge своим плагином для domoticz должен видеть все устройства, зарегистрированные в domoticz, и когда мы добавим homebridge в приложение Дом на iphone, то мы сможем ими управлять. Происходит это посредством отправки сообщений в domoticz/in. Чтобы мое самодельное устройство начало получать эти изменения своего статуса, я отключил в настройках mqtt domoticz prevent loop. Таким образом, теперь, когда domoticz получает обновления статусов устройств через domoticz/in, он дублирует их в domoticz/out и устройства, слушающие domoticz/out, могут их получить. Позаботьтесь о том, чтобы ваши устройства не отвечали в domoticz/in на изменения своего статуса, чтобы не образовывались петли.

Для подключения Homebridge к Алисе я использовал g-on плагин. По ссылке — исчерпывающее описание настройки.

После окончания настройки мы имеем возможность управлять устройствами Domoticz, используя приложение Дом или Алису

Результатом моей работы стала система, обладающая приемлемой стабильностью, способная управлять IoT устройствами без необходимости подключения к интернету, позволяющая интегрировать собственные IoT устройства, работающие в сети WiFi, а также управлять этими устройствами голосовыми командами через Алису, или же с помощью облачного сервиса Apple

Демонстрация работы системы. Торшер подключен к самодельной «умной розетке», состоящей из реле, которым управляет ESP8266. Розетка по MQTT общается с Domoticz

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

Исправление костыля с watchdog’ом

Большое спасибо автору этой статьи, который показал на примере из моей статьи, что в данном случае более подходящим инструментом для контроля работы domoticz будет systemd. И действительно, systemd снимает с нас необходимость следить за работой демонов, предоставляя гибкий интерфейс для настройки управления ими

Tasmota

Использование готовой прошивки для ESP8266 позволит не писать свой код для нее. Я проверил работоспособность этой прошивки на плате Wemos D1 R32.

Можем посмотреть логи tasmota через монитор последовательного порта

Подключаемся к wifi сети tasmota, открываем web морду устройства: http://192.168.4.1

Вводим данные wifi сети и ждем, пока esp8266 не подключится к ней.

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

Сначала настраиваем MQTT: все оставляем стандартно, кроме логопассов и IP адреса MQTT брокера. После этого настраиваем модуль: выбираем порты, которыми хотим управлять, указываем, что за устройство на них висит: реле, кнопка или что-то еще. После этого настраиваем Domoticz — смотрим, какое idx у dummy device, и записываем его в соответствующее поле. Теперь мы можем управлять этим устройством при помощи domoticz

Источник

Оцените статью