Come si crea un utente senza password?


22

In os X è possibile avere utenti senza password. Se li controlli con la dsclloro password, mostra come *. Questo è usato per utenti di sistema come utenti per database come mysql, pgsqlecc. La cosa bella di questo è che questi utenti non vengono visualizzati nella schermata di accesso e non puoi accedere come loro senza sudoecc.

Dopo aver eliminato un utente del genere provando alcune cose, volevo ricrearlo, ma non ci sono riuscito. Sono riuscito a ottenere un utente con una password vuota e ho potuto impostare la password su *. Ma nessuno ha avuto lo stesso effetto di cui sopra, come ha mostrato l'utente nella mia schermata di accesso.

Come si crea un tale utente?


Su Linux, si passa il flag --disabled-password a adduser. Forse OS X ha qualcosa di simile nel suo repertorio da riga di comando?
BR

Intendevi; l'utente può accedere senza password o non può accedere affatto perché non è stata impostata alcuna password?
Chris Huang-Leaver,

1
Ho notato che non hai accettato una risposta ... un requisito per rimanere fuori dalle varie liste xdm è avere un userid significativamente basso. su molti sistemi useraddinizia ad aggiungere ID a 1000 e i gestori degli accessi non mostreranno gli ID utente al di sotto, ma tutto sopra. quindi sebbene non sia una risposta a questa domanda, potrebbe essere la soluzione al problema. tieni presente che 1000 è arbitrario e potrebbe essere inferiore o superiore nella tua distribuzione. Per correggere basta modificare la voce dell'utente /etc/passwdper avere un UID inferiore. Ora per me andare a fare una domanda simile.
xenoterracide,

@xenoterracide: quando ho ricreato l'utente, gli ho dato il vecchio ID, era l'utente pgsql che ho eliminato che aveva un ID superiore a quello mysql, quindi sono sicuro che non ha avuto alcun impatto in questo caso , ma grazie comunque per le informazioni.
googletorp,

Risposte:


6

È possibile eseguire passwd --delete <username>dopo aver creato l'utente con adduser. Dopodiché, sarai in grado di accedere senza inserire una password.


4
Penso che sia esattamente l'opposto di ciò che viene richiesto qui.
Shadur,

All'inizio, ho pensato che questa fosse la risposta giusta (o migliore), fino a quando non ho riletto la domanda del PO, che menziona "utente di sistema" e non compare nella "schermata di accesso". Questo metodo verrà visualizzato nella schermata di accesso e puoi 'sudo' usando questo metodo.
HidekiAI

3

Un utente in / etc / passwd con la directory home di / dev / null e la shell di / sbin / nologin, può essere usato per eseguire comandi sudoing, ma in realtà non può essere loggato, per esempio;

dal mio / etc / passwd

tcpdump:x:104:441:added by portage for tcpdump:/dev/null:/sbin/nologin

Ricordo che questo lo farà scomparire anche dalla schermata di accesso di XDM, ma non uso più XDM, quindi è un'ipotesi :-)


Questa è la risposta giusta perché l'OP ha richiesto un account che non è possibile "sudo" o visualizzare nella "schermata di accesso", impostando "/ sbin / nologin" per la shell. Una cosa da notare è che l'OP ha chiesto "utente di sistema", inoltre, dovrebbe menzionare che "useradd --system" dovrebbe essere usato per creare UID in numero basso (come fa portage / ebuild)
HidekiAI

3

È possibile utilizzare usermod, che disabiliterà la password utilizzando un !anziché un *.

usermod -L <username>

Dalla pagina man su usermod:

-L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectively disabling the password.

2

Usando dscldarebbe

dscl . -passwd /Users/myuser ""

Questo, a differenza della maggior parte delle risposte sopra ... ha funzionato davvero per me.
GroovyCakes

1

Non posso essere sicuro di OSX, ma su FreeBSD puoi usare:

pw add user mymuser -g mygroup -s /nonexistent -h -

il valore -passato -hall'opzione indica pwdi impostare il campo password in master.passwd su *, creando così un account senza accesso. L'impostazione della shell non è strettamente necessaria, ma evita un controllo della shell da /etc/pw.conf.


1

Lasciando vuoto il campo della password per l'utente nel passwdfile funzionerà.



-1

Su Linux utilizzo:

sudo useradd -r -p \* -s /sbin/nologin -c "Comment My Daemon,,,"  -d "/var/uuu"  myuser

La prossima alternativa deve essere più multipiattaforma (se l' -ropzione non è disponibile):

sudo useradd -K UID_MIN=100 -K UID_MAX=499 -K GID_MIN=100 -K GID_MAX=499 -p \* -s /sbin/nologin -c "Comment My Daemon,,,"  -d "/var/uuu"  myuser

Qui:

  • la password in / etc / shadow verrà impostata su *. Senza -p \*lo sarà!

  • lo sarà shell /sbin/nologin(puoi usare /bin/falseanche tu , ma penso che /binpotrebbe essere montato troppo tardi su alcuni sistemi). Quindi l'utente non può accedere

  • -d imposta homedir dell'utente

NOTA IMPORTANTE

Qui -rcrea un utente di sistema:

Questo flag viene utilizzato per creare un account di sistema. Cioè, un utente con un UIDvalore inferiore a quello UID_MINdefinito in /etc/login.defs e la cui password non scade. Si noti che useradd non creerà una home directory per tale utente, indipendentemente dall'impostazione predefinita in /etc/login.defs . Devi specificare l' -mopzione se vuoi creare una home directory per creare un account di sistema. Questa è un'opzione aggiunta da Red Hat .

L'opzione -rpotrebbe non essere presente sul tuo sistema. Quindi, per creare un utente di sistema, che non viene visualizzato nella schermata di accesso, penso che sia possibile utilizzare l' -Kopzione. Qualcosa come: -K UID_MIN=100 -K UID_MAX=499. Puoi provare un'opzione come:

-K UID_MAX=$(cat /etc/login.defs | grep ^UID_MIN | awk '{print $2}')

automaticamente stabilire voi UID_MAX, ma io non ho testato su OS X. Avrete bisogno di utilizzare SYS_UID_MAXper UID_MINse è commentata in /etc/login.defs

Lo stesso vale per GID_MAXe GID_MINper l'id del gruppo di sistema. (Vedi GID_MINe se non commentato SYS_GID_MAXin /etc/login.defs da usare come GID_MAX)

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.