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?
command-line
security
process
Nathan Osman
la source
la source
Réponses:
En général oui, ils peuvent le voir. C'est de la
w
page de manuel: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.
la source
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ûrEn 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:
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.
la source
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.
la source