¿Por qué alguien no debería usar contraseñas en la línea de comando?

33

¿Por qué la gente teme escribir contraseñas en la línea de comando?

El archivo de historial se encuentra en ~/.history, por lo que está disponible solo para el usuario que ejecutó los comandos (y root).

Insecto
fuente
2
Puede evitar registrar algunos comandos en su archivo de historial. Vea las respuestas en Evite mantener el comando en la historia
Luc M
55
Yuk! Incluso si define su contraseña con export mypass=secrety usa a_command --password=$mypass, verá secreten la pstabla.
Luc M

Respuestas:

51

Las líneas de comando no solo están disponibles en el historial. También están disponibles, por ejemplo, en la salida de ps -ocmdoa través del /procsistema de archivos. ( /proc/<pid>/cmdline) que es donde los pslee.

Además, los directorios principales de los usuarios suelen ser legibles en todo el mundo o en grupo; puede hacer que el archivo de historial solo sea legible por el usuario, pero eso podría no sobrevivir a la eliminación y la recreación.

rici
fuente
17

Las contraseñas en la línea de comando son una mala idea en todos los sentidos. Además de los métodos discutidos en las otras respuestas:

  • / proc
  • lista de procesos ( ps)
  • archivo de historial del usuario

Los comandos de usuario también pueden aparecer en estas ubicaciones:

  • registros de auditoría
  • / var / log / *

Además, los comandos del usuario también pueden aparecer cuando los usuarios inician sesión entre sistemas, por lo que, en general, es una mala práctica y debe evitarse en todo momento.

slm
fuente
3
+1 para la referencia / var / log: tenga en cuenta que a menudo los registros importantes del sistema pueden enviarse a otro lugar y no necesariamente permanecen en el mismo sistema. Por lo tanto, sus contraseñas también pueden transmitirse inadvertidamente a través de la red en texto sin formato.
Mark Glossop
11

El problema es la visibilidad de los parámetros (para otros usuarios en la mayoría de los casos, incluso para root) mientras se ejecuta el comando. Ver la salida de

ps -eo pid,user,args
Hauke ​​Laging
fuente