Si invoco un comando con argumentos como este:
bob@bob-pc:~$ command -arg1 -arg2
... ¿pueden otros usuarios ver los argumentos pasados al comando?
Si invoco un comando con argumentos como este:
bob@bob-pc:~$ command -arg1 -arg2
... ¿pueden otros usuarios ver los argumentos pasados al comando?
Respuestas:
En general sí, pueden verlo. Esto es de la wpágina del manual:
Se muestran las siguientes entradas para cada usuario: nombre de inicio de sesión, nombre de tty, host remoto, tiempo de inicio de sesión, tiempo de inactividad, JCPU, PCPU y la línea de comando de su proceso actual.
Se mostrará la línea de comando completa de su proceso actualmente en ejecución. Es por eso que no desea proporcionar cosas como contraseñas a través de argumentos de línea de comandos.
XXXXXXXX); Me encantaría saber cómo. Podría hacer algo cojo como simplemente bifurcarse y pasar un argumento falso; No estoy seguro
En general, los argumentos de la línea de comandos son visibles para todos. Por ejemplo, como usuario no root en OpenBSD, puedo ver argumentos de procesos que se ejecutan como root:
$ ps -U root -o command= |grep getty |head -n 1
/usr/libexec/getty std.9600 ttyC0
En Linux, notará que todos los /proc/*/cmdlinearchivos son legibles en todo el mundo.
Puede haber configuraciones muy específicas en las que los argumentos de la línea de comandos permanecen privados. Por ejemplo, SELinux y Solaris pueden ocultar procesos de otros usuarios . Pero a menos que sepa absolutamente que está en ese entorno, suponga que los argumentos de la línea de comandos son públicos.
En configuraciones estándar, los argumentos son visibles. Como ya se mencionó , los procesos pueden sobrescribirlos en la memoria, pero no antes de que otros procesos hayan tenido la oportunidad de verlos.
Sin embargo, el parche de grsecurity incluye un parche que lo cambia para que solo el propietario del proceso (y la raíz) pueda ver los argumentos pasados a un proceso.