Si j'appelle une commande avec des arguments comme ceci:
bob@bob-pc:~$ command -arg1 -arg2
... d'autres utilisateurs peuvent-ils visualiser les arguments passés à la commande?
Si j'appelle une commande avec des arguments comme ceci:
bob@bob-pc:~$ command -arg1 -arg2
... d'autres utilisateurs peuvent-ils visualiser les arguments passés à la commande?
Réponses:
En général oui, ils peuvent le voir. C'est de la w
page de manuel:
Les entrées suivantes sont affichées pour chaque utilisateur: nom de connexion, nom tty, hôte distant, heure de connexion, heure d'inactivité, JCPU, PCPU et la ligne de commande de leur processus actuel.
La ligne de commande complète de votre processus en cours d'exécution sera affichée. C'est pourquoi vous ne voulez pas fournir des choses comme des mots de passe via des arguments de ligne de commande.
XXXXXXXX
); J'adorerais savoir comment. Il pourrait faire quelque chose de boiteux comme se bifurquer et passer un faux argument; Je ne suis pas sûr
En général, les arguments de ligne de commande sont visibles par tous. Par exemple, en tant qu'utilisateur non root sur OpenBSD, je peux voir les arguments des processus s'exécutant en tant que root:
$ ps -U root -o command= |grep getty |head -n 1
/usr/libexec/getty std.9600 ttyC0
Sous Linux, vous remarquerez que tous les /proc/*/cmdline
fichiers sont lisibles par tous.
Il peut exister des paramètres très spécifiques dans lesquels les arguments de ligne de commande restent privés. Par exemple, SELinux et Solaris peuvent complètement masquer les processus des autres utilisateurs . Mais à moins que vous ne sachiez absolument que vous êtes dans un tel paramètre, supposez que les arguments de ligne de commande sont publics.
Sur les configurations standard, les arguments sont visibles. Comme déjà mentionné , les processus peuvent les écraser en mémoire, mais pas avant que d'autres processus aient eu la chance de les voir.
Cependant, le jeu de correctifs grsecurity inclut un correctif qui le modifie afin que seul le propriétaire du processus (et la racine) puisse voir les arguments transmis à un processus.