Me gustaría establecer la contraseña para la nueva cuenta como la entrada (cadena) que ingresó el usuario. Parece que esto no funciona. Por cierto, esto es parte de un guión más grande, solo incluí las partes relevantes para este problema.

Entonces, si ejecuto el código, obtengo el siguiente código de error: /create-user.sh: línea 36: usuario3: hej: comando no encontrado. La línea aquí es diferente ya que es parte de un script más grande. el "hej" de arriba es lo que ingresé como entrada para la contraseña cuando ejecuté el código. Supongo que shell piensa que "hej" se supone que es un comando, pero debería ser una cadena para la contraseña. Para aclarar, hej debería ser la contraseña.

#!/bin/bash

# Get the username (login).
read -p "Please enter a username: "  username

# Get the password.
read -p "Please enter an initial password: " password

# Create the account.
useradd "$username"

# Set the password.
chpasswd | "$username":"$password"
0
Humphrey Brogart 5 mar. 2021 a las 23:41

1 respuesta

La mejor respuesta

$username:$password debe ser la entrada para el comando chpasswd. Estás canalizando la salida de chpasswd a un comando formado a partir de eso. Dado que el nombre de usuario: contraseña no es el nombre de un comando, aparece un error.

Lo que quieres es:

chpasswd <<< "$username:$password"
0
Barmar 5 mar. 2021 a las 21:18