/etc/sudoers dosyasında
username ALL=(ALL)  ALL=NOPASSWD: /path/app

bu şekilde bir tanımlama ile exec("sudo /path/app") şeklinde olur.

2009/12/24 "H.İbrahim YILMAZ" <[email protected]>

> kasif wrote:
> > 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
> >>
> >>
> >
> >
> >
> Acaba system "(sudo komut)" şeklinde bir kullanımda sizden otomatik
> olarak root şifresini istemiyor mu? Syntax'a takılmıyorum zira bilmiyorum.
> Yani diyeceğim şu ki önce getuid ile kullanıcı kontrol edip eğer root
> ise zeten "system (komut)" şeklinde çalıştırması gerekir değilse "system
> (sudo komut)" şeklinde çalıştıracaktır. Bunların hepsi sadece birer
> öneridir dediğim gibi bu diller üzerine az ya da çok diyebileceğim bir
> bilgim yok bu dediklerimi yaptığınızda kaşınız dökülebilir, saçınıza saç
> kıran dahi gelebilir :D
> Saygılar.
>
> --
> H.İbrahim YILMAZ
> Sales and Technical Manager
> Marmara Bilişim
> http://www.bilisimmarmara.com.tr
> +90 226 813 3131
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>



-- 
/**
* @author Atıf CEYLAN
* Software Developer
* http://www.atifceylan.com
*/
_______________________________________________
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