adb "./configure" dosyasını çalıştırmak için "İzin reddedildi"


9

Bunu configureyapmak için en iyi yolu adb shellkomutu kullanmak olduğunu düşünüyorum bu yüzden benim android telefon içine bir dosya çalıştırmak gerekir .

Bir Windows-7 platformuna bir Android emülatörü çalıştırıyorum ve orada adb shellbir DOS penceresine komut çalıştırıyorum . Kullanılması cdbenim dizine değişiyorum komutu configuredosyasıdır, sonra aşağıdaki komutlarla ediyorum: ./configure. Aşağıdaki hatayı alıyorum:

./configure: permission denied

Bu yüzden adb root- ile adb kök modunda çalıştırmak için çalışıyorum ama görünüşe göre benim adb zaten kök modunda (Ayrıca adb kabuğumun her satırından önce "#" karakteri var).

Ben de kullanmaya çalıştım chmodama bu komut ( ls -la) yürütmeden önce ve sonra hiçbir fark görmüyorum , bu yüzden belki sorun burada ( chmodKomutu nasıl çalıştırabilirim ?).

Belki burada birisi benim sorunumda bana yardımcı olabilir ve ayrıca dosyamı çalıştırma iznime sahip olmadığım hakkında bir açıklamanız varsa configureharika olur.

Teşekkürler.

Not: Buradaki amacım, bu projenin kaynaklarını doğrudan platformda derleyerek net-snmp paketini bir Android platformunda kullanmak.


3
Muhtemelen sorun budur. /sdcardgenellikle noexecAndroid'de bayrakla bağlanır, bu nedenle ondan ikili dosya çalıştıramazsınız. Başka bir yere taşımak için denemenizi tavsiye ederim (genellikle /data/localböyle şeyler için kullanılır). Bunun sorunu çözüp çözmediğine bakın.
eldarerathis

3
Ayrıca, /usr/local/tmpdizine kopyalayın (tüm net-snmp-5.7.2dizin /sdcard.
Liam W

1
@ t0mm13b değil tamamen emin eğer bu olduğunu o istismar böyle bir kök olarak cihazlarında, bir dosyayı yürütmek için ihtiyacı olan insanlar için yararlı olabilir gibi konu dışı.
Liam W

1
Tamam teşekkürler. Buradaki sorum, bir geliştirme sorusundan ziyade adb shell ile bir betik sh'i nasıl çalıştırabileceğimdi. Ama şimdi çözüm var: "/ sdcard noexec bayrağı ile monte edilir", bu yüzden eldarerathis veya Liam W gerçek bir cevaba yorum yapmak isterse bunu doğrulayacağım. Ya da belki bana sorumu nasıl kapatabilirim?
grattmandu03

1
@ grattmandu03 Zaten var;)
Liam W

Yanıtlar:


10

Bunun nedeni 2 şeydir:

  1. Dosyanın yürütme izinleri yok [AND]
  2. Dosya SD Kartta olduğu gibi yürütülebilir izinler alamaz. SD Kartın dosya sistemi dosya izinlerini kabul edebilir, ancak noexecbir açıklamada belirtildiği gibi bayrakla birlikte monte edilir . Bu, dosyaların yürütülmesini durdurur.

Çözüm:

  1. Dizini kök olarak net-snmp-5.7.2dizine kopyalayın /data/local/tmp.
  2. Kök configureolarak çalıştırarak dosyayı yürütülebilir olacak şekilde ayarlayın chmod 0777 /data/local/tmp/net-snmp-5.7.2/configure.
  3. Artık /data/local/tmp/net-snmp-5.7.2/configureenter komutunu yazıp enter tuşuna basarak configure betiğini yürütebilmeniz gerekir .

Not

Tüm bunlar kök kullanıcı olarak yapılmalıdır :)


8

Yorumlar ve Liam'ın cevabında açıklandığı gibi , bunun nedeni noexecsdcard'ı monte ederken sistem tarafından kullanılan işarettir. Senin Eğer configuredosya bir kabuk (genellikle olduğu gibi), sen hala yürütülecek tuzağa düşürebileceğini:

cdyukarıda açıkladığınız gibi dizine gidin ve çalıştırın sh configure.

shKabuk yorumlayıcıdır ve bu ikili /system/bindosya , dosyaların yürütülebilir olduğu yerde bulunmalıdır . Komut dosyanızı ilk argüman olarak ilettiğinizde, komut dosyanızı çalıştıran yeni bir kabuk işlemi açılır configure.


Cevabınız için teşekkürler. sh configureHile yok.
grattmandu03

1
Onay için teşekkürler! Ve yardım edebildiğim için mutluyum. Bu numarayı zaman zaman Linux / Unix makinelerinde kullanıyorum :)
Izzy
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.