Отправить сообщение консоль linux

Команда write в Linux

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

Примеры использования команды write в Linux

Синтаксис

Параметр user является обязательным и представляет имя пользователя принимающей стороны. Указание ttyname необходимо в случае нескольких открытых терминалов.

Использование команды write в Linux

Предварительная подготовка

Для команды write требуются как минимум два пользователя, вошедших в систему через сеанс pts (псевдо-терминал) или tty (телетайп).

Так как у меня второго пользователя нет, то я его создаю с именем ivan :

oleg@mobile:~$ sudo su root@mobile:/home/oleg# adduser ivan Добавляется пользователь «ivan» . Добавляется новая группа «ivan» (1001) . Добавляется новый пользователь «ivan» (1001) в группу «ivan» . Создаётся домашний каталог «/home/ivan» . Копирование файлов из «/etc/skel» . Новый пароль : Повторите ввод нового пароля : passwd: пароль успешно обновлён Изменение информации о пользователе ivan Введите новое значение или нажмите ENTER для выбора значения по умолчанию Полное имя []: Номер комнаты []: Рабочий телефон []: Домашний телефон []: Другое []: Данная информация корректна? [Y/n] y root@mobile:/home/oleg# 

Добавляю пользователя ivan в группу sudo:

root@mobile:/home/oleg# usermod -aG sudo ivan root@mobile:/home/oleg# 

Проверяю доступность разрешений sudo , переключившись командой su на учётную запись пользователя ivan :

oleg@mobile:~$ sudo su ivan ivan@mobile:/home/oleg$ cd ivan@mobile:~$ 

Теперь пользователь ivan , используя sudo , сможет запускать команды с привилегиями суперпользователя:

ivan@mobile:~$ sudo ls -l /root итого 4 drwxr-xr-x 3 root root 4096 авг 17 2021 snap ivan@mobile:~$

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

Разрешение на запись

Для связи с другим пользователем oleg получает разрешение на запись с помощью mesg y :

oleg@mobile:~$ mesg y oleg@mobile:~$

Пользователь ivan также получает разрешение на запись:

ivan@mobile:~$ mesg y ivan@mobile:~$

Вход в терминальный сеанс

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

Читайте также:  Отключить блокировку экрана linux mint

Команда предлагает ввести sudo и пароль пользователя для продолжения.

Пользователь oleg входит в терминальный сеанс:

oleg@mobile:~$ sudo login oleg Пароль: Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-58-generic x86_64) . oleg@mobile:~$ 

То же самое выполняет и пользователь ivan :

ivan@mobile:~$ sudo login ivan Пароль: . ivan@mobile:~$ 

Чтобы проверить, кто вошёл в систему, используется команда w в любом терминале:

oleg@mobile:~$ w 17:51:14 up 14 min, 3 users, load average: 0,28, 0,39, 0,50 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT oleg :0 :0 17:38 ?xdm? 1:33 0.00s /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_M oleg pts/0 - 17:47 1.00s 0.12s 0.00s w ivan pts/2 - 17:49 2:05 0.14s 0.05s -bash oleg@mobile:~$ 

Вывод показывает, что пользователи oleg и ivan вошли в систему через консоль pts . Кроме этого пользователь oleg предварительно вошёл в систему через локальный дисплей (GUI). Он же выполнил команду login для обоих пользователей.

Создание сообщения

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

Запускаем утилиту и указываем пользователя:

Команда ожидает входное сообщение. На принимающей стороне пользователь получает подтверждение о соединении со следующей информацией:

ivan@mobile:~$ Message from oleg@mobile on pts/0 at 17:56 . 

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

oleg@mobile:~$ Message from oleg@mobile on pts/0 at 18:03 . write oleg Hi, how are you? write ivan Would you like to drink some beer now?

Сообщение появляется на принимающей стороне в режиме реального времени и пользователь ivan отвечает:

ivan@mobile:~$ Message from oleg@mobile on pts/0 at 18:03 . write oleg Hi, how are you? write ivan Would you like to drink some beer? write oleg Yes, of course. o 

Пользователь oleg завершает работу, набрав oo и нажав CTRL + D:

oleg@mobile:~$ write ivan Message from ivan@mobile on pts/2 at 18:03 . Hi, how are you? write ivan Would you like to drink some beer now? write oleg Yes, of course. o write oo oleg@mobile:~$ 

Пользователь ivan получает сообщение об окончании сеанса и бежит к Олегу:

ivan@mobile:~$ EOF Message from oleg@mobile on pts/0 at 18:03 . write oleg Hi, how are you? write ivan Would you like to drink some beer now? write oleg Yes, of course. o write oo EOF

Поскольку не существует надлежащего способа отличить, когда пользователь заканчивает сообщение, традиционный способ завершения оператора — это символ o . Чтобы сигнализировать об окончании разговора, напишите oo . Завершите работу, нажатием CTRL + D.

Читайте также:  Какие wifi адаптеры поддерживает kali linux

Сообщение с помощью команды echo

С использованием команды echo можно ввести сообщение и передать команду write :

oleg@mobile:~$ echo "Hello from oleg" | write ivan

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

Сообщение из файла

Для отправки сообщения из текстового файла создаётся текстовый файл:

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

oleg@mobile:~$ echo "Hello from oleg" | write ivan < beer.txt

Сообщение на определённый терминал

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

Используйте эту утилиту для проверки имени tty и времени простоя.

Чтобы указать, на какой tty отправлять сообщения, запустите:

ivan@mobile:~$ write oleg pts/0

Сообщения поступят только на pts/0 .

Заключение

Изучив в этой небольшой статье примеры использования команду write в Linux вы сможете использовать её в своей работе. Вы уже убедились в том, что это несложно.

Источник

Отправка почты из командной строки Linux

Обновлено

Обновлено: 05.05.2022 Опубликовано: 31.03.2017

Подготовка

Для начала устанавливаем утилиту для отправки почты. В противном случае мы увидим ошибку mail: command not found. В Debian / Ubuntu:

Синтаксис

* в данном примере будет отправлено письмо на электронный адрес master@dmosk.ru с темой Test title и телом письма — Test text. Если при отправке возникли проблемы, можно проверить логи следующей командой:

Примеры использования командной строки для email-отправки

1. Отправка письма с вложением

echo 'Attachment' | mail -s 'Subject attachment message' -a /var/log/maillog -a /var/log/maillog2 master@dmosk.ru

echo 'Attachment' | mail -s 'Subject attachment message' -A /var/log/maillog -A /var/log/maillog2 master@dmosk.ru

* где /var/log/maillog и /var/log/maillog2 — файлы, которые будут прикреплены к письму. Обратите внимание, что обе команды отличаются по регистру опции a и A — все зависит от версии и сборки Linux (в каких-то нужно использовать маленькую, в каких-то — большую). Также обратите внимание, что в примере для Ubuntu мы отправим 2 файла — для этого просто добавляем к команде еще одну опцию прикрепления файла.

2. Несколько получателей

* в данном примере мы отправил письмо на ящики master@dmosk.ru и shmaster@dmosk.ru.

3. Отправка с копией

4. Указать отправителя

5. Отправка через другой SMTP сервер

echo "Test text" | mail -s "Test title" -a "Smtp: smtp.mail.ru:25" -a "From: postmaster@dmosk.ru" -a "Return-path: postmaster@dmosk.ru" master@dmosk.ru

Читайте также:  Finding open port linux

Однако, если сторонний почтовый сервер работает по шифрованному каналу и требует аутентификацию, необходимо ввести следующее:

echo "Test text" | mail -v -s "Test title" -S smtp="smtp.dmosk.ru:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="master@dmosk.ru" -S smtp-auth-password="password" -S ssl-verify=ignore -S nss-config-dir=/etc/pki/nssdb -S from=postmaster@dmosk.ru master@dmosk.ru

* где smtp.dmosk.ru — сервер smtp; 587 — порт для подключения к серверу отправки; smtp-use-starttls указывает на использование шифрования через TLS; smtp-auth=login задает аутентификацию с использованием логина и пароля; smtp-auth-user и smtp-auth-password — соответственно логин и пароль; ssl-verify=ignore отключает проверку подлинности сертификата безопасности; nss-config-dir указывает на каталог с базами nss; from задает поле FROM

Mutt

При возникновении проблем, можно воспользоваться программой mutt. Сначала поставим ее. а) если используем CentOS / Red Hat:

Примеры использования Mutt

echo "Mail From" | mutt -s "subject" -e 'my_hdr From: Дмитрий ' -- master@dmosk.ru

* данной командой mutt отправит письмо от postmaster@dmosk.ru. 3. Отправка через другой сервер. Для начала, открываем файл с конфигурацией Mutt:

* в данном примере мы отправим всю нашу почту через узел smtp.mail.ru, порт 25. Или при необходимости авторизации на почтовом сервере:

set smtp_url="smtp://smtp_user@smtp.mail.ru:465"
set smtp_pass = password
set ssl_verify_host = no
set ssl_verify_dates = no
set ssl_starttls = no
set ssl_force_tls = yes

  • smtp_user — имя учетной записи, под которой нужно авторизоваться на SMTP.
  • smtp_pass — пароль для аутентификации.
  • ssl_verify_host — нужно ли проверять валидность сертификата.
  • ssl_verify_dates — нужно ли проверять дату действия сертификата.
  • ssl_starttls — нужно ли использовать STARTTLS (обычно, при подключении по порту 587).
  • ssl_force_tls — нужно ли использование SSL/TLS (обычно, при подключении по порту 465).

Теперь можно отправлять письмо:

echo "Mail From" | mutt -s "subject" -e 'my_hdr From: Дмитрий ' -- master@dmosk.ru

Источник

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