Để hiểu những gì tôi đang yêu cầu, điều quan trọng là phải phân biệt giữa một số cách sử dụng SUID trong Unix.Tôi có những lựa chọn nào trên các nền tảng MS Windows cho tương đương SUID từ các nền tảng dựa trên Unix?
Tôi có một dự án sử dụng tệp thi hành trong PATH của người dùng thuộc sở hữu của dự án và có bộ bit SUID. Bằng cách này, khi nó chạy, nó chạy trong bối cảnh chủ sở hữu của tập tin, chứ không phải người dùng đang gọi. Bằng cách này, nó có quyền truy cập vào những thứ mà người dùng không làm, và do đó những điều này được bảo vệ khỏi người dùng bằng cách bảo vệ hệ thống tập tin bình thường. Điều này hoạt động khá tốt. Kế hoạch là để di chuyển dự án đến một kiến trúc máy khách-khách hàng nhưng điều đó sẽ mất một thời gian. Trong thời gian đó, làm thế nào tôi có thể tái tạo kiểu hành vi này trên các hệ thống Windows? Lưu ý rằng các tập tin thực thi của dự án không gọi hàm gọi thư viện SETUID, thẳng thắn, đó sẽ là một tính năng tuyệt vời để thêm vào, theo ý kiến của tôi, cho dự án thực hiện những gì. Dự án không cần đặc quyền root của hệ thống. Đó là mối quan tâm bảo mật đầu tiên là nó cần bảo vệ các tệp riêng của mình khỏi người dùng (đơn giản là bất kỳ người dùng nào khác ngoài chủ sở hữu tệp) và nó sẽ rất tuyệt nếu nó có khả năng chuyển sang "ngữ cảnh người dùng" để truy cập tệp hệ thống như thể đó là người dùng đang gọi. (Bằng cách này, nó có thể dễ dàng xác định những gì là OK cho dự án để liên lạc và những gì không.)
Dự án được viết bằng sự kết hợp của C và Java - một chương trình C với SUID đặt mã Java ...
tôi muốn biết tất cả các cơ chế như vậy, và tôi đặc biệt tập trung vào những người đó là:
- Thích hợp cho C và Java, và;
- Dễ triển khai cho người lập trình không phải Windows và;
- Yêu cầu mã hóa tối thiểu duy nhất cho Windows.
Nếu một số giải pháp vượt trội, hãy chia sẻ suy nghĩ của bạn về bất kỳ điều gì bạn biết về vấn đề này.
GHI CHÚ:
- LogonUser: Yêu cầu một mật khẩu trong văn bản đơn giản. Làm thế nào có thể đó là một câu trả lời?
- RunAs: Yêu cầu nhập mật khẩu tại PROMPT! ... Như với LogonUser chỉ tồi tệ hơn; Tôi không thấy đây là câu trả lời.
Giải pháp thích hợp là cài đặt dịch vụ. –