adduser dice che l'utente esiste quando l'utente non esiste

5

Come dice il soggetto, sto cercando di aggiungere un nuovo utente. Quando eseguo il comando, dice che l'utente esiste già. Ma cercare in / etc / passwd, / etc / group e / etc / shadow mostra che l'utente non esiste.

L'esecuzione del comando sulla mia macchina locale funziona perfettamente. Sto usando Ubuntu 11.10 su entrambi.

Ecco i miei comandi del terminale e output:

[email protected]:~# useradd -s /sbin/nologin -m -d /var/www/html/atc -g 33 -u 10141 atc
useradd: user 'atc' already exists
[email protected]:~# grep atc /etc/passwd
speech-dispatcher:x:111:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
[email protected]:~# grep atc /etc/shadow
speech-dispatcher:!:15259:0:99999:7:::
[email protected]:~# grep atc /etc/group
[email protected]:~# 

Ho anche provato:

[email protected]:~# adduser --shell /sbin/nologin --home /var/www/html/atc --gid 33 --uid 10141 atc
Warning: The home dir /var/www/html/atc you specified already exists.
adduser: The user 'atc' already exists.
[email protected]:~# 

Qualche idea?

    
posta David R. 16.02.2012 - 20:29

3 risposte

6

Prova a digitare quanto segue in un terminale

sudo userdel -r atc

Questo dovrebbe rimuovere tutte le istanze dell'utente

    
risposta data Scott Stookey 16.02.2012 - 20:54
10

C'è qualche ragione per la quale stai specificando l'uid piuttosto che lasciare che il sistema scelga uno per te? Puoi vedere se il tuo ID scelto è in uso facendo grep '10141' /etc/passwd . Se questo è il caso, il messaggio di errore è sicuramente fuorviante: /

È anche possibile che il tuo sistema riconosca utenti che non sono in /etc/passwd , ad esempio utilizzando LDAP. Un modo rapido per testare è fare id atc e vedere se il sistema lo riconosce. Un altro modo sarebbe getent passwd atc che mostrerà anche agli utenti che il sistema riconosce chi non è in /etc/passwd . Oppure puoi controllare di nuovo se l'uid è in uso con getent passwd 10141 . (Puoi anche eseguire getent passwd per ottenere l'elenco completo delle voci.) Ulteriori informazioni su get .

Per vedere da dove potrebbero venire questi utenti potresti guardare /etc/nsswitch.conf ( man page ) - la riga che inizia passwd ti mostrerà dove il tuo sistema sta cercando utenti. I valori di default comuni sono files e compat , sebbene configurazioni più complesse possano avere più valori compresi valori come ldap , dns e winbind . files indica i file standard incluso /etc/passwd .

Non sono così chiaro sul significato esatto di compat , ma la mia lettura della pagina man di nsswitch.conf suggerisce che sia una combinazione di files e nis . nis è il Servizio di informazioni di rete che è ampiamente sostituito in questi giorni ma potrebbe influire sul tuo sistema.

    
risposta data Hamish Downer 16.02.2012 - 23:24
0

Nel mio caso, /etc/nsswitch.conf aveva questo per passwd:

passwd:     files winbind

L'utente era in Active Directory, quindi winbind vedeva un account utente "esistente" in AD.

Running:   # service winbind stop

Quindi l'esecuzione di useradd mi ha permesso di aggiungere l'account utente.

    
risposta data YDY 29.11.2017 - 15:44

Leggi altre domande sui tag