“Yürüt” izni ne işe yarar?


31

Linux'ta "Yürüt" iznini hala anlamadığım için şok oldum.

Üç izin vardır - okuma, yazma ve yürütme. Kelimenin tam anlamıyla okuyup yazdığını anlıyorum, fakat yürütme tam olarak ne yapar?

Diyelim ki example.phpyürütme iznim var. Ne yapabilirim example.php?

Yanıtlar:


32

Temel olarak, işletim sistemine dosyadaki kodu çalıştırmasını söyleyebileceğiniz anlamına gelir. Örneğin, dosya ikili bir yürütülebilir dosya ise, yazma erişimi değiştirmenize izin verir, okuma erişimi dosyayı görüntülemenize izin verir, ancak yürütme izinleri olmadan programı çalıştıramazsınız. Bir senaryo söz konusu olduğunda, biraz daha karmaşıktır, çünkü programı 'çalıştırmanız' gerekmediğinden, içeriğini sadece yürütme ayrıcalığına sahip olan bir tercümana okuyabilirsiniz, ancak yürütme gereksiniminiz yoktur. betiğin kendisi üzerinde izinler.

Linux'taki bazı scriptler kendileri için çalıştırılabilir durumdadır, en üstte bir satır görürsünüz.

#! / bin / bash veya

#! / Bin / python

Bu satır çekirdeğe, ilgili programı çağırarak dosyanın çalıştırılabileceğini söyler (sadece metin değildir). O zaman sen sadece senaryoyu çalıştırabilirsin.

./senaryo

yapmak yerine

python ./script


Bu, metne dayalı olmayan dosya tiplerinin anlamı nedir, ör. .pngya .avi?
iono

1
Temelde aynı, dosya uzantısı önemli değil. Dosyanızın #!/bin/bashbaşında varsa , .avibash olarak çalıştırılır. Eğer gerçek bir avi formatı ise, muhtemelen onu çalıştıramazsınız çünkü onu komutlar olarak yorumlamak mantıklı ve başarısız olmaz.
Mifeet

Is #!gerçekten çekirdek tarafından yorumlanır?
masterxilo

17

"execute", kullanıcının çalıştırılabilir dosyaları çalıştırmasına izin verir. Dizinler için cd komutunu kullanarak dizine girme izni vardır.


1
Rehber kısmına erişim çok büyük. Bunu asla modun kendisinden adlandıramazsınız.
İlkelNom

2

Pratik amaçlar için, okuma izni çalıştırma yeteneği anlamına gelir.

Ancak bunun tersi doğru değildir; okuma izni vermeden kod çalıştırma izni verme yeteneğinde bir miktar değer vardır.


Bu aslında çok mantıklı.
masterxilo

READ / EXECUTE ile bir karışıklık yaşadım ve böyle bir cevap bekledim. teşekkürler
T.Todua

2

Uygulamaları GUI'den veya komut satırından çalıştırmak için kullanılır. "Normal" php kullanımı (web sunucusu aracılığıyla) için bu hiçbir şeyi değiştirmez. Kesin konuşursak, yapılandırmaya bağlıdır, ancak çoğu durumda php web sayfanızı tarayıcı üzerinden yüklemeye izin vermek için + x iznine ihtiyacınız yoktur.

Komut satırından çalıştırmak için ihtiyacınız olan:

  • #!/usr/bin/phpbetiğin başına ekle
  • + x izin ekle
  • Komut dosyanız çalıştırılabilir arama yolunuzda ($ PATH ortam değişkeni) olmalı veya komut dosyası adınızdan önce bulunduğu dizini belirtmeniz gerekir. Bu gibi mutlak bir yol adı, olabilir /etc/xdg/fooveya /home/fred/barbenzeri veya göreceli bir dizin, dir1/prog1veya ./prog2.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.