2012-01-19 28 views
7

Tôi đã thực hiện một số thao tác và các ý tưởng chính mà tôi thấy xung quanh đang sử dụng setuid/getuid và sử dụng Dịch vụ ủy quyền (vì lý do nào đó cho tôi lỗi biểu tượng khi biên dịch nhưng xuất hiện không được dùng nữa). Ứng dụng của tôi cần có khả năng yêu cầu quyền truy cập root (để truy cập ổ đĩa thô) tại một thời điểm nhất định, tốt nhất là với hộp thoại xác thực OS X (Tôi mới sử dụng OS X vì vậy tôi không biết nên gọi gì cái đó).Đặc quyền của ứng dụng Escalate Programmeatic OS X

Trả lời

2

Dịch vụ ủy quyền được hỗ trợ khá tốt, AFAIK.

Here's a link to a tutorial (with sample projects!) mà bạn có thể sử dụng để khởi chạy một công cụ nhỏ mà bạn có thể nhận quyền quản trị và sau đó bạn có thể gọi API setpriority trong quá trình gọi của bạn (tài liệu được liên kết cho bạn).

+0

Cảm ơn! Đối với một số lý do tôi không thể tìm thấy nơi AuthorizationExecuteWithPrivileges được khai báo là khi tôi #include Tôi có các biểu tượng cho mọi thứ khác, ngoại trừ một hàm – Lander

+0

http://developer.apple.com/library/ mac/# documentation/Security/Reference/authorization_ref/Reference/reference.html nói rằng AuthorizationExecuteWithPrivileges đã không còn được dùng kể từ 10.7. http://stackoverflow.com/questions/6841937/authorizationexecutewithprivileges-is-deprecated có một số thông tin liên quan. – Vishal

+0

Whooops ... 'AuthorizationExecuteWithPrivileges' đã trở thành" không được chấp nhận "kể từ 10.7. Tôi đang xem [Tác vụ dịch vụ ủy quyền của Apple] của Apple (http://developer.apple.com/library/mac/#documentation/Security/Conceptual/authorization_concepts/03authtasks/authtasks.html#//apple_ref/doc/uid/TP30000995 -CH206-TP9) tài liệu để xem cách bạn có thể ['renice'] (http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/renice.8.html) cuộc gọi quá trình. –

Các vấn đề liên quan