2009-04-07 11 views
6

'dan sonra reddedildi. Biraz Linux sorunum var, bu da Windows'da uzun yıllar geçirmemi öğretecek geez. Neyse Java Servis Sarıcı senaryo ile güzel sarılmış küçük bir java uygulaması, yaptım, ama o senaryoyu çalıştırdığınızda:Linux izni, chmod a = rwx

sh ./wrapper.sh console 

iznine hemen reddedildi olsun. izni reddedildi mesajı böyledir: BenimUygulamam/bin klasöründe

eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied 

Benim küçük wrapper.sh yaşıyor. dizin Uygulamam/bin/sarıcı 2 dosyaları içerir: sarıcı-linux-x86-32 bir test olarak

  • sarıcı-linux-X86-64 aşağıdaki chmod komutunu ran
    • :

      chmod a=rwx MyApp -R 
      

      Ben aynı sonuçla, hatta alt klasörler içinde, her şey rwx olduğunu doğrulandı ve tekrar komut dosyasını çalıştırmak çalıştı ... izni reddedildi.

      Bu bebeği çalıştırmak için yanında deneyebilecekler hakkında herhangi bir fikri olan var mı?

      sayesinde Lancelot

  • +0

    Paketleyicinin içeriği nedir? _eval_ adında bir komut çağırması olabilir mi? Adamım bana argümanları birleştirerek bir komuta değerlendirme komutu oluşturduğunu söylüyor. Belki sarmalayıcı komut dosyasında bir sorun var. – lothar

    +0

    Dosyalarda ve dizinlerdeki genel yazma iznini kaldırdığınıza güveniyorum. Kamusal yazma izni ile dosyaları veya dizinleri bırakmak nadiren savunmasızdır -/tmp özel bir durumdur ve yapışkan kipin uzaktan güvenli olmasını gerektirir. –

    cevap

    8

    Sadece hata mesajı dosyanızı barındıran dizin adını başvuruyor fark .

    Komut dosyanızı, örneğin dizinin adını komut olarak kullandığınız bir yerde kontrol edebilir misiniz? Sarıcı/sarıcı-linux-x86-32 (bir dosya adı olurdu) yerine sarıcı (dizin adı) kullanmak veya benzer hatalar gibi? dosya Dosya adlarında boşluk kullanıp alıntı unutmak dediğinde

    Benzer hatalar sık ​​görünür (gerçi burada muhtemelen davayı.)

    Bu gerçekleşmediği takdirde sen sarıcı komut dosyası içeriğini kapsayacak şekilde sorunuzu düzenleme olabilir sen Arayor musun?

    (önceki noexec fikrine hiçbir ilişkisi yoktur ve bu bir referans kalabilirler beri New cevap.)

    +0

    Siz erkeksiniz. Tam olarak olan şey buydu. Sistem karışıktı ve bir dosya yerine bir klasör yürütmeye çalıştı. Yapımın ilk etapta kurşun geçirmez olmasının sistemde karışıklık olmayacağını unutmayın. Makineler sadece onlara yaptıklarını söylerler! Milyonlarca kez moocha'ya teşekkürler. – Lancelot

    +0

    Bundan bahsetme, yardım edebilmek için sevindim. Sorunun dahice ayrıştırılması için –

    +0

    +1 –

    0

    ayrıca sargıya yürütme komut vermek gerekebilir

    chmod + x wrapper.sh

    DÜZENLEME: ben sadece senin wrapper.sh bulunduğunu fark senin Uygulamam klasör /DÜZENLEME da

    u sen

    #!/bin/sh 
    
    01 olduğundan emin olun eğer senin .sh dosyasının en üstünde

    , bunu şöyle çalıştırabilirsiniz:

    +0

    Merhaba Roy, ls ne zaman yapsam-burada burdayım için yazdığı şudur: -rwxrwxrwx 1 kullanici1 kullanici1 19035 2009-04-07 15:32 sarıcı.sh – Lancelot

    +0

    chmod with = kabul edilebilir, zaten yürütme biti ayarlanmıştır. – paxdiablo

    0

    İlk olarak bir metin editörü açmayı deneyin .wrapper.sh

    , sen okuma erişiminiz olduğundan emin olun. Eğer öyleyse,

    chmod +x wrapper.sh 
    

    yapmak Ve senaryo

    +0

    Merhaba Zifre, #!/Bin/sh, yeni kontrol ettim. – Lancelot

    5

    noexec bayrağıyla monte edilebilir Senaryonu barındıran dosya sistemi başında #!/bin/sh olduğundan emin olun. vs yerine noexec örneklerini/için mount komutunun çıktısını kontrol, bu dosya sistemi için/etc/fstab girişini kontrol edin ve orada bir noexec varsa Düşündüm de mount /path/to/mountpoint -o remount

    aracılığıyla o zaman bu dosya sistemini yeniden monte kaldırmayı deneyin/fstab (dosya sistemi dinamik olarak monte edilmiş olabilir.

    eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied 
    

    Size "dizin Uygulamam/bin/sarıcı 2 dosyalarını içeren" sözü bu yana bir dizin olduğunu biliyorum:)

    +0

    Hayır, dosya sistemlerinden hiçbirinde "noexec" seçeneği yoktur. Ama bu dosyaya işaret ettiğin için teşekkürler, bu bilginin nerede olduğunu bilmek faydalı. – Lancelot

    +0

    Bu, Ubuntu'nun çok düz bir kurulumudur. Başlangıçtan sonra hiçbir şey monte edilmemiştir. Sistem başlatıldığında, disk sürücüleri ve cdrom otomatik olarak monte edilir. – Lancelot

    0

    Sen yapabilirsiniz, başka bir kullanıcının ana dizininde yoktu dosyayı yürütmek deneyebilir kullanıcı "kullanıcı"

    chmod -Ra + x/ev/kullanici1 veya chmod -R o + x/ev/kullanici1 chmod -R g + x/ev/kullanici1

    0

    izni vermek Sorunum biraz farklı olsa da bu arayış Benzer bir sorun ararken, aramam birkaç kez göründü, bu yüzden bulgularımı buraya göndereceğim.

    Sorunum chmod komutundan sonra depolama/klasöre erişememdi. Yürütülen komutun ardından

    : I/depolama erişmek artık klasör olamazdı

    sudo chmod -755 storage -R //notice -755 is wrong, it should be 755 
    

    .

    Ben ls -l denedim:

    Ayrıca

    storage permissions d---------

    git status sonra:

    storage/.gitignore: Permission denied

    sağ komutu yürütmeden sonra:

    sudo chmod 755 storage -R // without - 
    

    e Her şey normale döndü.