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.