Unterscheidet der Benutzername unter Unix die Groß- und Kleinschreibung?

20

Ist ssh abc@servernameanders ssh Abc@servername? Ist der Fall des Benutzernamens in Unix von Bedeutung?

Mein Benutzer authentifiziert sich über LDAP.

Saga Saga
quelle
3
Fast alles unter Linux unterscheidet zwischen Groß- und Kleinschreibung. Das heißt: cdist nicht dasselbe wie CD... Die einzige Möglichkeit, sie .bashrc
gleichzusetzen,
1
Ich nehme an, das hängt davon ab, welches LDAP-Attribut Sie für den Benutzernamen verwenden. Wenn es sich um eine UID aus RFC 4519 handelt , wird die Groß- / Kleinschreibung nicht berücksichtigt , aber bei Authentifizierungsimplementierungen wird möglicherweise die Groß- / Kleinschreibung weiterhin berücksichtigt . Dies hängt auch davon ab, wie genau die Authentifizierung mit LDAP erfolgt.
Stéphane Chazelas
1
Ein einfacher Versuch, sich mit Ihrem Benutzernamen in Großbuchstaben anzumelden, hätte dies für Sie in nur wenigen Sekunden beantwortet.
Leichtigkeit Rennen mit Monica

Antworten:

14

Genau wie Hostnamen und Domainnamen ist der Benutzername keine reine Unix-Sache, sondern kann und wird häufig einen größeren Bereich von Betriebssystemtypen abdecken.

Ob bei ihnen zwischen Groß- und Kleinschreibung unterschieden wird, hängt von der Norm ab, nach der sie angegeben wurden.

Hostnamen und Domainnamen unterscheiden nach dem DNS-Standard eindeutig zwischen Groß- und Kleinschreibung (siehe RFC4343 ).

Benutzernamen, die auf einem lokalen Backend (/ etc / passwd) oder einem Unix-Style (NIS) gespeichert sind, werden vom POSIX-Standard nicht zwischen Groß- und Kleinschreibung unterschieden .

Benutzernamen, die in einem LDAP- oder Active Directory-Backend gespeichert sind, folgen der verwendeten Attributschemadefinition uidund cnhaben häufig unterschiedliche Schemaattribute, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird, bei letzteren jedoch die Groß- und Kleinschreibung. Das bedeutet beides Abcund abckann abcje nach Konfiguration des LDAP-Servers mit dem Eintrag übereinstimmen oder auch nicht .

Aufgrund dieser Inkonsistenz würde ich empfehlen, sowohl für Benutzernamen als auch für Host- / Domainnamen nur Kleinbuchstaben zu verwenden und dann zu vermeiden, ssh [email protected]was sowieso unhöflich ist.

jlliagre
quelle
1
Die Art und Weise, wie ich den POSIX-Standard lese , ist implementierungsabhängig, da weder Groß- und Kleinschreibung noch Kleinschreibung berücksichtigt werden und der gesamte portable Zeichensatz für Dateinamen verfügbar ist (der sowohl Groß- als auch Kleinschreibung enthält). Ist das korrekt? Gibt es eine Standardkonvention?
Doug R.
1
@DougR. Für POSIX sind Benutzernamen von der Groß- und Kleinschreibung abhängig. Ansonsten wäre die Groß- / Kleinschreibung nicht berücksichtigt worden. Die Berücksichtigung der Groß- und Kleinschreibung ist bei Verweisen auf den portablen Dateinamen-Zeichensatz implizit.
Juli
Danke für die Klarstellung. Das war meine anfängliche Annahme, aber ich konnte nichts in Bezug auf den portablen Dateinamen-Zeichensatz finden, der dies für die eine oder andere Art feststellte.
Doug R.
5

Ja, es wird zwischen Groß- und Kleinschreibung unterschieden. Ich kann keine technischen Informationen mitbringen, habe sie nur getestet und mich gefragt, warum Sie es nicht getan haben (?)

Meine lokale Maschine ist Linux Mint, wie Sie sehen können:

# cat /etc/*release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.2
DISTRIB_CODENAME=rafaela
DISTRIB_DESCRIPTION="Linux Mint 17.2 Rafaela"
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
cat: /etc/upstream-release: Is a directory

und ich habe versucht, eine Verbindung zum CentOS-Server wie folgt herzustellen:

· Verwenden eines (falschen) Benutzernamens in Großbuchstaben:

8D prova # ssh Root@agora-server
Root@agora-server's password: 
Permission denied, please try again.
Root@agora-server's password: 
Permission denied, please try again.
Root@agora-server's password: 

· Verwenden des richtigen Benutzernamens:

8D prova # ssh root@agora-server
root@agora-server's password: 
Last login: Fri Oct  2 01:50:13 2015 from 192.168.0.31
[root@agora-server ~]# 
lese
quelle
Aus Sicherheitsgründen ist es nicht ratsam, die SSH-Anmeldung als Root zuzulassen, wie hier ausgeführt (insbesondere, wenn der Computer mit dem Internet verbunden ist). Heutzutage muss dies bei OpenSSH in der Regel explizit mit der Option PermitRootLogin in aktiviert werden in der sshd_config. Es ist vorzuziehen, sich als normaler Benutzer anzumelden und dann sudo oder su zu verwenden, um nur bei Bedarf root zu werden.
JohnGH
Ja, das ist richtig. Ich stimme zu, erstens, weil es ein Superuser ist, und zweitens, weil der Angreifer den Benutzernamen "root" kennt, der nur das Passwort abfangen muss. Auf jeden Fall handelt es sich hierbei eigentlich nur um eine virtuelle Maschine, die lokal ausgeführt wird und nicht dem Internierten ausgesetzt ist. Es hat sich bewährt, sich mit RSA-SSH-Zertifikaten anzumelden oder / und den SSH-Port nur für Anforderungen zu öffnen, die von den zulässigen Adressen stammen (Firewall-Regeln)
siehe
3

Bei lokalen Konten unterscheidet der Benutzername zwischen Groß- und Kleinschreibung. Wenn Sie LDAP verwenden, hängt es davon ab. Ich habe Fälle gesehen, in denen der Benutzername zwischen Groß- und Kleinschreibung unterscheidet (auf einer mit LDAP verbundenen ZFS-Appliance) und Fälle, in denen dies nicht wichtig ist, wie bei einem mit Windows AD verbundenen Solaris LDAP-Client.

Was Sie versuchen sollten / könnten, ist zu sehen, ob Ihr System LDAP korrekt verwendet, indem Sie ausgeben getent passwd <username>. Wenn Sie diesen Befehl verwenden, sollten Sie einen Datensatz mit dem Benutzernamen, dem Ausgangsverzeichnis und der Shell für den angegebenen Benutzer erhalten. Wenn Sie einen solchen Datensatz nicht sehen, ist LDAP nicht richtig konfiguriert.

Es gibt verschiedene Orte, an denen Sie LDAP konfigurieren sollten, und einer der Orte ist:

/etc/nsswitch.conf

passwd: files ldap
group:  files ldap

Sie müssen auch überprüfen, ob PAM richtig konfiguriert ist. Der wichtigste Schritt ist möglicherweise, zu überprüfen, ob der LDAP-Client konfiguriert ist und funktioniert. Probieren Sie ein Tool aus ldapsearch, um zu überprüfen, ob LDAP abgefragt werden kann.

Es sind mehrere LDAP-Kochbücher verfügbar. Die meisten davon hängen von der von Ihnen verwendeten Unix- und LDAP-Version ab. Aktualisieren Sie Ihre Frage mit diesen Details, wenn Sie weitere Unterstützung benötigen. Fügen Sie auch Ihr Konfigurationssetup hinzu (natürlich ohne Passwörter), das Forummitgliedern dabei helfen kann, Ihr spezielles Problem zu analysieren.

Lambert
quelle
1

Unix-Benutzernamen unterscheiden auf jeden Fall zwischen Groß- und Kleinschreibung. Außerdem kann die Verwendung von Benutzernamen mit Großbuchstaben auf Unix-Systemen zu unerwünschten Ergebnissen führen und sollte daher generell vermieden werden.

Einige Beispiele sind:

Es kann E-Mails für den Benutzer beschädigen. Die Standards für SMTP ermöglichen, dass bei E-Mail-Adressen die Groß- und Kleinschreibung nicht beachtet wird. Standardmäßig wird die E-Mail-Adresse vom MTA, der die Nachricht empfängt, in Kleinbuchstaben umgewandelt, um den Benutzer zu finden, an den die Nachricht zugestellt werden soll. Wenn der Benutzername aus Großbuchstaben besteht, wird er nicht ohne spezielle Konfigurationsüberschreibungen aufgelöst, um dies zu berücksichtigen. (Dies betrifft MTAs wie sendmail, postfix usw. und auch Zustellungsbearbeitungsagenten wie procmail.)

Bei vielen frühen Hardware-Terminals wurde die Groß- und Kleinschreibung nicht berücksichtigt. Es war üblich, dass sie nur Großbuchstaben verwendeten. Wenn Sie sich bei einigen Versionen von Unix anmelden und einen Anmeldenamen mit einem Großbuchstaben beginnen, geht das System davon aus, dass Sie ein Terminal verwenden, das nur Großbuchstaben verwendet, und aktiviert das Falzen von Großbuchstaben, wodurch alle von Ihnen eingegebenen Großbuchstaben in Kleinbuchstaben umgewandelt werden ( Sie müssen dann die Großbuchstaben maskieren, um sie als Großbuchstaben zu kennzeichnen, damit Sie Ihren Benutzernamen eingeben können, von dem erwartet wird, dass er in Kleinbuchstaben geschrieben wird. Ich glaube nicht, dass dies unter Linux eine Sache ist, aber ich habe es unter HP-UX demonstriert gesehen.

Da es seit langem üblich ist, in Benutzernamen nur Kleinbuchstaben zu verwenden, ist zu erwarten, dass andere Tools (an die wir vielleicht nicht gedacht haben) auf dem System auch davon ausgehen, dass der Benutzername in Kleinbuchstaben geschrieben sein sollte, und Überprüfungen, Konvertierungen usw dementsprechend brechen die Dinge für diesen Benutzer.

JohnGH
quelle
0

Die Benutzernamen unterscheiden auf jeden Fall zwischen Groß- und Kleinschreibung. Sie können dies einfach testen, indem Sie zwei Benutzer mit ähnlichen Namen hinzufügen:

~ # useradd foobar
~ # useradd fooBar
~ # grep ^foo /etc/passwd
foobar:x:1001:1001::/home/foobar:/bin/sh
fooBar:x:1002:1002::/home/fooBar:/bin/sh

Diese Frage / Antwort zeigt, wie Sie jemanden, der versucht, sich mit einem Benutzernamen anzumelden, der den LDAP-Servern zufolge den "falschen" Fall aufweist, entschädigen können. Beachten Sie jedoch, dass dies nur funktioniert, wenn die Benutzernamen alle als Kleinbuchstaben aufgeführt sind (oder wenn Sie möchten, können Sie sie in Großbuchstaben umwandeln).

Falsche Namen
quelle