Il nome utente in Unix è sensibile al maiuscolo / minuscolo?


20

È ssh abc@servernamediverso da ssh Abc@servername? Il caso del nome utente è importante in Unix?

Il mio utente esegue l'autenticazione tramite LDAP.


3
Quasi tutto in Linux è sensibile al maiuscolo / minuscolo. Significato: cdnon è lo stesso di CD... L'unico modo per farli davvero significare lo stesso è impostare gli alias nel tuo .bashrcfile ..
ryekayo,

1
Suppongo che dipenda dall'attributo LDAP che usi per il nome utente. Se viene utilizzato da RFC 4519 , non fa distinzione tra maiuscole e minuscole, ma le implementazioni di autenticazione possono ancora imporre il significato del caso su di esso. Dipende anche da come viene eseguita esattamente l'autenticazione con LDAP.
Stéphane Chazelas,

1
Il semplice tentativo di accedere con il tuo nome utente in maiuscolo ti avrebbe risposto in pochi secondi.
Corse di leggerezza con Monica,

Risposte:


14

Proprio come i nomi host e i nomi di dominio, il nome utente non è strettamente una cosa Unix ma può e spesso abbraccia una gamma più ampia di tipi di sistemi operativi.

Se saranno considerati case sensitive dipende quindi dallo standard usato per specificarli.

Nomi host e nomi di dominio sono chiaramente insensibili alle maiuscole e minuscole dallo standard DNS (vedi RFC4343 ).

I nomi utente memorizzati su un backend locale (/ etc / passwd) o uno di tipo Unix (NIS) non fanno distinzione tra maiuscole e minuscole secondo lo standard POSIX .

I nomi utente archiviati in un LDAP o in un back-end di Active Directory seguiranno la definizione dello schema di attributo utilizzato uide cnche spesso memorizzano il nome utente hanno attributi dello schema diversi, senza distinzione tra maiuscole e minuscole per il primo ma sensibili al maiuscolo / minuscolo per il secondo. Ciò significa che entrambi Abce abcpotrebbe corrispondere o meno abcla voce 's seconda della configurazione del server LDAP.

A causa di questa incoerenza, consiglierei di utilizzare solo lettere minuscole sia per i nomi utente che per il nome host / dominio e quindi evitare ssh ABC@SERVERNAME.DOMAIN.COMche sia comunque scortese.


1
Quindi, il modo in cui leggo lo standard POSIX , poiché non è specificato come sensibile al maiuscolo / minuscolo e non è sensibile e l'intero set di caratteri del nome file portatile è disponibile (che include sia maiuscole che minuscole), dipenderà dall'implementazione. È corretto? Detto questo, esiste una convenzione standard?
Doug R.,

1
@DougR. Per quanto riguarda POSIX, i nomi utente dipendono dal caso. L'insensibilità al caso sarebbe stata altrimenti specificata. La distinzione tra maiuscole e minuscole è implicita quando si fa riferimento al set di caratteri del nome file portatile.
jlliagre,

Grazie per il chiarimento. Questa era la mia ipotesi iniziale, ma non riuscivo a trovare nulla riguardo al set di caratteri del nome file portatile che lo affermasse in un modo o nell'altro.
Doug R.,

5

Sì, fa distinzione tra maiuscole e minuscole. Non sono in grado di fornire informazioni tecniche, l'ho appena testato e mi chiedo perché non l'hai fatto (?)

la mia macchina locale è Linux Mint come puoi vedere:

# 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

e ho provato a connettermi al server CentOS in questo modo:

· Utilizzo del nome utente maiuscolo (errato):

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: 

· Utilizzo del nome utente corretto:

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 ~]# 

Come un problema secondario, non è una buona prassi di sicurezza consentire l'accesso SSH come root come è stato fatto qui (in particolare se la macchina è Internet) 😱 In questi giorni con OpenSSH questo di solito deve essere abilitato esplicitamente con l'opzione PermitRootLogin nella nel file sshd_config. È preferibile effettuare il login come utente normale e quindi utilizzare sudo o su per diventare root solo quando necessario.
JohnGH,

Sì, è corretto, sono d'accordo, innanzitutto perché è un superutente, e in secondo luogo il nome utente "root" è noto all'attaccante, che deve solo catturare la password. Comunque questa è in realtà solo una macchina virtuale in esecuzione localmente, non esposta al internato. La buona pratica è usare i certificati rsa ssh per accedere, o / più aprire la porta ssh solo per le richieste provenienti dagli indirizzi consentiti (regole del firewall)
lese

3

Nel caso di account locali, il nome utente fa distinzione tra maiuscole e minuscole. Quando si utilizza LDAP, dipende. Ho visto casi in cui il nome utente fa distinzione tra maiuscole e minuscole (su un'appliance ZFS connessa a LDAP) e casi in cui non importa come il client LDAP Solaris collegato a Windows AD.

Quello che dovresti / potresti provare è vedere se il tuo sistema sta usando correttamente LDAP emettendo getent passwd <username>. L'uso di questo comando dovrebbe fornire un record con nome utente, home directory e shell per l'utente specificato. Se non vedi tale record, LDAP non è configurato correttamente.

Esistono diversi luoghi in cui è necessario configurare LDAP e uno dei luoghi è:

/etc/nsswitch.conf

passwd: files ldap
group:  files ldap

È inoltre necessario verificare se PAM è configurato correttamente e forse il passaggio più importante è verificare se il client LDAP è configurato e funzionante. Prova uno strumento come ldapsearchverificare se LDAP può essere interrogato.

Sono disponibili diversi libri di cucina LDAP e la maggior parte dipende dalla versione Unix e dalla versione LDAP in uso. Aggiorna la tua domanda con quei dettagli se hai bisogno di ulteriore assistenza. Includi anche la tua configurazione (senza password ovviamente) che può aiutare i membri del forum ad analizzare il tuo particolare problema.


1

I nomi utente Unix fanno sicuramente distinzione tra maiuscole e minuscole e, inoltre, l'uso di nomi utente con caratteri maiuscoli sui sistemi Unix può produrre risultati indesiderati, quindi generalmente dovrebbe essere evitato.

Alcuni esempi sono:

Può interrompere la posta elettronica per l'utente. Gli standard per SMTP consentono agli indirizzi e-mail di non distinguere tra maiuscole e minuscole e, per impostazione predefinita, l'MTA che riceve il messaggio piegherà l'indirizzo e-mail in minuscolo per trovare l'utente a cui consegnare. Se il nome utente ha caratteri maiuscoli, non verrà risolto senza speciali sostituzioni di configurazione per soddisfare questo. (ciò riguarda gli MTA come sendmail, postfix ecc. e anche gli agenti di elaborazione delle consegne come procmail)

Molti dei primi terminali hardware non sono stati sensibili al maiuscolo / minuscolo. Era comune che usassero solo lettere maiuscole. Quando si accede ad alcune versioni di Unix, l'avvio di un nome di accesso con un carattere maiuscolo attiverà il sistema presupponendo che si sta utilizzando un terminale solo maiuscolo antico e consentirà la piegatura delle maiuscole, che converte tutte le lettere maiuscole immesse in minuscole ( devi quindi sfuggire ai caratteri maiuscoli per dire che sono in maiuscolo) per aiutarti a inserire il tuo nome utente che si aspetta sarà in minuscolo. Non credo che questo sia qualcosa su Linux, ma l'ho visto dimostrato su HP-UX.

Poiché è stata a lungo la convenzione di utilizzare solo caratteri minuscoli nei nomi utente, è ragionevole aspettarsi che altri strumenti (alcuni dei quali potremmo non aver pensato) sul sistema possano anche supporre che il nome utente debba essere minuscolo e fare controlli, conversioni ecc. di conseguenza, rompendo così le cose per quell'utente.


0

I nomi utente fanno sicuramente distinzione tra maiuscole e minuscole. Puoi testarlo facilmente aggiungendo due utenti con nomi simili:

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

Questa domanda / risposta mostra come compensare qualcuno che sta tentando di accedere con un nome utente che ha il caso "sbagliato" in base ai server LDAP. Ma nota che funzionerà solo se i nomi utente sono tutti elencati in minuscolo (o puoi renderli tutti in maiuscolo se lo desideri).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.