SSHD wird nicht in PATH angezeigt, SSH jedoch?

0

Ich arbeite derzeit am ssh-Protokoll in Python und habe viel Zeit verschwendet, um den openssh-Server zu starten. Danach konnte ich es starten und meine Python-Skripte normal ausführen. Es gab auch keine Berechtigungsprobleme.

Aber das Problem ist, wenn ich es tue which ssh, gibt es den Speicherort des openssh-Clients (usr / bin / ssh). Aber wenn ich es versuche which sshd, gibt es nichts zurück, aber der Server funktioniert bis jetzt einwandfrei. Warum passiert das und wie kann ich das beheben?

aditya rawat
quelle
Das scheint normal zu sein. sudo which sshdsollte etwas drucken. Nichts zu reparieren.
Kamil Maciorowski
@KamilMaciorowski a "which sshd" funktioniert gut für mich als normaler Benutzer auf meiner Ubuntu 16.04 und CentOS 6 Box. Eine teilweise Problemumgehung (als Root) könnte darin bestehen, find / -type f -executable -name "sshd" zu verwenden
davidgo
@KamilMaciorowski du hast recht. Es ist nichts, worüber man sich Sorgen machen müsste. Aber wie von davidgo erwähnt, sollte es auch ohne root-Privilegien funktionieren
aditya rawat
Nein, da der SSHD-Daemon root sein muss, um zu starten, da er einen der "niedrigen" Ports öffnet. Außerdem wird er normalerweise als Dienst verwendet, da sein genauer Standort nur in der Dienstdefinition relevant ist.
Magnet
@xenoid Danke für deine Hilfe. Es ist mir sehr klar.
Aditya Rawat

Antworten:

2

sshist normalerweise dafür gedacht, von irgendjemandem ausgeführt zu werden, sshdist nicht dafür gedacht, von regulären Benutzern aufgerufen zu werden; deshalb ist der erstere (zB) in /usr/binund der letztere in /usr/sbin.

Nun, diese Pfade können variieren. Der Punkt ist das Verzeichnis der sshausführbaren Datei in regelmäßigem Benutzer ist PATH, aber das Verzeichnis der sshdausführbaren Datei ist in der Regel nicht (es sollte in seine root‚s PATHobwohl).

Sie können Ihren (regulären) Benutzer PATHselbst ändern , aber das Hinzufügen /usr/sbinwird nicht viel nützen, da Sie entweder keine Dateien von dort ausführen können oder Sie formal in der Lage sind, sie auszuführen, aber Sie haben die Erlaubnis Ausgaben später.

Daran ist nichts besonderes auszusetzen. Sie sollten das System nicht auf diese Weise beschädigen können. Dies wird jedoch Ihre Befehlszeilen-Copletion (Tabulatorerweiterung) mit ausführbaren Dateien verunreinigen, die Sie niemals als regulärer Benutzer ausführen müssen.

Diese ausführbaren Dateien benötigen rootaus Gründen. Aus sshdden Gründen sind:

  • Es soll ein systemweiter Dienst sein, ein Daemon. zu starten, sobald das System startet, wenn noch keine Benutzer angemeldet sind; andere Benutzer in das System zu lassen;
  • Es öffnet oft einen "niedrigen" Port, dies ist regulären Benutzern selten gestattet.

which sshdGibt nichts für Sie zurück, sudo which sshdsollte etwas zurückgeben. Das scheint normal zu sein. Es gibt nichts zu beheben.

Kamil Maciorowski
quelle
Abgesehen davon, dass sie von regulären Benutzern ausgeführt werden KANN - das ist nicht ungewöhnlich und startet sie einfach auf Port 2222
davidgo,
@davidgo: '' Sie kann von regulären Benutzern betrieben werden ''? Ich hoffe das ist eine Autokorrektur. … Aber im Ernst - während es wahr ist, dass ein regulärer Benutzer einen Socket an Port # 2222 binden kann, was bringt es, einen nicht privilegierten sshd-Server zu betreiben? Es kann nicht auf einen anderen Benutzer als Sie festgelegt werden, und es kann nicht einmal Ihr Passwort verifizieren. Ich nehme an, es kann die passwortlose Anmeldung als Sie selbst unterstützen, aber wie sieht der Anwendungsfall aus?
Scott
Sag mir, ob ich das richtig verstanden habe. SSHD ist ein Daemon, dh ein systemweiter (ein Server-) Dienst. Es ist also sehr sinnvoll, dass er im root PATHssh-Dienst (ein Client für SSH-Server) enthalten ist, auf den jeder zugreifen kann.
Aditya Rawat
@adityarawat Grundsätzlich ja. Es gibt weitere Tools wie dieses. Dämonen oder nicht, es spielt keine Rolle; Was zählt, ist, dass sie besonders nützlich sind root, nicht für reguläre Benutzer.
Kamil Maciorowski