Comment exécuter un script shell en tant qu'utilisateur différent

Comment exécuter un script shell en tant qu'utilisateur différent
Parfois, vous pouvez vous retrouver obligé d'exécuter un script shell en tant qu'utilisateur différent que l'utilisateur actif sur le shell. C'est assez facile et peut être fait en quelques étapes simples, alors comment procédez-vous à ce sujet? Découvrons-le.

Conditions préalables

Avant de commencer, assurez-vous d'avoir accès au shell d'un système Linux; Toute distribution Linux fera très bien. Dans ce guide, nous dirigeons Ubuntu 18.04.

Tout aussi crucial est de vous assurer que vous avez un script shell avec des autorisations d'exécution. Nous avons un simple script shell appelé accueillir.shot qui demande le nom d'un utilisateur et l'imprime au terminal. Voici un aperçu.

Comment exécuter un script shell en tant qu'un autre utilisateur

Habituellement, l'exécution d'un script de shell en tant qu'utilisateur actuellement connecté est tout à fait un jeu d'enfant. Appelez simplement le script shell comme suit:

$ ./accueillir.shot

Mais comment exécuteriez-vous le script en tant qu'un autre utilisateur en dehors de vous? Pour y parvenir, utilisez simplement la syntaxe indiquée où le autre utilisateur est l'utilisateur différent que vous souhaitez exécuter le script.

Script $ su autreUser -s.shot

Supposons que nous voulons exécuter le script comme le voies de route utilisateur. La commande à exécuter sera:

$ su Linuxways -s bienvenue.shot

Pour confirmer que l'autre utilisateur a exécuté le script, nous exécuterons la commande comme indiqué.

$ sudo -h -u autre busiser bash -c 'echo "je suis $ utilisateur, avec uid $ uid"'

Dans ce cas, notre autre utilisateur est voies de route, Nous allons donc invoquer la commande.

$ sudo -h -u linuxways bash -c 'echo "je suis $ utilisateur, avec uid $ uid"'

Le $ Utilisateur et $ Uid Les variables impriment le nom d'utilisateur et l'UID de l'utilisateur exécutant le script. En cas de doute ou au cas où vous souhaitez vérifier cela, vous pouvez afficher le / etc / passwd fichier et rechercher les détails de l'utilisateur comme suit.

$ cat / etc / passwd | Grep Linuxways

Voici un résumé de la sortie des deux commandes. Remarquez comment le nom d'utilisateur et l'UID de l'exécution du script shell correspondent à ceux du / etc / passwd déposer.

Conclusion

Si vous vous êtes demandé comment exécuter un script shell en tant qu'un autre utilisateur, nous espérons que votre recherche a maintenant pris fin.