2012-04-23 34 views
11

Tôi có một tập lệnh lua, chạy trên Mac, cần gọi sudo.Nhận sudo yêu cầu mật khẩu qua GUI

tôi muốn hy vọng rằng Mac OS sẽ tự động đưa lên một hộp thoại yêu cầu mật khẩu, nhưng thay vào đó nó lệnh thất bại bằng cách quay 256.

Liệu có cách nào mà tôi có thể đạt được mục tiêu của tôi?

Tim

Trả lời

17

cách nhanh chóng và dễ dàng: chạy nó như

/usr/bin/osascript -e 'do shell script "/path/to/myscript args 2>&1 etc" with administrator privileges' 

Đúng cách và cấu hình này: sử dụng AuthorizationExecuteWithPrivileges API từ các dịch vụ ủy quyền (trong Security.framework).

Cả hai sẽ hiển thị chuẩn Mac OS X GUI yêu cầu mật khẩu quản trị viên và sau đó thực thi lệnh dưới dạng gốc, giống như sudo ngoại trừ SUDO_USER biến môi trường sẽ không được đặt.

Nếu bạn cần thực hiện các lệnh riêng lẻ từ bên dưới tài khoản người dùng khi bạn đã được nâng cấp lên thư mục gốc, bạn có thể thêm chúng vào trước với /usr/bin/sudo -u $USER.

+0

Tuyệt vời, cảm ơn :) – tarmes

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