Apakah ada cara untuk menentukan yang sudo
seharusnya mempertahankan variabel lingkungan tertentu hanya untuk perintah yang ditentukan? Untuk beberapa tujuan, saya ingin $HOME
env 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 nano
membaca $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 nano
spesifik, btw - Saya dapat mereproduksi perilaku dengan skrip bash satu baris yang hanya echo
s $HOME
).
sudo
dengan fungsi saya sendiri, saya hanya menambahkan if [ "$1" == "$EDITOR" ]; then
blok dan sekarang saya panggil sudoedit
:)
sudoedit
sebaliknya.sudoedit
akan 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$EDITOR
atau $ VISUAL `env vars.