Archiv der Kategorie: Linux Howto

THINK UNBLOG GNU/Linux Knowledge Network for Tutorials, Howto’s, Workaround, DevOps Code for Professionals.

Run Nano as root in vnc session

How to Run Nano File Manager as root in a VNC Session

In this post I show how to run Nano file manager as root in a VNC session. I’m using a Fedora Cinnamon Spin to this logged in as an common user via VNC viewer.

Fire up a terminal and insert the command below at the end of .bashrc by hit nano ~/.bashrc

export XAUTHORITY=/home/vncuser/.Xauthority

 this example use vncuser, enter your username instead.

close the terminal and re-open again, hit the command line below to run nemo as root:

$ sudo pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nemo

As the video shows below.

E-Mail Versenden aus Linux Shell

E-Mails versenden aus CLI und Shell-Scripts

Das Versenden von E-Mails aus der Linux Shell über einen Server ist sehr nützlich, wenn beispielsweise programmgesteuert Benachrichtigungen aus Shell-Scripts oder Webanwendungen generiert werden.

Dieses Tutorial beleuchtet, wie mit dem Mail-Befehl unter Linux E-Mails von der Befehlszeile aus versendet werden. Zur Anwendung kommt Heirloom („mailx“), das verbreitete Open Source Projekt beinhaltet eine Sammlung traditioneller Unix-Dienstprogramme. Ziel ist es, durch praxiserprobte Beispiele mögliche Lösungswege wiederzugeben, es stellt jedoch keine komplette Sammlung umfangreicher Anwendungsmöglichkeiten dar.

mailx – mailutils bei Fedora und CentOS

Damit das E-Mail Versenden aus der Linux Shell möglich ist, muss das Paket mailx, oft auch mailutils auf dem host vorhanden sein, die Bereitstellung unter Fedora und CentOS geht wie folgt:

$ sudo yum install -y mail

heirloom-mailx bei Debian und Ubuntu

Für Debian und Linux Mint oder weitere Ubuntu forkes kann folgendes apt-get command ausgeführt werden:

$ sudo apt-get install heirloom-mailx

Der CLI Befehl mail ist nun in der Shell anwendbar:

$ mail -s "Hello World" email@example.com

Beim ersten Versuch eine E-Mail zu Versenden, erhält man wahrscheinlich gleich mal ein Fehler!

No configuration file found at /home/joe/.esmtprc or /etc/esmtprc

Gelöst wird der Fehler, indem man die Konfigurationsdatei esmtprc erstellt, mit vi oder nano oder dem Editor der Wahl:

$ vi ~/.esmtprc

Ein SMTP-Gateway hinzufügen, dieses es erlaubt von unserem Host E-Mail anzunehmen.

hostname = smtp.example.com:25

Mit dieser Konfiguration wird der Benutzer berechtigt, über smtp.example.com E-Mails zu Versenden. Sollen alle Benutzer berechtigt werden, muss die Datei /etc/esmtprc erstellt und bearbeitet werden.

Gibt es noch ein Fehler! muss ein Relayhost berechtigt werden:

SMTP server problem Connection refused

Es sollen E-Mails von unserem Host angenommen werden, zB. soll das Gateway smtp.example.com über TCP Port 25 E-Mails weiterleiten.

Beim SMTP-Gateway wird, wenn dieses Postfix ist, die Datei main.cf angepasst. Mit sudo die Postfix Hauptkonfiguration main.cf editieren.

$ sudo vi /etc/postfix/main.cf

Bei mynetworks wird die Host IP oder der Hostname hinzugefügt, dieser E-Mails versenden darf.

mynetworks =
        127.0.0.0/8
        [::1]/128
        192.168.2.3

In diesem Beispiel ist 192.168.2.3 unser Host von diesem E-Mails versendet werden sollen.

Die änderung der Postfix Hauptkonfiguration aktivieren:

$ sudo postfix reload
Beispiele mit Mail in der Befehlszeile

Beispiele Mail versenden in der Befehlszeile

echo "message here" | mail -s "subject" email@example.com < dump.sql.gz

Die klassische Methode ist die Verwendung von sendmail.

$ sendmail -F "Linux host" -f "noreply@example.org" -t 
email@example.org << EOF
Subject: try to test
seems it works.
EOF

Mit sendmail den Inhalt von stats.log an example@email.org senden.

$ (cat /mnt/stats.log) | sendmail -i -- example@email.org

Das Versenden eines zuvor erstellten SQL-Dump, dieser nach der Sicherung zugestellt werden soll.

subnet="$(ip -4 a | grep inet | grep -v 'virbr' | grep -v 'docker' | awk '{print $2}' | grep -v '127.0.0.1')"; ipcalc "${subnet}" | mail -s "${subnet}" hostmaster@example.com

Hier wird die IPv4 Konfiguration mit dem ip-Befehl ermittelt, es wird versucht die virtuellen Interfaceses durch grep und awk auszufiltern.

ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | mail -s "ifconfig" hostmaster@example.com

ifconfig ist der traditionelle Befehl, dabei muss bei neueren Distributionen das Paket net-utils installiert sein.

hostnamectl | mail -s "my host" email@domain.com

Der Befehl hostnamectl liefert nützliche Informationen, vorhanden bei neueren Linux Versionen.

Der Aufruf man mail zeigt die umfangreichen Möglichkeiten von mailx.