Apakah ada cara untuk menentukan yang sudoseharusnya mempertahankan variabel lingkungan tertentu hanya untuk perintah yang ditentukan? Untuk beberapa tujuan, saya ingin $HOMEenv saya . variabel dipertahankan ketika saya menjalankan perintah tertentu. Untuk keperluan lain dan perintah lain, saya ingin mengatur ulang. Bisakah ini dilakukan /etc/sudoers?
Edit:
Terima kasih atas jawabannya. Saya ingin tahu apakah saya dapat mengajukan pertanyaan lanjutan, yaitu, "Mengapa, kalau begitu, ini tidak berhasil?"
Dalam contoh saya mencoba bekerja, saya ingin sudo nanomembaca $HOME/.nanorc. Jika saya menggunakan ini:
Defaults:simon env_keep=HOME
ini bekerja dengan sempurna. Jika saya menggunakan ini:
Defaults!/bin/nano env_keep=HOME
atau ini:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
itu tidak berfungsi sama sekali. Ada saran mengapa? (Saya sedang menguji Debian, btw.)
(Catatan: Saya tidak berpikir itu nanospesifik, btw - Saya dapat mereproduksi perilaku dengan skrip bash satu baris yang hanya echos $HOME).
sudodengan fungsi saya sendiri, saya hanya menambahkan if [ "$1" == "$EDITOR" ]; thenblok dan sekarang saya panggil sudoedit:)
sudoeditsebaliknya.sudoeditakan menjalankan menyalin isi file ke file tmp dan menjalankan editor pilihan Anda sebagai pengguna Anda, ketika editor keluar akan memeriksa apakah Anda mengubah sesuatu dan jika demikian ganti yang asli dengan yang diedit. Anda dapat memilih editor mana yang Anda inginkan untuk dijalankan dengan mengatur$EDITORatau $ VISUAL `env vars.