Testigo:
$ ps f
PID TTY STAT TIME COMMAND
31509 pts/3 Ss 0:01 -bash
27266 pts/3 S+ 0:00 \_ mysql -uroot -p
25210 pts/10 Ss+ 0:00 /bin/bash
24444 pts/4 Ss 0:00 -bash
29111 pts/4 S+ 0:00 \_ tmux attach
4833 pts/5 Ss+ 0:00 -bash
9046 pts/6 Ss 0:00 -bash
17749 pts/6 R+ 0:00 \_ ps f
4748 pts/0 Ss 0:00 -bash
14635 pts/0 T 0:02 \_ mysql -uroot -px xxxxxxxxxxxxxxxx
16210 pts/0 S+ 0:01 \_ mysql -uroot -px xxxxxxxxxxxxxxxx
¿Cómo supo ps para ocultar las mysql
contraseñas? ¿Puedo incorporar esto en mis propios scripts para ocultar atributos particulares de CLI?
mysql
no hace la magiaps
: "Los clientes MySQL suelen sobrescribir el argumento de la contraseña de la línea de comandos con ceros durante su secuencia de inicialización". - Pautas para el usuario final para la seguridad de la contraseñaRespuestas:
ps
no oculta la contraseña Las aplicaciones como mysql sobrescriben la lista de argumentos que obtuvieron. Tenga en cuenta que hay un pequeño período de tiempo (posiblemente ampliable por una alta carga del sistema), donde los argumentos son visibles para otras aplicaciones hasta que se sobrescriben. Ocultar el proceso a otros usuarios podría ayudar. En general, es mucho mejor pasar contraseñas a través de archivos que por línea de comando.En este artículo se describe para C, cómo hacer esto. El siguiente ejemplo oculta / elimina todos los argumentos de la línea de comandos:
Mire también en /programming/724582/hide-arguments-from-ps y /programming/3830823/hiding-secret-from-command-line-parameter-on-unix .
fuente
\0
en el espacio?) ¿Algún enlacesetproctitle()
?El MySQL programa reemplaza la contraseña desde la línea de comandos con
x
en esta línea de código :fuente
\0
para que necesite información adicional para encontrar la longitud de la contraseña (sin UB / SEGFAULT).