Postfix - Befehl Postmap => Command not found

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
BenKo
Beiträge: 4
Registriert: 30.12.2020 14:26:00

Postfix - Befehl Postmap => Command not found

Beitrag von BenKo » 30.12.2020 14:49:54

Hallo Unixgemeinde,
ich bin ein recht unerfahrener unixuser, aktuell bastel ich mir für Lehrzwecke ein Netzwerk aus verschiedenen Betriebsystemen in VMs.
Das vorab um zu erklären, warum Einstellungen nicht auf dem höchsten Sicherheitsstandard sind!

Momentan bin ich dabei mir einen "unsicheren Mailserver" mit Postfix zu bastelm.

Folgende schritte habe ich getätigt:

zunächst die Installation => apt-get install postfix - als root ausgeführt

in dem installationsfester habe ich die default variante (Internet-Server) installiert also keinerlei vorkonfigurierung.

mein 2. Schritt war dann, dass Erstellen einer Alias-Datei => nano /etc/postfix/virtual_alias

in der Datei habe ich dann 4 Nutzer wie folgt angelegt:

alice@victim.local alice@localhost
bob@victim.local bob@localhost
usw.

jetzt kommt mein Problem....
Diese datei muss ich ja in eine Datenbank-Datei umwandeln also in eine .db datei.
=> postmap /etc/postfix/virtual_alias
bei dem befehl "postmap" wird mir dann von der shell gesagt "command not found"

Natürlich habe ich nun auch schon etwas herum gegoogelt - ich habe geschaut ob Postfix + Postmap auch tatsächlich installiert ist - ja ist in dem Verzeichnich /usr/sbin drin.

Wäre für Tipps und Hilfen in dem fall sehr dankbar :)

MfG

Bene

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: Postfix - Befehl Postmap => Command not found

Beitrag von novalix » 30.12.2020 18:04:07

Hola,

das Beschriebene deutet darauf, dass Du die Root-Rechte über den Befehl "su" erlangt hast.
Früher hat der nackte Befehl dazu geführt, dass man auch die vollständige Pfadumgebung von root angenommen hat. Das hat sich mittlerweile geändert. Heuer musst Du entweder die User-Angabe vollständig machen:

Code: Alles auswählen

su -l root
oder Du benutzt die Abkürzung (syntactic sugar), die nur für root gilt: Als dritte Möglichkeit kannst Du den Befehl auch mit dem vollständigen Pfad aufrufen:

Code: Alles auswählen

/usr/sbin/postmap
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

BenKo
Beiträge: 4
Registriert: 30.12.2020 14:26:00

Re: Postfix - Befehl Postmap => Command not found

Beitrag von BenKo » 31.12.2020 10:51:22

Hallo vielen Dank für die schnelle Antwort!

Deine Lösung hat auch funktioniert!

Ich hab den Unterschied noch nicht ganz verstanden zwischen anmelden mit su und su - aber das werde ich mir mal noch genauer durchlesen :)
Ich wünsche aber schonmal ein guten rutsch ins neue Jahr!

ps. Darf ich mir deine Antwort kopieren und weiterleiten?

MfG Bene

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: Postfix - Befehl Postmap => Command not found

Beitrag von novalix » 31.12.2020 12:32:48

Hi,

die Handbuchseite von "su" ist schon mal eine gute Referenz.

Code: Alles auswählen

man su
Grundlegend ist der Unterschied zwischen einfacher Userkennung und vollständiger Login-Shell.
Stell Dir vor Du arbeitest normalerweise unter Deinem User-Account, möchtest aber regelmäßig ein Programm unter "/usr/sbin" mit Root-Rechten ausführen. Ein normaler User hat normalerweise keine Berechtigung Programme unter diesem Pfad auszuführen, deshalb ist dieser Pfad per Voreinstellung nicht in der Umgebungsvariable "$PATH" vorhanden. Du kannst Dir den Inhalt dieser Variable anschauen:

Code: Alles auswählen

echo $PATH
Wenn Du jetzt als normaler User das Programm "postmap" aufrufen willst, musst Du also den vollen Pfad zur ausführbaren Programmdatei angeben.

Code: Alles auswählen

/usr/sbin/postmap $Pfadargument
Allerdings wirst Du eine Fehlermeldung erhalten, dass Du nicht berechtigt bist dieses Programm auszuführen. Dazu brauchst Du eine andere User-Kennung. Das kann in manchen Fällen ein bestimmter System-User sein (z.B. "postfix", "postgres", etc.) oder eben "root". Der darf alles.
Ein einzelnes Programm könntest Du mit "su" auch so absetzen:

Code: Alles auswählen

su -c "postmap $Pfadargument" root
Wegen der Whitespaces im Programmaufruf muss dieser gequotet werden, also in Anführungszeichen gesetzt werden. Ansonsten würde "su" den String "$Pfadargument" (in Deinem Fall "/etc/postfix/virtual_alias") als Nutzerkennung verstehen, was natürlich eine Fehlermeldung provoziert.
Probiere es einfach mal aus.

Selbstverständlich kannst Du meine Antworten auch weiterleiten. Wenn es der Wahrheitsfindung dient?
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

BenKo
Beiträge: 4
Registriert: 30.12.2020 14:26:00

Re: Postfix - Befehl Postmap => Command not found

Beitrag von BenKo » 31.12.2020 14:08:22

Danke für die super Erklärung!

Ja es dient der Wahrheitsfindung - als hintergrund dazu: Ich bin Gerade eine Umschulung zum Anwendungsentwickler am machen.
Mein Ziel ist es mich auf den Bereich "Sicherheit" zu spezialisieren - dazu bastel ich mir gerade eine kleine Laborumgebung in einem VM- Netzwerk (Win 10 Pro, Kali Linux, Debian für FTP, Mail und DNS-Server, Metasploitable und Win2012 Server). Wir machen das im grunde ausserhalb der Umschulung um ein tieferen Einblick in die verschiedenen Systeme zu bekommen und um genauer zu verstehen "was passiert in den Systemen, wie Funktionieren die einzelnen Programme".

Ich selbst bin mit Debian absolut unerfahren - das letzte mal das ich Linux Benutzt habe war mit Open Suse 10.1 - also schon Jahre her.
Nun will ich mich aber wieder in die Systeme rein arbeiten und das ganze später dann auch Beruflich weiter machen.

so viel dazu :)

ich hätte auch noch eine weitere Frage wo ich gerade etwas am stolpern bin:

Folgendes:
ich bin gerade über bind9 ein DNS-server am bastel - ich habe eine reverse data angelegt, diese datei muss ich dem Daemon bekannt machen.

geschrieben habe ich das nun folgendermaßen:

zone "victim.local" {
type master;
file "/etc/bind./db.victim.local";
}

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1.0";
};

meine frage zu dem ganzen (hab es auch schon gegoogelt aber noch nicht ganz verstanden) - in der 2. zone gebe ich ja im grunde das anzuwendende netzwerk an - wenn ich da nun aber das Standard Fritzbox Netz angebe also IP 192.168.178.0 wie müsste ich dann die erste zone definieren? wäre das dann auch 178.168.192 oder wie würde ich das auflösen?

Danke schonmal vorab.

BenKo
Beiträge: 4
Registriert: 30.12.2020 14:26:00

Re: Postfix - Befehl Postmap => Command not found

Beitrag von BenKo » 31.12.2020 16:34:30

Lösung gefunden :) nun läuft erstmal alles ^^

Antworten