Posts für Suchanfrage sudoers werden nach Relevanz sortiert angezeigt. Nach Datum sortieren Alle Posts anzeigen
Posts für Suchanfrage sudoers werden nach Relevanz sortiert angezeigt. Nach Datum sortieren Alle Posts anzeigen

Dienstag, 1. August 2017

Raspberry ausschalten mit FHEM

Man kann den Raspberry einfach so vom Strom ziehen - aber schön ist das nicht!
Wenn man schon FHEM drauf hat, kann man sich auch einen Ausschaltknopf auf der Oberfläche machen.

Achtung: Der Raspberry kann kein WOL oder ähnliches. Aus ist Aus. Baut man das mit dem "halt"
wirklich auf die Weboberfläche muss man sich auch über einen Neustart Gedanken machen!

Als erstes muss der User fhem (der User unter dem FHEM läuft) ein reboot oder halt des Systems auch dürfen. Im raspbian kann man dafür einfach eine Textdatei im Pfad /etc/sudoers.d/ ablegen, man braucht die eigentliche sudoers Datei nicht mit visudo zu editieren (ist mittlerweile in vielen anderen Systemen Standard).
Hinweis:
Der Benutzer Pi bekommt über genau diesen Weg seine sudo Rechte, einfach mal anschauen:
sudo cat /etc/sudoers.d/010_pi-nopasswd

Rechte für User fhem setzen

Wie immer mache ich das gern mit einem Script (welches mit sudo ausgeführt werden muss):
#!/bin/bash
# ergänze eine Datei zum sudoers Script Verzeichnis /etc/sudoers.d/
File="011_fhem-nopasswd"
echo "fhem ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown, /sbin/halt" >/etc/sudoers.d/$File
chmod 0440 /etc/sudoers.d/$File
Man kann den Erfolg sofort testen, aber vorher save nicht vergessen, falls man gerade in FHEM etwas geändert hat!
Wenn man in der FHEM Befehlszeile "sudo /sbin/reboot" eingibt, sollte der Raspberry jetzt neu starten. Ein umfangreiches Manual zum Syntax in der Datei findet man hier.

Bedienelemente in FHEM

Damit man einen Knopf in der Oberfläche von FHEM bekommt, kann man es analog zu diesem Beitrag machen. Dazu braucht man allerdings erstmal einen FHEM Befehl:
define s1 cmdalias reboot AS "sudo /sbin/reboot"
Das kann man wieder sofort testen, in dem man reboot in der Kommandozeile von FHEM eingibt - man muss nur aufpassen, dass dem Raspberry nicht schwindelig wird.
define Systembefehle weblink cmdList Restart:Restart-Fhem:shutdown+restart Restart:Restart-System:reboot Update:Update-Check:update+check Update:Update-Now:update Shutdown:Shutdown-System:halt
Der aufmerksame Leser hat gemerkt: hier fehlt noch etwas! Der alias für halt:
define s2 cmdalias halt AS "sudo /sbin/halt"
Optisch sieht das Ganze so aus:
Mit diesem Befehl kann man den Ausschalter auch links ins Menü packen:
attr WEB menuEntries System-Halt,/fhem?cmd=halt

Ein Script zum Einrichten

Für den ganz Eiligen habe ich hier noch alles in einem Script. Damit man das nicht erst noch ausführbar machen muss, kann man es einfach mit sudo bash <scriptname> starten
#!/bin/bash
# System Befehle für FHEM
File="011_fhem-nopasswd"
echo "fhem ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown, /sbin/halt" >/etc/sudoers.d/$File
chmod 0440 /etc/sudoers.d/$File
perl /opt/fhem/fhem.pl 7072 '
define s1 cmdalias reboot AS "sudo /sbin/reboot"
define s2 cmdalias halt AS "sudo /sbin/halt"
define Systembefehle weblink cmdList Restart:Restart-Fhem:shutdown+restart Restart:Restart-System:reboot Update:Update-Check:update+check Update:Update-Now:update Shutdown:Shutdown-System:halt
attr WEB menuEntries System-Befehle,/fhem?detail=Systembefehle
save
'

Kleiner Makel

Beim Restart von FHEM (und damit auch beim Restart System) ist danach der csrf Token vom Link nicht mehr gültig. Der Kontakt von FHEM kehrt also nicht allein zurück. Mit der zurück taste im Browser geht es wieder ins Menü.

Inhalt der sudoers Datei

Die durch Komma getrennten Werte in der Datei haben folgende Bedeutung und benötigen immer den vollen Pfad!

/usr/sbin -> für alles im Verzeichnis
/usr/sbin/service * -> für alle Parameter
/usr/sbin/service apache2 * -> für alle weiteren Parameter
/usr/sbin/service apache2 reload -> genau nur hierfür

Der Aufruf in FHEM muss dann genau dem Schema entsprechen:
"sudo /usr/sbin/service apache2 reload"

Mittwoch, 31. Januar 2018

Installation Raspberry Pi

Es ist immer wieder ein gefragtes Thema, es ist einige Zeit ins Land gegangen, ich halte eigentlich meinen Artikel vom September 2016 aktuell - aber jetzt ist Zeit für neues! Kurz knackig und ohne Prosa soll es werden.
Achtung: Es gibt seit 2021 die Möglichkeit mit dem Raspberry Pi Imager die Konfiguration des Images vor dem ersten Start vorzunehmen. Dabei ensteht eine Datei firstrun.sh in der Boot Partition, die man einfach kopieren und für die Zukunft aufbewahren könnte.
  1. Download raspbian-lite, aktuell die Version 2017-11-29 immer wieder von hier.
  2. Mit windisk32imager auf die SD Card schreiben, es entstehen zwei Laufwerke nur das Erste ist unter Windows lesbar.
  3. Eine leere Datei mit dem Namen ssh in diesem Laufwerk erstellen, sonst geht kein ssh nach dem Start. 
  4. Bei Modellen mit Wlan die Datei wpa_supplicant.conf in dieses Laufwerk kopieren um mit Wlan starten zu können. 
  5. SD Karte auswerfen.
  6. SD Karte in Raspberry Pi stecken und booten.
  7. Monitor und Tastatur braucht man nicht. Mit Putty auf Host raspberrypi verbinden und anmelden. User pi, Passwort raspberry
  8. Dem Sicherheitshinweis folgen und passwd eingeben -> Passwort ändern!

Vorbemerkung

Alle folgende Code Blöcke benötigen root Rechte. Deshalb bitte immer am Besten per sudo su ausführen. Man kann auch einzelne Befehle mit sudo davor ausführen, allerdings wird das bei Pipe Befehlen nicht durchgereicht. Ich empfehle die benötigten Abschnitte vorher in ein oder zwei  Scriptdateien zu packen und diese gleich mit auf die SD Karte zu kopieren.
Alle Dateien müssen im Linux Format (nur lf als Zeilenende) erzeugt/editiert werden! Unbedingt einen geeigneten Editor verwenden und auf das Format beim speichern achten!

Wlan 

Eine Text Datei mit Namen wpa_supplicant.conf und diesem Inhalt bereitstellen: Entweder in die /boot Partition vorm ersten Start oder später ins Verzeichnis /etc/wpa_supplicant/ kopieren.
country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="FRITZ!Box 7490"
        psk="12345678901234567890"
}

Meine Grundeinstellung

Zeitzone, Sprache und  Hostname ändern. Entweder Menügeführt mit
sudo raspi-config
oder per Script / Shell Befehle
# Zeitzone
timedatectl set-timezone Europe/Berlin

# Konfigurieren lokale Sprache deutsch
localedef -f UTF-8 -i de_DE de_DE.UTF-8
localectl set-locale LANG=de_DE.UTF-8 LANGUAGE=de_DE
localectl set-keymap de
setupcon

# Hostname 
hostnamectl set-hostname mymachine

#Neustart
reboot

Das war es erstmal, Damit funktioniert bei allen Pi Versionen die eingebaute Hardware, inklusive Wlan und BT beim Pi3 oder Pi Zero W.

UART

Wer für Zusatz Module die serielle Schnittstelle am GPIO braucht, muss etwas zusätzlich konfigurieren.

Bei allen Pi Modellen muss dafür der Dienst serial-getty@ttyAMA0 deaktiviert werden.
# serial-getty@ttyAMA0.service deaktivieren
systemctl stop serial-getty@ttyAMA0.service
systemctl disable serial-getty@ttyAMA0.service
systemctl mask serial-getty@ttyAMA0.service
Bei den Modellen ohne BT ist die UART per default aktiviert.
Beim den Modellen mit BT muss die UART aktiviert und BT umkonfiguriert werden.
# serielle Schnittstelle aktivieren und mit BT Schnittstelle tauschen
echo "enable_uart=1" >> /boot/config.txt 
echo "dtoverlay=pi3-miniuart-bt" >> /boot/config.txt 
echo "core_freq=250" >> /boot/config.txt 
Für diesen Abschnitt ist ein Neustart erforderlich!
# Neustart erforderlich 
reboot

BT

Die Funktion von Bluetooth kann mit hcitool überprüft werden
hcitool dev
hcitool scan
hcitool lescan


Kamera aktivieren

# Kamera aktivieren
echo "start_x=1" >> /boot/config.txt
echo "gpu_mem=128" >> /boot/config.txt
echo "disable_camera_led=1" >> /boot/config.txt
# Neustart erforderlich
reboot

Sound 


Sound ist normal aktiviert (dtparam=audio=on)
Sollen andere User Audio ausgeben dürfen, müssen sie in der Gruppe audio sein (Beispiel)
sudo gpasswd -a fhem audio

Braucht man eine Möglichkeit um mp3 Dateien und ähnliches abzuspielen wird häufig mplayer empfohlen. Eine gute Alternative ist play.
sudo apt-get update
sudo apt-get install sox libsox-fmt-all


Dateifreigabe einrichten

Braucht man eine Freigabe für Dateien auf dem Pi, ist das mit Samba schnell erledigt. Achtung diese Freigabe ist völlig offen und ohne jede Anmeldung!
apt-get install samba
# Pfad erstellen
mkdir /var/SonosSpeak
chmod 777 /var/SonosSpeak/

# Share Definition in /etc/samba/smb.conf
echo '[SonosSpeak]' >> /etc/samba/smb.conf
echo '  comment = Audio-Files for SonosPlayer to Speak' >> /etc/samba/smb.conf
echo '  path = /var/SonosSpeak' >> /etc/samba/smb.conf
echo '  browsable = yes' >> /etc/samba/smb.conf
echo '  guest ok = yes' >> /etc/samba/smb.conf
echo '  read only = no' >> /etc/samba/smb.conf

# restart Service
systemctl restart smbd
Mit dieser Installation hat man auch die Befehle net rpc usw. zur Verfügung.
Wer einen smbclient braucht muss diesen noch installieren.
apt-get install smbclient

Sudoers

Will man einem bestimmten Benutzer Möglichkeiten geben für die man "root" Rechte braucht, geht das ganz einfach.
Das folgende Beispiel gibt dem Benutzer fhem die Möglichkeit das System herunterzufahren bzw. neu zu starten.
#!/bin/bash
# ergänze eine Datei zum sudoers Script Verzeichnis /etc/sudoers.d/
File="011_fhem-nopasswd"
echo "fhem ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown, /sbin/halt" >/etc/sudoers.d/$File
chmod 0440 /etc/sudoers.d/$File

Mittwoch, 9. September 2020

ssh mit public key

ich habe dazu schon mehrfach was geschrieben - aber man lernt ja immer wieder dazu. Deshalb noch ein ziemlich komprimierter Artikel: 

Ein HowTo für die Automatisierung von Remote Aufgaben in FHEM über ssh. 

Nachtrag 2023: Es gibt einen neuen Artikel, der die Einrichtung ganz kompakt mit einem Script zeigt.

Freitag, 24. November 2017

openmediavault 1-2-3 fertig

Ein paar Notizen zur Grundeinrichtung

Aktuell gültig für OMV Version 3.086

Manuelle Konfiguration nach der Installation

Ein paar Grundeinstellungen

Immer wenn man die Konfiguration ändert kommt als Abschluss noch ein gelber Balken und man muss den "Anwenden Knopf" drücken. Den kann man auch nach einer Reihe von Änderungen ganz zum Schluß einmal drücken. Wichtig ist im jeweiligen Menü den Speichern Knopf zu drücken

Genaue Zeit
Datum und Zeit
NTP Server benutzen -> aktivieren -> speichern

WOL
Netzwerk
Schnittstellen -> eth0 auswählen -> bearbeiten -> Wake-on-LAN aktivieren -> speichern

Auf Knopfdruck ausschalten
Energieverwaltung
Einschaltknopf -> Herunterfahren -> speichern

Zugang per ssh
Zugriffskontrolle -> Benutzer -> Benutzer auswählen -> bearbeiten
                             -> Gruppen -> ssh anhaken -> speichern -> anwenden

System auf neuesten Stand bringen
Aktuell müssen zwei Pakte mit 0,00 Byte nach der Neuinstallation abgewählt werden, sonst geht die Aktualisierung nicht.

Benutzer zum sudoer machen
Einfach im Terminal (putty)
sudo su
echo "<Benutzer> ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/22_<Benutzer>-nopasswd

Ein öffentliches Share einrichten

Ziel: keine Anmeldung, kein User, kein Passwort

Dateisysteme -> einbinden der vorhandenen Dateisysteme auf den Platten oder Neue anlegen

Freigegebener Ordner
               -> Hinzufügen -> Namen eintragen
               -> Laufwerk auswählen -> Pfad auswählen
               -> Zugriffsrechte -> jeder:lesen/schreiben -> speichern
         Tab ACL -> rekursiv -> Aktivieren -> anwenden -> schließen

SMB/CIFS -> aktivieren -> Local Master Browser deaktivieren -> speichern
     Tab Freigaben -> hinzufügen -> Freigegebenen Ordner auswählen
                             -> Öffentlich -> nur Gäste -> speichern

Hintergrundinformationen

Die Weboberfläche macht bei der Einrichtung eine Kombination aus Ausführung von Debian Systembefehlen und Speichern von Informationen in der /etc/openmediavault/config.xml
Systembefehle werden sofort ausgeführt und eventuelle Meldungen erscheinen im Fenster.
Änderungen in der config.xml werden sofort in der Umgebung aktiv und mit einem gelben Balken angezeigt aber erst bei "Anwenden" in diese Datei geschrieben.
Genau aus diesem Grund gibt es praktisch keine Möglichkeit die gesamte Konfiguration einfach so zu speichern und wieder herzustellen.

Mittwoch, 5. August 2015

Installation der Openmediavault

Möglichkeiten zur Installation für den H340  

Ich habe noch einen alten Acer H340 den ich im letzten Artikel beschrieben habe. Den will ich jetzt ganz konkret mit openmediavault installieren, dazu hatte ich mehrere Ideen und Möglichkeiten. Was ich konkret probiert habe will ich hier zusammenfassen. Der Artikel soll keine komplette Installationsanleitung sein, sondern die Sammlung dessen was ich konkret getan habe. Zuerst hatte ich zwei Ideen wie ich den H340 installiere, obwohl er so etwas nicht ganz einfach unterstützt.

H340 User mode


  • JP3 auf dem Motherborad geschlossen
  • USB Tastatur
  • VGA am debug connector oder VGA Karte im PCI Stecksteckplatz
  • ISO Image auf USB Stick, wird im Front USB gesteckt
  • SDD oder HDD steckt im SATA Slot 0
  • Bootvorgang per Reset: power on, warten bis i blau blinkt, jetzt sofort Reset Knopf an der Rückseite drücken und nachdem i rot blinkt bootet die Installation vom USB Stick
  • Bootvorgang per Bootmenü: Im BIOS müssen einmal die Setup defaults geladen werden. Beim Bootvorgang F12 drücken und den USB Stick auswählen. Auf den Namen achten, nicht den SMI USB Stick auswählen! Es kann sein, dass man erst im Setup den USB Stick zum Start zulassen muss!

Virtual Box


  • HDD / SDD mit USB Adapter am Host anschließen
  • Aktuell war es keine gute Idee USB 3 Anschlüsse zu verwenden.
  • in der Datenträgerverwaltung die Festplattennummer (X) abfragen
  • Eingabeaufforderung als Administrator starten
  • Mit diesem Befehl die physikalische Platte für Virtual Box verfügbar machen:
     "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename "<Pfad\Dateiname>.vmdk" -rawdisk "\\.\PhysicalDrive<X>"   
  • Virtual Box als Administrator starten
  • debian System mit Wizard erzeugen, IDE Controller löschen, SATA Controller verwenden
  • vorhanden Platte (vmdk von oben) verwenden 
  • ISO Image als CD Laufwerk einbinden
  • Virtuelle Maschine starten und mit F12 Start von CD erzwingen

Allgemein

Ich habe die Sprache deutsch ausgewählt und durch leeres root Kennwort den Benutzer "root" deaktiviert. Der erste Benutzer erhält damit die Möglichkeit mit "sudo" - gefällt mir besser.
Ist nur ein Laufwerk außer dem Installationslaufwerk vorhanden wird diese automatisch und Nachfrage neu und komplett partitioniert!
Sind mehrere Laufwerke vorhanden fragt die Installation nach.
Meine Festplatte wird so angezeigt:

SCSI1 (0,0,0) (sda) - 126.0 GB ATA SanDisk SDSSDP12

Nach der Konfiguration der System Festplatte vergeht einiges an Zeit zur Installation.
Am Ende wird nach dem Neustart gefragt. Der USB Stick kann stecken bleiben.
Die Installation und Konfiguration von openmediavault ganz allgemein ist hier ganz gut beschrieben

Abschluss der Basis Installation

Direkt am H340
Entfernen von Monitor und Tastatur
Entfernen USB Stick

An der Virtual Box
An der Console anmelden und eine Datei löschen:
sudo rm /etc/udev/rules.d/70-persistent-net.rules
sudo poweroff
HDD vom Host auswerfen und in den H340 einbauen.
H340 neu starten, durch einen kurzen Piep wird erfolgreiche Start bestätigt

Anmelden an der openmediavault

Mit http://openmediavault kann man auf die Weboberfläche zugreifen wenn man den vorgeschlagenen Namen verwendet hat und im internen Netzwerk Namensauflösung funktioniert.
Der Benutzer für die Admin Oberfläche ist admin und das Passwort openmediavault.

Konfiguration der openmediavault

Folgendes habe ich nach der Installation durchgeführt

  • Allgemeine  Einstellungen / Sitzungslimit auf 0
  • Datum und Uhrzeit / ntp Server verwenden
  • Netzwerk / Schnittstellen / Bearbeiten / WOL einstellen
  • Benachrichtigungen / Email konfigurieren
  • Energieverwaltung / Einschaltknopf konfigurieren
  • Aktualisierungsverwaltung / Aktualisierung installieren (Nach der Installation von OMV 3 erhielt ich zunächst einen Fehlermeldung und die Aktualisierung lief nicht wie gewohnt. Es gab zwei Pakete mit 0 Byte Größe angezeigt. Ich habe diese Paket nicht mit ausgewählt und nur den Rest installiert. Danach war dieser Fehler für immer verschwunden)
  • Benutzer / Meinen Benutzer in die Gruppe SSH stecken
  • Dienste / SSH aktivieren

Einrichtung und Feinarbeiten

Festplatten konfigurieren

  • Reale Festplatten / bearbeiten / physikalische Platteneinstellungen 
  • S.M.A.R.T / Einstellungen / Laufwerke / Planmäßige Tests
  • RAID Verwaltung/ (nach einer Neuinstallation werden vorhandene Raids automatisch erkannt)
  • Dateisysteme / Erstellen / Einbinden

Freigabe einrichten

  • SMB/CIFS / aktivieren / Einstellungen
  • SMB/CIFS / Freigaben  / Hinzufügen / + /
  • Name eintippen / Datenträger auswählen / Öffentlich + Nur Gäste auswählen / Speichern (Freigegebenen Ordner) / Speichern (Freigabe) 
  • Anwenden
  • Die somit erzeugte Freigabe ist ohne Autorisierung nutzbar!

Im Terminal

Benutzer zum sudoer machen (nur Beispiel, die Datei kann beliebig heißen)

  • nano /etc/sudoers.d/22_<Benutzer>-nopasswd
  • <Benutzer> ALL=(ALL) NOPASSWD: ALL

Nacharbeit für die spezielle Hardware H340

  • Ansteuerung der i LED blau/rot
  • Ansteuerung der einzelnen HDD LED blau/rot
  • LED und Taster über Front USB
Edit August 2022: Einige Quellen im Internet sind weg, die aktuellen Systeme (OMV6) laufen mit systemd - deswegen habe ich diese Beschreibung aktualisiert.

Es gibt diverse Varianten von Treibern für diese LEDs. Einfach nach mediasmartserverd googeln und man wird fündig z.B. hier. Es ist relativ einfach diesen Treiber selbst kompilieren:

per ssh anmelden und Software installieren, das zweite Paket ist ein virtuelles und muss je nach System speziell ausgewählt werden. Danach wird die Quelle von Github herunter geladen, entpackt und compiliert.

sudo apt update
sudo apt install g++
sudo apt install libstdc++-dev
sudo apt install libudev-dev make
sudo apt install unzip
wget https://github.com/merelin/mediasmartserverd/archive/refs/heads/master.zip
unzip mediasmartserverd-master.zip
cd mediasmartserverd-master/
make
cd ..

Probestart (ctrl+c zum Beenden)

sudo ./mediasmartserverd

Funktioniert alles, kann man einen systemd Service einrichten. Die Unit Datei habe ich von hier.

sudo systemctl edit --full --force mediasmartserverd.service
sudo cp mediasmartserverd-master/mediasmartserverd /usr/local/sbin/
sudo systemctl enable mediasmartserverd.service
sudo systemctl start mediasmartserverd

Der Aufruf kann noch modifiziert werden, z.B. um die Helligkeit der LED einzustellen.

Erweiterungen installieren

Für openmediavault stehen zahlreiche Erweiterungen zur Verfügung. Und da in den grundlegenden Erweiterungen nicht allzu viel vorhanden ist gibt es noch die Erweiterung der Erweiterung. Hier vor allem "Autoshutdown"
Die Erweiterungen von omv-extras.org werden wie folgt hinzugefügt
Für OMV 2 diese Datei herunterladen.
Für OMV 3 diese Datei herunterladen.
Erweiterungen / hochladen / lokale Datei auswählen
Erweiterungen ganz unten / omvextrasorg x.xx / installieren

Es dauert irgendwie eine Weile und man muss die Ansicht aktualisieren aber dann sind die zusätzlichen Erweiterungen zu sehen und  unter System gibt es einen zusätzlichen Administrationspunkt für weitere Erweiterungen.

Nützliche Befehle

Ausschalten per Kommandozeile
sudo poweroff

Links und Hinweise

Aktuelle Anleitung Installation OMV
Automatische Installation debian