Aku punya script yang mengeksekusi tiga fungsi: A && B && C.
Fungsi Bperlu dijalankan sebagai pengguna super, sementara Adan Ctidak.
Saya punya beberapa solusi tetapi tidak ada yang memuaskan:
sudo seluruh skrip:
sudo 'A && B && C'Tampaknya itu ide buruk untuk dijalankan
AdanCsebagai pengguna super jika tidak diperlukanbuat skrip menjadi interaktif:
A && sudo B && CSaya mungkin harus mengetikkan kata sandi, tetapi saya ingin agar skrip saya non-interaktif, karena setiap fungsi memerlukan waktu, dan saya tidak ingin skrip menunggu. Yah, itu juga mengapa itu skrip di tempat pertama, jadi saya tidak harus melihatnya berjalan.
Solusi bodoh:
sudo : && A && sudo -n B && CPertama tampaknya bodoh untuk menjalankan no-op
sudopertama, dan juga saya harus mengatakan bahwa A tidak akan mengambil lebih dari$sudo_timeout.Solusi hipotetis (Saya harap Anda memberi tahu saya ada):
sudo --store-cred 'A && sudo --use-cred-from-parent-sudo B && C'Itu akan meminta kata sandi saya di awal, dan kemudian menggunakan kredensial itu hanya ketika diperlukan.
Apa pendapat Anda tentang semua ini? Saya akan sangat terkejut bahwa tidak ada solusi untuk masalah itu, karena saya pikir itu adalah masalah yang cukup umum (bagaimana dengan make all && sudo make install)
AdanCsecara eksplisit menggunakansu -l some_non_priviliged_user. Tidak ada masalah batas waktu, dan tidak ada privelig untuk A dan C. Saya tidak berpikir bahwa 4 mungkin,sudotampaknya "keadaan global" bagi pengguna.