¿Cómo debería alguien crear una contraseña cifrada para / etc / shadow?

9

Estoy configurando una nueva cuenta en un cuadro de Linux para el acceso al repositorio de Subversion, y puedo enviar la contraseña al nuevo usuario. Sin embargo, creo que había una utilidad de línea de comandos para que este nuevo usuario encriptara la contraseña que le gusta en un formato que pueda copiar / pegar directamente en el archivo / etc / shadow.

¿Cuál fue el comando completo que este nuevo usuario debe ejecutar en la consola (por ejemplo, Bash) para crear una contraseña encriptada?

ACTUALIZACIÓN: el usuario no podrá iniciar sesión en la máquina, y la cuenta se utilizará simplemente para svn + ssh: // acceso. Por lo tanto, el usuario no puede cambiarlo él mismo.

Egon Willighagen
fuente
El usuario pregunta acerca de las secuencias de comandos bash, ya que obviamente no va a hacer esto manualmente.
Tim Post

Respuestas:

15

el usuario puede ejecutar en su computadora algo como:

echo "password"|openssl passwd -1 -stdin

y luego enviarte la salida.

Daniel
fuente
+1 hace exactamente lo que estás buscando.
Antoine Benkemoun
¿Por qué ese comando da un valor diferente cada vez que lo llamo?
Egon Willighagen
2
El formato de la salida es $ id $ salt $ encriptado. Una identificación diferente y una sal diferente le dan una cadena cifrada diferente. La identificación es el algoritmo utilizado: 0-DES, 1-> MD5, 2a-> Blowfish, 5-> SHA-256, 6-> SHA512
Gonzalo
De acuerdo, entonces necesito descubrir cómo activar una determinada identificación (que era la misma todo el tiempo) y sal (que cambiaba con cada llamada) ... tiene sentido.
Egon Willighagen el
2

El formato de la contraseña en shadow puede variar. Puede configurarlo para que sea MD5 o el viejo DES3 o ... Es bueno enviarle una contraseña a su usuario y obligarla a cambiarla en el primer inicio de sesión ( # chage -d 0 username)

Gonzalo
fuente
1

En lugar de hacer que cifren la contraseña y se la envíen, ¿por qué no decirles que escriban:

passwd

Hará todo lo que desee con la ventaja adicional de que pueden cambiar sus contraseñas sin ningún trabajo adicional para usted.

EDITAR: Según esto , supuestamente hay un comando llamado makepassword que puede obtener para Debian / Ubuntu.

Brendan Long
fuente
Porque eso requiere que el usuario ya haya iniciado sesión. El OP quiere una solución para establecer la contraseña de forma segura antes de que el usuario inicie sesión por primera vez.
Daniel Pryden el
1
Parece que generar una contraseña al azar y hacer que la cambien cuando inician sesión es tan seguro como que generen una contraseña y la agreguen manualmente.
Brendan Long
El usuario hará realidad nunca de inicio de sesión (shell: / bin / false), y sólo permiten el acceso de lectura / escritura SVN ...
Egon Willighagen
2
Puede configurar shell: / usr / bin / passwd: D
Brendan Long el
1
Me refiero a ese último comentario como broma, pero aparentemente funcionará: markmail.org/message/ekuxvnhdagywy4i5
Brendan Long
0

/ etc / passwd y / etc / shadow son muy fáciles de tokenizar con las herramientas habituales de línea de comandos (es decir, grep, awk, sed, tr, etc.).

Lo que se vuelve interesante es el campo hash de contraseña real en / etc / shadow, su prefijo le indica cómo se ha cifrado la contraseña. Del hombre (5) sombra:

The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.

La forma en que se cifró depende en gran medida de la antigüedad del sistema operativo instalado. Es importante prestar especial atención al segundo campo en / etc / shadow.

Debe hacer todo lo posible para seguir cualquier hash que esté utilizando el sistema, ya sea DES, MD5, etc., ya que es muy fácil de detectar.

Tim Post
fuente
0

¿Por qué no SU en el usuario y ejecutar passwd?

Esben Skov Pedersen
fuente
Porque no quiero saber la contraseña ... o que me la envíen sin cifrar.
Egon Willighagen
0

¿Hay alguna manera de generar estas contraseñas a través de la línea de comandos? Sí, con el paquete debian makepasswd (pero solo para MD5):

echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.

Pero esto no funcionará mediante copiar y pegar dentro de / etc / shadow. Para cambiar la contraseña mediante un script en algunas distribuciones de Linux, puede usar:

echo oracle:mypasswd | chpasswd

o

echo -n mypasswd | passwd --stdin oracle

fuente