Merhaba,

Yardımlarınız için saolun arkadaşlar, aslında tam olarak düşündüğüm bu 
değildi ben yetkileri direk sistemden almayı ve kullanıcıyı tekrar 
meşgul etmeden bu işi halletmeyi düşünüyordum. Sizlerin mesajlarını 
birleştirerek şöyle bir şey yapmaya karar verdim.

Önce getuid() ile kullanıcının yetkili olup olmadığını test ediyorum ve 
eğer yetkili değilse ekrana "Bu program çalışması için yönetici 
yetkilerine ihtiyaç duyar." gibi bir mesaj basıyorum. Sonrası zaten 
kullanıcıya kalıyor ister "sudo program_adı" isterse sistemde "root" 
oturumu açarak programı kullanabilir.

Aslında setuid() isminde "uid" kullanıcı kimlik numarasını ayarlamaya 
yarayan bir fonksiyon daha var ama ben denediğimde "Operation not 
permitted" hata mesajını aldım. Sanırım bu fonksiyonu kullanabilmek 
içinde yönetici yetkisi gerekiyor. Linux dünyasını çok yakından 
bilmediğim için işin üstüne fazla gidemedim, yardımlar için tekrar 
teşekkürler.



23-12-2009 11:12, "H.İbrahim YILMAZ" yazmış:
> H.İbrahim YILMAZ wrote:
>    
>> kasif wrote:
>>
>>      
>>> Kusura bakmayın bu kadar detay gerekeceğini düşünmemiştim.
>>>
>>> Programı C++ dili ile CodeBlocks geliştirme ortamını kullanarak konsol
>>> programı olarak geliştiriyorum. Program şu an tüm işlemleri konsol
>>> üzerinden yerine getiriyor ama dediğim gibi yönetici yetkisi gerektiği
>>> için işlemlerde sorun çıkıyor. Bu sorunuda aşabilirsem wxWidget
>>> kullanarak bir arayüz hazırlamak niyetindeyim. Yardımlarınız için
>>> şimdiden teşekkürler değerli arkadaşlar.
>>>
>>> 23-12-2009 09:31, Alper KANAT yazmış:
>>>
>>>        
>>>> Merhaba,
>>>>
>>>> Belki de biraz da açık yazmalısınız bazı şeyleri.. Örneğin hangi
>>>> programlama dili ile hangi araçları kullanarak yazıyorsunuz? Bu bir
>>>> masaüstü yazılımı mı yoksa web sayfası vb. başka bir şekilde mi
>>>> çalışıyor?
>>>>
>>>> ---
>>>> Quis custodiet ipsos custodes?
>>>>
>>>>
>>>> 23 Aralık 2009 08:27 tarihinde kasif<[email protected]
>>>> <mailto:[email protected]>>  yazdı:
>>>>
>>>>      Konu hakkında cevap bulabilecegim ümidi ile sorumu
>>>>      "linux-programlama"
>>>>      grubuna yollamıştım.
>>>>
>>>>      Yardımcı olacak veya yol gösterebilecek birileri var mı acaba?
>>>>
>>>>      22-12-2009 08:26, kasif yazmış:
>>>>      >  Merhaba,
>>>>      >
>>>>      >  Debian üzerinde yazılım kaynaklarını yönetecek küçük bir uygulama
>>>>      >  geliştiriyorum. Aslında çoğu bitti sayılır. Ancak
>>>>      "sources.list" dosyası
>>>>      >  üzerinde düzenleme yapmak için yönetici (root) yetkisi gerekiyor.
>>>>      >
>>>>      >  Benim programım bir konsol programı, bu program içinden
>>>>      "sources.list"
>>>>      >  dosyası düzenleneceği zaman sistemden yönetici (root) yetkisini
>>>>      nasıl
>>>>      >  alırım.
>>>>      >
>>>>      >  _______________________________________________
>>>>      >  Linux-programlama mailing list
>>>>      >  [email protected]
>>>>      <mailto:[email protected]>
>>>>      >  http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>>      >  Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>>      >
>>>>
>>>>
>>>>      --
>>>>      kasif
>>>>      http://code.google.com/p/dizgi
>>>>      .uzak ülkenin yolcusu...
>>>>
>>>>
>>>>      _______________________________________________
>>>>      Linux-programlama mailing list
>>>>      [email protected]
>>>>      <mailto:[email protected]>
>>>>      http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>>      Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Linux-programlama mailing list
>>>> [email protected]
>>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>>
>>>>
>>>>          
>>> -- 
>>> kasif
>>> http://code.google.com/p/dizgi
>>> ..uzak ülkenin yolcusu...
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Linux-programlama mailing list
>>> [email protected]
>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>
>>>
>>>        
>> Merhaba,
>> Yanılmıyorsam getuid() fonksiyonu ile bu tarz işler halledilebiliyor
>> C++'da. Ancak size fikir vermesi açısından python örneği vereyim:
>>
>> import os
>> if os.getuid() == 0:
>>      print("r00tness!")
>> else:
>>      print("I cannot run as a mortal. Sorry.")
>>
>> Ayrıca bakınız:
>> http://www.unix.com/high-level-programming/64729-how-write-wrapper-c-code-return-uid-using-getuid-function.html
>> http://publib.boulder.ibm.com/infocenter/zos/v1r10/index.jsp?topic=/com.ibm.zos.r10.bpxbd00/rtgtui.htm
>>
>> C++ ve C üzerine bilgim yok denilecek kadar az ancak elimden geldiğince
>> yardımcı olmaya çalıştım. Bir hata yaptıysak affola.
>> Saygılar.
>> _______________________________________________
>> Linux-programlama mailing list
>> [email protected]
>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>
>>      
> Farklı bir kullanımı için:
>
> //#ifdef LINUX
>      if (getuid()!=0) {
>        puts("pp: must be root to run pp (needs I/O access)");
>        exit(1);
>      }
>
> #endif
> //
>
>
> Saygılar.
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>    


-- 
kasif
http://code.google.com/p/dizgi
..uzak ülkenin yolcusu...


_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap