[Çözüldü] Python ile sistem komutu çalıştırma

Başlatan natgho, 28 Ocak 2016 - 21:45:57

« önceki - sonraki »

0 Üyeler ve 5 Ziyaretçi konuyu incelemekte.

natgho

Merhaba arkadaşlar;
Ben python öğrenmekteyim, bu sırada python ile bir program geliştirmek istedim, programın amacı bumblebee kurulumunu otomatik olarak yapmak.

Gel gelelim, şöyle bir sıkıntı var ki os.popen ya da diğer komutlar ile "sudo apt-get install bumblebee" ya da "sudo apt-get update" gibi komutları çalıştıramamaktayım.
Bunları nasıl çalıştırabilirim acaba?
Hayır ben Windows Düşmanı Değilim,Bu Yüzden Linux Kullanmıyorum, Ben Sadece Benim Donanımımda At Koşturacaksa Bir Yazılım, her Adımını Bilme Sorumluluğunu Hisseden Bir Teknologtan Fazlası olmadığım İçin Linux Kullanıcısıyım.

sayz

Alıntı yapılan: natgho - 28 Ocak 2016 - 21:45:57
Merhaba arkadaşlar;
Ben python öğrenmekteyim, bu sırada python ile bir program geliştirmek istedim, programın amacı bumblebee kurulumunu otomatik olarak yapmak.

Gel gelelim, şöyle bir sıkıntı var ki os.popen ya da diğer komutlar ile "sudo apt-get install bumblebee" ya da "sudo apt-get update" gibi komutları çalıştıramamaktayım.
Bunları nasıl çalıştırabilirim acaba?
Ne hatası alıyorsunuz? Muhtemelen izinlerle alakalı bi sorun oluyor.  Bu durumda iki türlü çözüm olabilir ilki ki benim de tavsiye ettiğim dosyanın sahipliğini değiştirmeniz ikinci olarak da şöyle bi şey yapabilirsiniz expect adında bi komut satırı uygulaması ile direk betik dosyasının içinden root şifresini verebilirsiniz. Ama dediğim gibi ikincisi biraz fantezi ve güvensiz oluyor. 

natgho

Dosyanın sahipliğini değiştirmekten kastınız nedir tam olarak?
Hayır ben Windows Düşmanı Değilim,Bu Yüzden Linux Kullanmıyorum, Ben Sadece Benim Donanımımda At Koşturacaksa Bir Yazılım, her Adımını Bilme Sorumluluğunu Hisseden Bir Teknologtan Fazlası olmadığım İçin Linux Kullanıcısıyım.

sayz

Alıntı yapılan: natgho - 28 Ocak 2016 - 22:06:17
Dosyanın sahipliğini değiştirmekten kastınız nedir tam olarak?
Dosya izinleri hakkında bilginiz var mı? Şu an mobilde olduğum için ayrıntılı açıklayamıyorum ama şöyle söyleyeyim sizin yapmak istediğiniz şeyler root hakları gerektiriyor sizin dosyanız ise muhtemelen kendi kullanıcızın sahipliğinde. O yüzden sizin istediğiniz şeyleri yapamıyor, yetkisi yok. Google'da "linux dosya izinleri" diye aratırsanız dediklerimi daha iyi anlarsınız. Daha sonra ayrıntılı olarak açıklarım arkadaşlardan birisi açıklamamamış veya siz tam anlamamış olursanız.

heartsmagic

#4
Neden çalışmıyor örneğin apt-get update? Ne hatası dönüyor?
Olayın dosya sahipliği ile ilgisi yoktur da, malum yetkilerle alakası vardır. update komutu yetki gerektirir. sudo ve python kodlamasını tam olarak bilemiyorum ancak böyle meselelerde önce yetki isteniyor, sonra komut çalıştırılıyor olabilir.

Gerek yokmuş, ben ufak bir deneme yaptım güzel güzel parola soruyor ve işlemi yapıyor. Python'dan anlamam ancak baktığım örneklerden yola çıkarak şunu yapınca sorun vermeden çalışıyor:

import os
f = os.popen('sudo apt-get update')
aptSonuc = f.read()
print aptSonuc

Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

sayz

aynen dosya sahipliği ile alakası yok aslında da ben şunu söylemeye çalıştım  ama ifade edemedim telefondan tam o zaman. yani dosyanın bu işlemleri yapabilmesi için root haklarına sahip olabilen bir kullanıcı olması lazım. örneğin sayz isminde bir kullanıcıya aitse betik dosyası ve sayz kullanıcısı da sudo hakları olmayan bir kullanıcı ise yapamaz arkadaşın istediği işlemleri.

betiğin sahipliğini değiştirmekten kastım oydu. direk root da olabilir ama tabii ki mantıklı olan sudo haklarına sahip bir kullanıcı ile çalıştırıp şifre vs. girmek.

arkdaş da cevap vermedi ne hatası verdiğini onu söylese daha kolay bazı şeyleri söyleyebiliriz.

natgho

Okey arkadaşlar ben sorunun sebebini çözdüm :)

Aynı sorunu yaşayan arkadaşlar için açıklayayım, read yaptıktan sonra, onu bir değişkene aktarıp print ile yazdırmayı unutmayın, aksi halde kod çalışsa dahi ekran bir çıktı oluşmadığı için anlayamıyorsunuz :)

Yardımlarınız için teşekkürler arkadaşlar, sorun çözülmüştür.
Hayır ben Windows Düşmanı Değilim,Bu Yüzden Linux Kullanmıyorum, Ben Sadece Benim Donanımımda At Koşturacaksa Bir Yazılım, her Adımını Bilme Sorumluluğunu Hisseden Bir Teknologtan Fazlası olmadığım İçin Linux Kullanıcısıyım.