Wat Linux onderscheidt van Windows op het gebied van bestandsuitvoering, is dat het eerste systeem uitvoerbare bestanden definieert als programmabestanden, niet door hun extensie, maar door een speciale uitvoerbaarheidsvlag. Elk bestand heeft dus drie modi voor uitvoerbaarheid: lezen, uitvoeren en schrijven. Het zijn deze modi die bepalen wat het systeem met een bepaald bestand kan doen. Wanneer een gebruiker verschillende installatieprogramma's downloadt van het internet of een script maakt, krijgt het standaard de volgende modi toegewezen: lezen en schrijven. Kortom, de gebruiker kan niets doen met zo'n programma, omdat er iets anders mee gedaan moet worden.
Maar eerst moeten we ons bezighouden met de vraag: wat is uitvoerbaarheid en wat betekent het in het algemeen? Laten we beginnen met een programma, dat is een verzameling instructies die door een processor wordt uitgevoerd over een verzameling gegevens om het gewenste resultaat te krijgen. Voor de processor is er geen verschil tussen instructies en gegevens.
Zowel de eerste als de laatste bestaan uit cijfers - bytes. Dat wil zeggen dat een bepaalde combinatie van cijfers voor de processor betekent dat er een bepaalde actie moet worden uitgevoerd. Voor de processor is er geen fundamenteel verschil welk proces moet worden uitgevoerd - gegevens van het besturingssysteem of een tekstbestand. Zowel het eerste als het tweede zal worden uitgevoerd, behalve dat in het geval van een tekstbestand de noodzaak voor instructies feitelijk is geëlimineerd.
Uitvoerbaarheidsvlaggen zijn uitgevonden om het systeem te laten begrijpen welke instructies uitgevoerd moeten worden en welke niet. In feite verandert de inhoud op geen enkele manier afhankelijk van de ingestelde uitvoerbaarheidsklasse - het verschil wordt slechts beperkt tot een paar regels. Met scripts werkt alles op dezelfde manier, alleen worden de commando's niet uitgevoerd door de processor, maar door een interpreter, bijvoorbeeld in bash scripts - door de bash shell zelf. Reguliere programma's hebben ook hun eigen loader - het is ld-linux.so.2.
Het Linux-systeem heeft een speciaal hulpprogramma waarmee je vlaggen kunt beheren, genaamd chmod
. Om dit hulpprogramma aan te roepen, moet je de syntaxis aanroepen:
$ chmod category action flag file_address
En hier moet met het volgende rekening worden gehouden:
Flag - een van de beschikbare flags -
r
(lezen),w
(schrijven),x
(uitvoeren).Categorie - kan worden ingesteld voor drie categorieën: bestandseigenaar, gegevensgroep en alle andere gebruikers. In het commando worden ze respectievelijk aangeduid met
u
(gebruiker)g
(groep)o
(overig).Actie - kan + (plus) zijn, wat betekent dat de vlag wordt ingesteld of - (min) dat de vlag wordt verwijderd.
Om een script uitvoerbaar te maken in Linux, moet de gebruiker het dus uitvoeren:
$ chmod u+x file_address
Vaak is dit al genoeg om het uitvoerbaar te maken, maar als andere gebruikers geautoriseerd moeten worden om deze bestanden uit te voeren, moet er meer worden toegevoegd:
$ chmod ugo+x file_address
Om ze in de terminal te zien, gebruik je gewoon het hulpprogramma ls:
$ ls -l file_directory
Voor alle categorieën zijn vlaggen opgenomen. De eerste rwx
zijn eigenaarsvlaggen, de tweede zijn groepsvlaggen en de derde zijn voor alle anderen. Als deze niet is ingesteld, komt er een streepje voor in de plaats.
Het verwijderen van de uitvoerbare vlag is erg eenvoudig. Hetzelfde commando wordt gebruikt, alleen met een minteken:
$ chmod u-x file_address
Laten we nu eens kijken naar het instellen van beheerbaarheid in GUI.
Voor beginners zal deze instructie eenvoudiger zijn. Laten we de GNOME manager, Nautilus, als voorbeeld nemen. Klik met de rechtermuisknop op ons programma of scriptobject om het contextmenu te openen en selecteer dan eigenschappen:
Ga naar het tabblad machtigingen en vink "Sta toe dat het bestand wordt uitgevoerd als een programma" aan:
Nu wordt het direct door het systeem gestart vanuit de manager. Dat is de hele instructie. Nu zul je geen problemen meer hebben met het starten van een programma of script vanaf het internet.