Maison >développement back-end >Golang >Comment puis-je exécuter des commandes externes en tant qu'autre utilisateur dans Go ?

Comment puis-je exécuter des commandes externes en tant qu'autre utilisateur dans Go ?

DDD
DDDoriginal
2024-12-25 22:11:13113parcourir

How Can I Run External Commands as Another User in Go?

Utilisation du package os/exec de Go pour exécuter des commandes externes sous un autre utilisateur

Lorsque vous travaillez dans un environnement *nix, il est souvent nécessaire d'exécuter des commandes externes au nom de un autre utilisateur. Traditionnellement, cela serait accompli à l'aide des commandes « su » ou « bash ». Cependant, il existe un moyen plus sûr et plus efficace de le faire en utilisant le package os/exec de Go.

La clé pour exécuter des commandes externes en tant qu'autre utilisateur est de définir les informations d'identification appropriées. Cela peut être fait à l'aide de la structure syscall.Credential.

cmd := exec.Command(command, args...)
cmd.SysProcAttr = &syscall.SysProcAttr{}
cmd.SysProcAttr.Credential = &syscall.Credential{Uid: uid, Gid: gid}

En définissant les champs Uid et Gid de la structure syscall.Credential sur les ID d'utilisateur et de groupe souhaités, la commande externe sera exécutée avec le privilèges.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn