mtak@rubiks:~$ ssh admin@pdv1
admin@pdv1's password:
Linux pdv1 4.4.8-1-pve #1 SMP Tue May 17 16:14:08 CEST 2016 x86_64
Last login: Wed Aug 24 12:05:28 2016 from xxx
root@pdv1:~#
Interessanterweise wird UID 0, obwohl sie den Benutzernamen admin hat, immer noch wie root@pdv1in der Shell
angezeigt
1
@Dezza Kommt evtl. darauf an, dass die Auftragspositionen in / etc / passwd aufgelistet sind (wie in: finde den ersten Eintrag mit UID = 0).
TripeHound
19
Ich schätze den Ansatz von @mtak in der anderen Antwort, aber die Antwort ist auch ohne diese Versuche offensichtlich.
Es basiert auf dem UID, wie Sie im Quellcode von openssh sehen können:
if (authctxt->pw->pw_uid == 0 &&
!auth_root_allowed(auth_method))
authenticated = 0;
Auch jede Authentifizierungsmethode zeigt so etwas
if (pw->pw_uid == 0 && options.permit_root_login != PERMIT_YES)
ok = 0;
grep-wenn Sie weiter unten im Code nachsehen, werden Sie vielleicht feststellen, dass es keine strcmp('root', pw->pw_name)oder irgendeine Alternative gibt, wenn es für Sie ausreicht.
Woher wissen Sie ,sshd ob eine UID 0 vorliegt? Sie verwenden keine Argumentation, um Ihre Aussage zu stützen.
MTAK
2
Unix definiert einen Superuser durch seine UID = 0. Als weiteres Beispiel kann ein Quellcode von openssh.
Jakuje
Der Kernel tut es, aber Sie gingen davon aus, dass OpenSSH es auch tat. Zum Beispiel erlaubt die Apache-Basisauthentifizierung keine Root-Anmeldung, oder? Vielen Dank für den Link. Ich habe Ihre Antwort dahingehend geändert.
MTAK
1
Wenn es anders gemacht würde, wäre es ein potenzielles Sicherheitsrisiko.
Jakuje
3
@ Bakuriu und warum würde es den pwKontext aus etwas anderem erstellen . Der opensshCode ist Open Source und interessierte Leser können den gesamten Code durchgehen. Ähnliche Konstruktionen sind für jede Authentifizierungsmethode im gesamten Code enthalten. Wenn Sie grepden Code durchgehen, werden Sie nie feststellen strcmp('root', pw->pw_name), ob er für Sie zuverlässiger wird.
root@pdv1
in der ShellIch schätze den Ansatz von @mtak in der anderen Antwort, aber die Antwort ist auch ohne diese Versuche offensichtlich.
Es basiert auf dem
UID
, wie Sie im Quellcode von openssh sehen können:Auch jede Authentifizierungsmethode zeigt so etwas
grep
-wenn Sie weiter unten im Code nachsehen, werden Sie vielleicht feststellen, dass es keinestrcmp('root', pw->pw_name)
oder irgendeine Alternative gibt, wenn es für Sie ausreicht.quelle
sshd
ob eine UID 0 vorliegt? Sie verwenden keine Argumentation, um Ihre Aussage zu stützen.openssh
.pw
Kontext aus etwas anderem erstellen . Deropenssh
Code ist Open Source und interessierte Leser können den gesamten Code durchgehen. Ähnliche Konstruktionen sind für jede Authentifizierungsmethode im gesamten Code enthalten. Wenn Siegrep
den Code durchgehen, werden Sie nie feststellenstrcmp('root', pw->pw_name)
, ob er für Sie zuverlässiger wird.