Comment exécuter des scripts shell avec la commande sudo dans Linux

Comment exécuter des scripts shell avec la commande sudo dans Linux

Sudo est un puissant outil de ligne de commande qui permet un «utilisateur autorisé«Pour exécuter une commande en tant qu'un autre utilisateur (le superutilisateur par défaut), tel que défini par une politique de sécurité. Sur la plupart sinon tous les systèmes Linux, la politique de sécurité est motivée par le / etc / sudoers déposer.

Lire aussi: 10 Configurations Sudoers utiles pour définir 'Sudo' dans Linux

Par conséquent, pour exécuter un script de shell ou un programme en tant que racine, vous devez utiliser la commande sudo. Cependant, Sudo reconnaît et exécute uniquement les commandes qui existent dans les répertoires spécifiés dans le Secure_Path dans le / etc / sudoers, à moins qu'une commande ne soit présente dans le Secure_Path, Vous contrecrez une erreur comme celle ci-dessous.

Cela se produira même si le script existe dans un répertoire dans le CHEMIN variable environnementale, car lorsqu'un utilisateur invoque Sudo, CHEMIN est remplacé par Secure_Path.

$ echo $ path $ ls -l $ sudo proconport.SH 80 
Erreur sudo lors de l'exécution du script

Dans le scénario ci-dessus, le répertoire / Home / AaronKilik / Bin est dans le CHEMIN variable d'environnement et nous essayons d'exécuter le script / Home / AaronKilik / Bin / ProConport.shot (trouve l'écoute de processus sur un port) avec des privilèges racines.

Ensuite, nous avons rencontré l'erreur "Sudo: Proconport.SH: Commande introuvable", depuis / Home / AaronKilik / Bin n'est pas dans le sudo sécurisé_path Comme indiqué dans la capture d'écran suivante.

Vérifiez le chemin sécurisé sudo

Pour résoudre ce problème, nous devons ajouter le répertoire contenant nos scripts dans le sudo sécurisé_path en utilisant le Commande Visudo par édition / etc / sudoers fichier comme suit.

$ sudo visudo 

Attention: Cette méthode a de sérieuses implications de sécurité, en particulier sur les serveurs exécutés sur Internet. De cette façon, nous risquons d'exposer nos systèmes à diverses attaques, car un attaquant qui parvient à accéder à un répertoire non sécurisé (sans privilèges de superutilisateur) qui a été ajouté à Secure_Path, peut exécuter un script / programme malveillant avec commande sudo.

Pour une raison de sécurité, consultez l'article suivant du site Web Sudo explique une vulnérabilité relative à Secure_Path: https: // www.Sudo.ws / sudo / alerts / sécurisé_path.html

De préférence, nous pouvons fournir le chemin absolu vers un script tout en l'exécutant avec Sudo:

$ sudo ./ ProConport.SH 80 
Exécuter le script en utilisant la commande sudo

C'est ça! Vous pouvez suivre la liste des articles sur la commande sudo:

  1. Comment exécuter la commande «sudo» sans entrer un mot de passe en Linux
  2. Comment garder la session de délai d'expiration du mot de passe «sudo» plus longtemps dans Linux
  3. Comment réparer «Le nom d'utilisateur n'est pas dans le fichier sudoers. Cet incident sera signalé »à Ubuntu
  4. Laissez sudo vous insulter lorsque vous entrez un mot de passe incorrect

Si vous avez des questions ou des réflexions concernant cet article, partagez avec nous via le formulaire de commentaire ci-dessous.