2011-07-11 43 views
6

Birisi şu anda desteklenen bir miktar ışık tutabilir ve bir yardımcı araçta ayrıcalıkları yükseltmenin yollarını önerebilir mi?Şu anda Ayrıcalıkları Yükseltmek için Desteklenen Yol

  • setuid
  • AuthorizationExecuteWithPrivileges()

Bir yol arıyorum çalıştırmak için muktedir: Benim anlayış

aşağıdaki yolu vardır Elma bunu yapmak için bir yol desteklenmez/usr/sbin/softwareupdate ve/Library/LaunchDaemons'a bir lansmanı yerleştirin.

Herhangi bir belge veya örnek kodu takdir edilecektir.

cevap

0

Apple'ın dediğiniz gibi, güvenlik nedenleriyle setuid ikili dosyalarını ve AuthorizationExecuteWithPrivileges'i önlemeyi önerir. Tavsiye yaklaşımı, launchd tarafından ayrıcalıklı bir yardımcı araç çalıştırmaya sahip olacak ve bu uygulama ile IPC'nin bir Unix alan soketi üzerinden uygulamasından iletişim kurmasını sağlayacaktır. İmtiyazlı yardımcı,

BetterAuthorizationSample sample code gerekli ayrıcalıklarla başlatılarak çalıştırılacaktır.
+0

Hayır, SMJobBless örnek kodu, bunun için bir örnek verir ... teh BetterAuthorizationSample, ayrıcalıkları yükseltmek için diğer (eski) yöntemleri kullanır. SMJobBless kodu çok daha açık IMHO'dur ve gitmenin yoludur. – livingtech

1

Yeni, resmi olarak desteklenen, 10.6'da kullanıma sunulan yöntemi SMJobBless() olarak adlandırılır. Ancak, üzerinde çok az belge var; çılgın bir Google araması, bir avuç blog yazısı gösterdi.