Điểm:0

làm cách nào để cho phép người dùng không có quyền riêng tư chạy chương trình yêu cầu quyền root mà không cần mật khẩu?

lá cờ au
j0h

Tôi có một chương trình do tôi viết và chương trình này truy cập phần cứng (tệp thiết bị) và yêu cầu quyền root để chạy. Tôi muốn chương trình này có thể được thực thi bởi một người dùng không có đặc quyền mà không cần mật khẩu gốc. Tôi đã thử sửa đổi các quyền với Tên chương trình Sudo chmod u+s khởi động lại, nhưng chương trình sau đó chương trình sẽ không chạy với sudo ./tên chương trình

Tôi có thể nhớ đã làm điều này, giống như 12 năm trước, nhưng tôi không thể hình dung ra bây giờ. Có mẹo nào không?

waltinator avatar
lá cờ it
Đọc `man sudoers visudo`.
Điểm:2
lá cờ cn

Nếu bạn đặt chủ sở hữu tệp thực thi chương trình của mình thành nguồn gốc với

sudo chown root /path/to/chương trình/thực thi

và sau đó thiết lập bit setuid của nó với

Sudo chmod u+s /path/to/chương trình/thực thi

thì bạn không cần phải khởi động lại sau đó cũng như không sử dụng sudo. Khởi động chương trình bình thường theo tên sẽ thực thi nó với quyền root. Tuy nhiên điều này sẽ cho phép không tí nào người dùng để chạy chương trình với quyền root, vì vậy bạn nên rất chắc chắn rằng bạn đã lập trình nó theo cách không thể lạm dụng nó để thực hiện các hành động khác ngoài dự định của bạn với quyền root.

Bước đầu tiên là cần thiết. Chức năng của bit setuid là khiến chương trình chạy với UID của chủ sở hữu tệp. Nếu người chủ đó không nguồn gốc thì chương trình sẽ không có quyền root, ngay cả khi bạn chạy nó với sudo, vì bit setuid sẽ ghi đè tác dụng của sudo.

Cho nên một trong hai chạy chương trình của bạn với sudo hoặc thiết lập bit setuid với chmod u+s, nhưng không phải cả hai.

Lưu ý: Thay vì chạy chương trình của bạn với quyền root, có thể tốt hơn là đặt quyền cho các tệp thiết bị mà chương trình truy cập để cho phép người dùng thông thường chạy chương trình có quyền truy cập cần thiết.

j0h avatar
lá cờ au
j0h
ngọt ngào, mà làm việc. Tôi nhận ra ý nghĩa bảo mật, nhưng thiết bị là một núm vặn. IDK, có lẽ nó có thể bị hack, nhưng tôi nghĩ nó sẽ an toàn cho những gì tôi đang làm. máy chủ web mà nó bật là mục tiêu có nhiều khả năng hơn, nhưng nó không có trên internet. Tôi đánh giá cao sự giúp đỡ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.