Tôi đã tạo một tập lệnh bash sử dụng kdialog dành riêng cho việc tương tác với người dùng. Nó được khởi chạy từ tệp ".desktop" để người dùng không bao giờ nhìn thấy thiết bị đầu cuối. Nó trông giống như một ứng dụng GUI 100% (mặc dù nó chỉ là một tập lệnh bash). Nó chỉ chạy trong KDE (Kubfox 12.04).
Vấn đề duy nhất của tôi là xử lý mật khẩu đầu vào an toàn và thuận tiện. Tôi không thể tìm thấy một giải pháp thỏa đáng.
Tập lệnh được thiết kế để chạy như một người dùng bình thường và để nhắc mật khẩu khi cần một lệnh sudo. Theo cách này, hầu hết các lệnh, những lệnh không yêu cầu quyền sudo, được chạy như người dùng bình thường. Điều gì xảy ra (khi tập lệnh được chạy từ thiết bị đầu cuối) là người dùng được nhắc nhập mật khẩu của họ một lần và thời gian chờ sudo mặc định cho phép tập lệnh kết thúc, bao gồm mọi lệnh sudo bổ sung mà không cần nhắc lại người dùng. Đây là cách tôi muốn nó hoạt động khi chạy đằng sau GUI.
Vấn đề chính là việc sử dụng kdesudo
để khởi chạy tập lệnh của tôi, đó là cách GUI chuẩn, có nghĩa là toàn bộ tập lệnh được thực thi bởi người dùng root. Vì vậy, quyền sở hữu tệp được gán cho người dùng root, tôi không thể dựa vào ~/
đường dẫn và nhiều thứ khác không lý tưởng. Chạy toàn bộ tập lệnh với tư cách là người dùng root chỉ là một giải pháp rất không thỏa đáng và tôi nghĩ đó là một thực tế tồi.
Tôi đánh giá cao bất kỳ ý tưởng nào cho phép người dùng nhập mật khẩu sudo chỉ một lần qua GUI trong khi không chạy toàn bộ tập lệnh dưới dạng root. Cảm ơn.