Aku punya script yang mengeksekusi tiga fungsi: A && B && C
.
Fungsi B
perlu dijalankan sebagai pengguna super, sementara A
dan C
tidak.
Saya punya beberapa solusi tetapi tidak ada yang memuaskan:
sudo seluruh skrip:
sudo 'A && B && C'
Tampaknya itu ide buruk untuk dijalankan
A
danC
sebagai pengguna super jika tidak diperlukanbuat skrip menjadi interaktif:
A && sudo B && C
Saya 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 && C
Pertama tampaknya bodoh untuk menjalankan no-op
sudo
pertama, 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
)
A
danC
secara 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,sudo
tampaknya "keadaan global" bagi pengguna.