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
Libérer: 2024-12-25 22:11:13
original
117 Les gens l'ont consulté

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}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal