Cập nhật câu trả lời:
Có một tài liệu của Apple chỉ ra cách làm đúng. Bạn đã gần gũi.
(Tôi chưa thử nó)
thực hiện tập lệnh shell "rm -rf / $ HOME / Tải xuống / *" tên người dùng "USERNAME" mật khẩu "THEPASSWORD" với đặc quyền của quản trị viên
Từ tài liệu :
Làm cách nào để tôi có được quyền quản trị viên cho một lệnh?
Sử dụng các đặc quyền quản trị viên, tên người dùng và thông số mật khẩu như thế này:
làm shell script "lệnh" tên người dùng "tôi" mật khẩu "mypassword" với tên người dùng và mật khẩu đặc quyền của quản trị viên là tùy chọn; nếu bạn bỏ qua tên người dùng, hãy thực hiện shell script giả sử nó là người dùng hiện tại; nếu bạn bỏ qua mật khẩu, nó sẽ hỏi mật khẩu khi nó chạy. Khi tập lệnh được xác thực chính xác, nó sẽ không yêu cầu xác thực lại trong năm phút. Kể từ Mac OS X 10.4, thời gian gia hạn này không mở rộng cho bất kỳ tập lệnh nào khác hoặc phần còn lại của hệ thống; tự gọi sudo -k là không cần thiết.
Vì lý do bảo mật, bạn không được yêu cầu ứng dụng khác thực hiện shell script với đặc quyền của quản trị viên. Đặt lệnh bên ngoài bất kỳ khối Tell nào, hoặc đặt nó bên trong một khối Tell me.
Hãy nhớ rằng các đặc quyền của quản trị viên cho phép bạn thay đổi bất kỳ tệp nào ở bất kỳ đâu trong hệ thống. Bạn có thể khiến hệ thống của mình không thể khởi động hoặc thậm chí xóa toàn bộ đĩa bằng một vài lệnh được đặt tốt, vì vậy hãy thận trọng. Tốt hơn hết, đừng sử dụng đặc quyền của quản trị viên trừ khi bạn thực sự phải làm. Trừ khi bạn đang thực hiện phát triển cấp hệ thống, bạn sẽ không bao giờ cần thay đổi bất cứ điều gì trong / Hệ thống - thay đổi / Thư viện là đủ.
Lưu ý: Sử dụng sudo (8) với các đặc quyền của quản trị viên thường không cần thiết và tạo ra các lỗ hổng bảo mật; chỉ cần loại bỏ "sudo".
CẬP NHẬT QUAN TRỌNG 2
* Bạn có thể lưu ứng dụng dưới dạng "chỉ chạy" (Trước tiên hãy lưu bản sao có thể chỉnh sửa)
(Nếu bạn chỉ lưu nó dưới dạng Run Only, thậm chí bạn sẽ không thể mở nó và chỉnh sửa nó sau khi bạn đã đóng cửa sổ script.)
Sau đó sử dụng menu Tệp-> Xuất sẽ cung cấp cho bạn tùy chọn trong hộp thoại lưu để lưu dưới dạng "Chỉ chạy"
Cố gắng mở tệp main.scpt trong gói ứng dụng:
Chỉ chạy sẽ ngăn ai đó mở tập lệnh được nhúng trong Ứng dụng bằng cách nhấp đúp vào tập lệnh để mở tập lệnh trong Trình chỉnh sửa tập lệnh và khám phá mật khẩu của bạn. Nhưng có một cách tìm tên người dùng và mật khẩu từ Run Only và không khó để tìm ra ngay cả đối với một người dùng thông thường.
TÔI MUỐN NGHE HAI LẦN VỀ ĐƯA TÊN TÊN NGƯỜI DÙNG VÀ MẬT KHẨU CỦA BẠN TRONG ỨNG DỤNG.
CẬP NHẬT 3
Một ý tưởng nhỏ để giúp đỡ nếu bạn phải làm điều này là chia nhỏ văn bản mật khẩu bằng cách tạo tên biến vô nghĩa để giữ nó và làm lộn xộn chúng.
Khi mã chạy, nó sẽ lắp lại chúng theo đúng thứ tự.
Ví dụ.
nếu mật khẩu là 88> 0TpFpax
Tôi sẽ sử dụng:
set T to "Tp"
set Po to "88"
set TC to "Fpax"
set TEH to ">0"
do shell script "say blahbla" user name "markhunte" password (Po & TEH & T & TC as string) with administrator privileges
Lưu ý rằng không chỉ biến không có nghĩa gì hoặc hiển thị bất kỳ ý nghĩa nào về trật tự mà các bit của mật khẩu cũng bị xáo trộn trong chúng.
Tất cả cho đến khi mã chạy.
Vì vậy, ngay cả khi họ vấp ngã về cách thực hiện những gì tôi đang nói về mật khẩu sẽ không được lắp ráp theo bất kỳ thứ tự nào mà nó có thể được sử dụng.