Sous Linux, comment puis-je changer l'EUID du processus en cours d'exécution à partir de la ligne de commande (à condition d'avoir un accès root)?
linux
security
process
privileges
jackhab
la source
la source
Si vous parlez d'un processus modifiant son propre EUID, il existe de nombreuses façons de procéder.
Selon l'UID effectif du programme et s'il existe un UID enregistré, vous pouvez basculer entre deux valeurs EUID dans un programme non root. Avec un programme root privilégié, vous devez être prudent - vous devez décider si le changement doit être irréversible et utiliser la fonction correcte pour le travail. (L'utilisation de setuid () en tant que root est irréversible.)
Si vous essayez de modifier un processus qui s'exécute déjà à partir d'un processus distinct, il n'y a pas de moyen standard de le faire - et je ne suis pas sûr qu'il existe de nombreuses façons non standard non plus. Vous pourrez peut-être dink quelques informations dans / dev / kmem, mais l'expression «glace mince» vient à l'esprit.
la source
Il n'y a aucun moyen de faire cela "à partir de la ligne de commande" pour n'importe quel processus en cours d'exécution.
Je peux dire cela avec une certaine certitude; le seul "peut-être" était / proc et j'ai fouillé dedans (littéralement et via google) et je suis tombé dans une impasse concernant quoi que ce soit dans / proc permettant de changer l'EUID. Vous pouvez APPRENDRE quels sont les paramètres UID et GID dans / proc / {pid} / status - mais vous ne pouvez pas les changer en utilisant quoi que ce soit dans / proc, du moins pour autant que je sache.
Mais il est assez facile de faire fonctionner quelque chose comme ça - un moyen de changer l'EUID d'un processus, à partir de la ligne de commande - si vous contrôlez le code source du processus que vous souhaitez modifier. Vous pouvez implémenter un gestionnaire de signal pour, disons, SIGUSR1 et demander au processus de changer son propre EUID comme vous en avez besoin quand il reçoit ce signal. Ensuite, vous enverriez simplement le processus que le signal SIGUSR1, via "kill" ... depuis la ligne de commande, comme vous l'avez demandé ... et cela changerait son EUID pour vous.
Ce n'est peut-être pas ce à quoi vous pensiez, mais ... c'est une réponse à votre question de savoir comment le faire ... et c'est la seule réponse à laquelle je puisse penser.
la source