To, co odróżnia Linuksa od Windowsa pod względem wykonywania plików, to fakt, że ten pierwszy system definiuje pliki wykonywalne jako pliki programów nie przez ich rozszerzenie, ale przez specjalną flagę wykonywalności. Tak więc każdy plik ma trzy tryby wykonywalności: odczyt, wykonanie i zapis. To właśnie te tryby określają, co system może zrobić z danym plikiem. Gdy użytkownik pobiera różne instalatory z Internetu lub tworzy skrypt, domyślnie przypisywane są mu następujące tryby: odczytu i zapisu. Krótko mówiąc, użytkownik nie będzie w stanie nic zrobić z takim programem, ponieważ trzeba zrobić z nim coś innego.
Przede wszystkim jednak powinniśmy odpowiedzieć sobie na pytanie: czym jest wykonywalność i co ona w ogóle oznacza? Zacznijmy od programu, który jest zestawem instrukcji wykonywanych przez procesor na zestawie danych w celu uzyskania pożądanego rezultatu. Dla procesora nie ma różnicy między instrukcjami a danymi.
Zarówno te pierwsze, jak i drugie składają się z cyfr - bajtów. Oznacza to, że pewna kombinacja cyfr oznacza dla procesora konieczność wykonania określonej czynności. Dla procesora nie ma zasadniczej różnicy, który proces należy wykonać - dane systemu operacyjnego czy plik tekstowy. Zarówno pierwszy, jak i drugi zostanie wykonany, z tym wyjątkiem, że w przypadku pliku tekstowego potrzeba instrukcji jest faktycznie wyeliminowana.
Flagi wykonywalności zostały wymyślone, aby system mógł zrozumieć, które instrukcje powinny zostać wykonane, a które nie. W rzeczywistości zawartość pliku nie zmienia się w żaden sposób w zależności od ustawionej klasy wykonywalności - różnica sprowadza się jedynie do kilku linijek. W przypadku skryptów wszystko działa w ten sam sposób, ale polecenia są wykonywane nie przez procesor, ale przez interpreter, na przykład w skryptach bash - przez samą powłokę bash. Zwykłe programy również mają swój własny program ładujący - jest to ld-linux.so.2.
System Linux posiada specjalne narzędzie, które pozwala na zarządzanie flagami, które nazywa się chmod
. Aby wywołać to narzędzie, należy wywołać składnię:
$ chmod category action flag file_address
I tutaj należy wziąć pod uwagę następujące kwestie:
Flaga - jedna z dostępnych flag -
r
(odczyt),w
(zapis),x
(wykonanie).Kategoria - może być ustawiona dla trzech kategorii: właściciela pliku, grupy danych i wszystkich innych użytkowników. W poleceniu są one oznaczone odpowiednio przez
u
(użytkownik)g
(grupa)o
(inny).Akcja - może być + (plus), co oznacza ustawienie flagi lub - (minus) usunięcie flagi.
Tak więc, aby skrypt był wykonywalny w Linuksie, użytkownik musi go wykonać:
$ chmod u+x file_address
Często jest to już wystarczające, aby uczynić go wykonywalnym, ale jeśli inni użytkownicy muszą być upoważnieni do wykonywania tych plików, należy dodać więcej:
$ chmod ugo+x file_address
Aby zobaczyć je w terminalu, wystarczy użyć narzędzia ls:
$ ls -l file_directory
Flagi są uwzględnione dla wszystkich kategorii. Pierwsze rwx
to flagi właściciela, drugie to flagi grupy, a trzecie są dla wszystkich innych. Jeśli nie jest ustawiona, jej miejsce zajmie myślnik.
Usunięcie flagi wykonywalnej jest bardzo proste. Używa się tego samego polecenia, tylko ze znakiem minus:
$ chmod u-x file_address
Następnie rozważmy kwestię ustawienia zarządzalności w GUI.
Dla początkujących ta instrukcja będzie łatwiejsza. Jako przykład weźmy menedżera GNOME, Nautilus. Kliknij prawym przyciskiem myszy nasz program lub obiekt skryptu, aby otworzyć menu kontekstowe, a następnie wybierz właściwości:
Przechodzimy do zakładki uprawnienia i zaznaczamy "Zezwalaj na uruchamianie pliku jako programu":
Teraz będzie on uruchamiany przez system bezpośrednio z menadżera. To cała instrukcja. Teraz nie będziesz miał żadnych trudności z uruchomieniem programu lub skryptu z Internetu.