Tôi có một kịch bản thực thi ba chức năng : A && B && C.
Chức năng Bcần phải được chạy như một siêu người dùng, trong khi Avà Ckhông.
Tôi có một số giải pháp nhưng cả hai đều không thỏa mãn:
sudo toàn bộ kịch bản:
sudo 'A && B && C'Đó có vẻ là một ý tưởng tồi để chạy
AvàClà siêu người dùng nếu không cần thiếtlàm cho kịch bản tương tác:
A && sudo B && CTôi có thể phải nhập mật khẩu của mình, nhưng tôi muốn tập lệnh của mình không tương tác, vì mỗi chức năng có thể mất một chút thời gian và tôi không muốn tập lệnh chờ tôi. Chà, đó cũng là lý do tại sao nó là một kịch bản ở nơi đầu tiên, vì vậy tôi không phải xem nó chạy.
Giải pháp ngu ngốc:
sudo : && A && sudo -n B && CĐầu tiên có vẻ ngu ngốc khi chạy no-op
sudotrước, và tôi cũng phải vượt qua ngón tay của mình rằng A sẽ không mất nhiều hơn$sudo_timeout.Giải pháp giả thuyết (tôi muốn bạn nói với tôi rằng nó tồn tại):
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'Điều đó sẽ nhắc mật khẩu của tôi ngay từ đầu, và sau đó chỉ sử dụng thông tin đăng nhập đó khi cần.
Ý kiến của bạn về tất cả điều này là gì? Tôi rất ngạc nhiên rằng không có giải pháp cho vấn đề đó, vì tôi nghĩ đó là một vấn đề khá phổ biến (còn về make all && sudo make install)
AvàCcác phần rõ ràng bằng cách sử dụngsu -l some_non_priviliged_user. Không có vấn đề thời gian chờ, và không có quyền riêng tư cho A và C. Tôi không nghĩ rằng 4 là có thể,sudodường như là "trạng thái toàn cầu" cho người dùng.