¿Cómo se crea un usuario sin contraseña?

22

En os X es posible tener usuarios sin contraseñas. Si los inspecciona con dsclsu contraseña, aparecerá como *. Esto se usa para usuarios del sistema, como usuarios de bases de datos como mysql, pgsqletc. Lo bueno de esto es que estos usuarios no se muestran en la pantalla de inicio de sesión y no se puede iniciar sesión como ellos sin sudoetc.

Después de eliminar a ese usuario que intentaba algunas cosas, quería recrearlo, pero no pude. Pude conseguir un usuario con una contraseña en blanco y pude establecer la contraseña en *. Pero ninguno tuvo el mismo efecto que el anterior, ya que el usuario apareció en mi pantalla de inicio de sesión.

¿Cómo se crea un usuario así?

googletorp
fuente
En Linux, pasa el indicador --disabled-password a adduser. ¿Quizás OS X tiene algo similar en su repertorio de línea de comandos?
BR
Querías decir; el usuario puede iniciar sesión sin una contraseña o no puede iniciar sesión porque no hay una contraseña establecida?
Chris Huang-Leaver
1
Noté que no aceptó una respuesta ... un requisito para mantenerse fuera de las diversas listas de xdm es tener un ID de usuario significativamente bajo. en muchos sistemas useraddcomienza a agregar identificadores en 1000, y los administradores de inicio de sesión no mostrarán los identificadores de usuario debajo de eso, sino todo lo anterior. así que, aunque no es una respuesta a esta pregunta, podría ser la resolución del problema. tenga en cuenta que 1000 es arbitrario y puede ser menor o mayor en su distribución. Para solucionarlo, simplemente modifique la entrada del usuario /etc/passwdpara tener un uid más bajo. Ahora para mí ir a hacer una pregunta similar.
xenoterracide
@xenoterracide: cuando volví a crear el usuario, le di la ID anterior, fue el usuario pgsql que eliminé el que tiene una identificación más alta que la de mysql, así que estoy seguro de que no tuvo ningún impacto en este caso , pero gracias por la información de todos modos.
googletorp

Respuestas:

6

Puede ejecutar passwd --delete <username>después de crear el usuario con adduser. Después de esto, podrá iniciar sesión sin ingresar una contraseña.

Eugen Anghel
fuente
44
Creo que eso es exactamente lo contrario de lo que se pide aquí.
Shadur
Al principio, pensé que esta era la respuesta correcta (o la mejor), hasta que volví a leer la pregunta del OP, que menciona "usuario del sistema" y no aparece en la "pantalla de inicio de sesión". Este método aparecerá en la pantalla de inicio de sesión y puede 'sudo' usando este método.
HidekiAI
3

Un usuario en / etc / passwd con el directorio de inicio de / dev / null y el shell de / sbin / nologin, se puede usar para sudar comandos, pero no se puede iniciar sesión, por ejemplo;

de mi / etc / passwd

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

Recuerdo a medias que esto también hará que desaparezca de la pantalla de inicio de sesión de XDM, pero ya no uso XDM, así que es una suposición :-)

Chris Huang-Leaver
fuente
Esta es la respuesta correcta porque el OP solicitó una cuenta que no puede 'sudo' o mostrar en la "pantalla de inicio de sesión", configurando '/ sbin / nologin' para shell. Una cosa a tener en cuenta es que el OP solicitó "usuario del sistema", también debería mencionar que 'useradd --system' debe usarse para crear UID en un número bajo (como lo hace portage / ebuild)
HidekiAI
3

Puede usar usermod, lo que deshabilitará la contraseña usando un en !lugar de un *.

usermod -L <username>

Desde la página del manual en usermod:

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

Usar dscldaría

dscl . -passwd /Users/myuser ""
Raffi
fuente
Esto, a diferencia de la mayoría de las respuestas anteriores ... realmente funcionó para mí.
GroovyCakes
1

No puedo estar seguro acerca de OSX, pero en FreeBSD puede usar:

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

el valor de -pasado a la -hopción le indica pwque establezca el campo de contraseña en master.passwd *, creando así una cuenta sin inicio de sesión. Configurar el shell no es estrictamente necesario, pero evita una comprobación del shell desde /etc/pw.conf.

gvkv
fuente
1

Dejar el campo de contraseña vacío para el usuario en el passwdarchivo funcionará.

Nikhil Mulley
fuente
-1

En Linux uso:

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

La siguiente alternativa debe ser más multiplataforma (si la -ropción no está disponible):

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

Aquí:

  • la contraseña en / etc / shadow se establecerá en *. Sin -p \*eso será!

  • shell será /sbin/nologin(también puede usarlo /bin/false, pero creo que /binpuede estar montado demasiado tarde en algunos sistemas). Entonces el usuario no puede iniciar sesión

  • -d establece homedir del usuario

NOTA IMPORTANTE

Aquí -rcrea un usuario del sistema:

Esta bandera se usa para crear una cuenta del sistema. Es decir, un usuario con un UIDvalor inferior al UID_MINdefinido en /etc/login.defs y cuya contraseña no caduca. Tenga en cuenta que useradd no creará un directorio de inicio para dicho usuario, independientemente de la configuración predeterminada en /etc/login.defs . Debe especificar la -mopción si desea que se cree un directorio de inicio para una cuenta del sistema. Esta es una opción agregada por Red Hat .

La opción -rpuede no estar presente en su sistema. Entonces, para crear un usuario del sistema, que no se muestra en la pantalla de inicio de sesión, creo que puede usar la -Kopción. Algo así como: -K UID_MIN=100 -K UID_MAX=499. Puedes probar opciones como:

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

para determinar automáticamente UID_MAX, pero no lo he probado en OS X. Usted necesitará utilizar SYS_UID_MAXpara UID_MINsi es no comentada de /etc/login.defs

Lo mismo es para GID_MAXy GID_MINpara la identificación del grupo del sistema. (Ver GID_MINy si no está comentadoSYS_GID_MAX en /etc/login.defs para usar como GID_MAX)

Роман Коптев
fuente