Det, der adskiller Linux fra Windows med hensyn til filafvikling, er, at førstnævnte system ikke definerer eksekverbare filer som programfiler ved hjælp af deres filtypenavn, men ved hjælp af et særligt eksekverbarhedsflag. Så hver fil har tre former for eksekverbarhed: læse, eksekvere og skrive. Det er disse tilstande, der bestemmer, hvad systemet kan gøre med en bestemt fil. Når en bruger downloader forskellige installationsprogrammer fra internettet eller opretter et script, tildeles det som standard følgende tilstande: læse og skrive. Kort sagt vil brugeren ikke kunne gøre noget med sådan et program, da der skal gøres noget andet med det.
Men først og fremmest bør vi forholde os til spørgsmålet: Hvad er eksekverbarhed, og hvad betyder det i det hele taget? Lad os starte med et program, som er et sæt instruktioner, der udføres af en processor over et sæt data for at få det ønskede resultat. For processoren er der ingen forskel på instruktioner og data.
Både førstnævnte og sidstnævnte består af cifre - bytes. Det vil sige, at en bestemt kombination af cifre vil signalere til processoren, at der skal udføres en bestemt handling. For processoren er der ingen grundlæggende forskel på, hvilken proces der skal udføres - operativsystemdata eller en tekstfil. Både den første og den anden vil blive udført, bortset fra at behovet for instruktioner faktisk er elimineret, når det drejer sig om en tekstfil.
Executability flags blev opfundet for at få systemet til at forstå, hvilke instruktioner der skal udføres, og hvilke der ikke skal udføres. Faktisk ændrer indholdet sig ikke på nogen måde afhængigt af den indstillede eksekverbarhedsklasse - forskellen er kun reduceret til nogle få linjer. Med scripts fungerer alt på samme måde, men kommandoer udføres ikke af processoren, men af en fortolker, for eksempel i bash-scripts - af selve bash-shell'en. Almindelige programmer har også deres egen loader - det er ld-linux.so.2.
Linux-systemet har et særligt værktøj, der giver dig mulighed for at styre flag, som kaldes chmod
. For at kalde dette værktøj skal du bruge syntaksen:
$ chmod category action flag file_address
Og her skal følgende overvejes:
Flag - et af de tilgængelige flag -
r
(læs),w
(skriv),x
(udfør).Kategori - kan indstilles for tre kategorier: filejer, datagruppe og alle andre brugere. I kommandoen er de angivet med henholdsvis
u
(user)g
(group)o
(other).Action - kan være + (plus), hvilket vil sige at sætte flaget eller - (minus) at fjerne flaget.
For at gøre et script eksekverbart i Linux skal brugeren således eksekvere:
$ chmod u+x file_address
Ofte er det allerede nok til at gøre det eksekverbart, men hvis andre brugere skal have tilladelse til at eksekvere disse filer, skal der tilføjes mere:
$ chmod ugo+x file_address
For at se dem i terminalen skal du bare bruge ls-værktøjet:
$ ls -l file_directory
Flag er inkluderet for alle kategorier. Det første rwx
er ejerflag, det andet er gruppeflag, og det tredje er for alle andre. Hvis det ikke er sat, kommer der en bindestreg i stedet.
Det er meget nemt at fjerne det eksekverbare flag. Den samme kommando bruges, bare med et minustegn:
$ chmod u-x file_address
Lad os nu se på spørgsmålet om indstilling af håndterbarhed i GUI.
For begyndere vil denne instruktion være lettere. Lad os tage GNOME-manageren, Nautilus, som et eksempel. Højreklik på vores program eller scriptobjekt for at åbne kontekstmenuen, og vælg derefter egenskaber:
Gå til fanen tilladelser, og sæt kryds i "Tillad, at filen kører som et program":
Nu vil den blive startet af systemet direkte fra manageren. Det er hele instruktionen. Nu har du ingen problemer med at starte et program eller et script fra internettet.