Zoeken op website

Shell-scripts uitvoeren met Sudo Command in Linux


sudo is een krachtige opdrachtregeltool waarmee een “toegestane gebruiker” een opdracht kan uitvoeren als een andere gebruiker (standaard de superuser), zoals gedefinieerd door een beveiligingsbeleid. Op de meeste, zo niet alle Linux-systemen wordt het beveiligingsbeleid aangestuurd door het bestand /etc/sudoers.

Lees ook: 10 handige Sudoers-configuraties voor het instellen van ‘sudo’ in Linux

Om een shellscript of programma als root uit te voeren, moet u daarom de opdracht sudo gebruiken. sudo herkent en voert echter alleen opdrachten uit die voorkomen in mappen die zijn opgegeven in het secure_path in /etc/sudoers, tenzij er een opdracht aanwezig is in het secure_path, verhelpt u een fout zoals hieronder.

Dit gebeurt zelfs als het script in een map in de omgevingsvariabele PATH staat, omdat wanneer een gebruiker sudo aanroept, PATH wordt vervangen door beveiligd_pad.

echo  $PATH
ls  -l
sudo proconport.sh 80

In het bovenstaande scenario bevindt de map /home/aaronkilik/bin zich in de omgevingsvariabele PATH en proberen we het script /home/aaronkilik/bin uit te voeren /proconport.sh (vindt proces dat op een poort luistert) met rootrechten.

Vervolgens kwamen we de fout “sudo: proconport.sh: command not found” tegen, omdat /home/aaronkilik/bin niet in het sudo secure_path staat > zoals weergegeven in de volgende schermafbeelding.

Om dit op te lossen, moeten we de map met onze scripts toevoegen aan het sudo secure_path met behulp van de visudo-opdracht door het bestand /etc/sudoers te bewerken als volgt.

sudo visudo

Let op: deze methode heeft ernstige gevolgen voor de veiligheid, vooral op servers die op internet draaien. Op deze manier lopen we het risico onze systemen bloot te stellen aan verschillende aanvallen, omdat een aanvaller die erin slaagt toegang te krijgen tot een onveilige map (zonder superuser-rechten) die is toegevoegd aan secure_path, een kwaadaardig script/programma kan uitvoeren met sudo command.

Bekijk om veiligheidsredenen het volgende artikel van de sudo-website waarin een kwetsbaarheid met betrekking tot secure_path wordt uitgelegd: https://www.sudo.ws/sudo/alerts/secure_path.html

Bij voorkeur kunnen we het absolute pad naar een script opgeven terwijl het met sudo wordt uitgevoerd:

sudo ./proconport.sh 80

Dat is het! U kunt een lijst met artikelen over de sudo-opdracht volgen:

  1. Hoe u de ‘sudo’-opdracht kunt uitvoeren zonder een wachtwoord in te voeren in Linux
  2. Hoe u de ‘sudo’-wachtwoordtime-outsessie langer kunt houden in Linux
  3. Hoe op te lossen “Gebruikersnaam staat niet in het sudoers-bestand. Dit incident zal worden gerapporteerd ” in Ubuntu
  4. Laat Sudo u beledigen als u een onjuist wachtwoord invoert

Als u vragen of opmerkingen heeft over dit artikel, kunt u deze met ons delen via het onderstaande opmerkingenformulier.