.Sh komut dosyalarını çalıştırırken izin reddedildi

./geany_run_script.sh: 5: ./geany_run_script.sh: ./Area_circumference: Permission denied

program exited with code: 126. Kodumu yürütmeye çalıştığımda bu sorun her zaman oluşur. Çözüm ne olabilir?

İşte bunu açıklayan bir bağlantı Dosya iznini (ve sahipliğini) değiştirme

Bunları atlamak istiyorsanız (şimdilik elbette), kullanıcı giriş dizininizde bir dizin / klasör oluşturabilir ve kendi dizininiz üzerinde çalışabilirsiniz. C orada programlar (veya diğerleri).


Terminali açabilirsiniz (tuşuna basın Ctrl + Alt + T) ve cd hedef dizine:

cd /path/to/target

Dosyaya "the_fıle_name" yürütme izni vermek için (dosya sistemi RW haklarına izin veriyorsa):

chmod +x the_file_name

Vermen gerek. execute ve read izinler. Bunu takip et:

chmod u+r+x filename.sh./filename.sh

Yeni bir komut dosyası oluşturduğumuzda, varsayılan olarak okuma ve yazma iznine sahiptir.Ancak bunları yürütmek istiyorsak, yukarıda gösterildiği gibi yürütme izni vermeliyiz.

Yürütme biti tek başına kabuk komut dosyaları için yeterli değildir, dosyayı yürütmek için de okuyabilmelidir (yalnızca yürütme izni bitine ihtiyaç duyan ikili dosyaların aksine)

Tuşuna basarak terminal uygulamanızı açın CTRL + ALT + T veya grafik ortamındaki apposite kısayolu ile (örneğin Terminal veya xTerm).
Ekranda görünen tekdüze pencerede yanıp sönen bir karakter göreceksiniz, bu terminal cursor: sadece pencereye tıklayın ve metin girmek için yazın (genellikle komutlar) ve tuşuna basın ENTER girişi onaylamak için.
İmlecin önünde her zaman dosya sistemindeki geçerli konumunuz listelenir. root directory ("/") ve evinize (kişisel dosyalarınızın bulunduğu yere) "~" denir.
Dizin / klasör kullanımını değiştirmek için cd EXISTENTFOLDER (EXİSTENTFOLDER'I klasör adıyla değiştirin); kaybolduğunuzu düşünüyorsanız, şunu yazmanız yeterlidir cd bir göz açıp kapayıncaya kadar ana dizininize dönmek için!
Şimdi sorununuzu çözelim.:

  1. Kullan... cd kaynak kodunuzla dizini bulmak için komut verin. Kullanmak TAB sana yardım etmek için. Eğer idam edersen ls -lh izlenecek olası yolların ve yürütülecek dosyaların bir listesini görürsünüz.

  2. Engellenen dosyayı bulduğunuzda yürütün chmod +x FILENAME (dosya adını kaynak kod dosyanızın adıyla değiştirin).

  3. Birden çok engellenen dosyanız varsa yürütün chmod +x * geçerli dizindeki tüm dosyaların kilidini açmak için. Asla chmod + x tehlikeli veya güvensiz dosyalar.

  4. İcra etmek ./FILENAME YOUREVENTUALARGUMENTS yürütülebilir dosyanızı çalıştırmak için.

  5. Derlenmiş programınız giriş dizininizin dışında okumaya / yazmaya çalışırsa, bunu şu şekilde yürütmeniz gerektiğini unutmayın root kullanarak sudo ./FILENAME YOUREVENTUALARGUMENTS.

Bir komutu yürütmek için bir el kitabına sahip olmak istiyorsanız man COMMAND (KOMUTU tam komut adıyla değiştirin, Linux büyük / küçük harf duyarlıdır).

Bazı mermilerin bir Open terminal here hayatınızı kolaylaştırmak için, gelecekte onu arayın ve iyi kullanırsanız komut kabuğunun en iyi arkadaşınız olabileceğini unutmayın. :-D

Hepsi bu. Daha fazla yardıma ihtiyacınız olursa buraya yorum yapın.
Yardım ediyorsam soldaki yukarı oka basın; çözerseniz bu cevabı en iyi cevap olarak işaretleyin.

Linux ve Ubuntu'da iyi bir deneyim yaşayın.

‘İzin reddedildi’ hatası, yalnızca bu dosyaya erişmek için yeterli ayrıcalığınız yoksa oluşur.

İzinleri nasıl değiştirebilirim

Bunu nerede yapacağım lütfen bana bir örnek verin

Bunu yaptığımda bana şu chmod’u söylüyor: erişemiyor `geany_run_script.sh ': Böyle bir dosya veya dizin yok. Terminalden mi çalıştırmalıyım?

olası kopyası [Terminalde .sh dosyalarını nasıl çalıştırabilirim?] (command line - How do I run .sh scripts? - Ask Ubuntu )