มีวิธีการระบุที่sudoควรรักษาตัวแปรสภาพแวดล้อมบางอย่างสำหรับคำสั่งที่ระบุเท่านั้นหรือไม่ สำหรับวัตถุประสงค์บางอย่างฉันต้องการ$HOMEenv ของฉัน ตัวแปรเก็บรักษาไว้เมื่อฉันรันคำสั่งบางอย่าง สำหรับวัตถุประสงค์อื่นและคำสั่งอื่น ๆ ฉันต้องการให้รีเซ็ต สามารถทำได้ด้วย/etc/sudoersหรือไม่
แก้ไข:
ขอบคุณสำหรับคำตอบ ฉันสงสัยว่าฉันอาจถามคำถามติดตามซึ่งก็คือ "ทำไมจึงไม่ได้ผล?"
ในตัวอย่างที่ผมกำลังพยายามที่จะได้รับการทำงานที่ผมต้องการที่จะอ่านของฉันsudo nano $HOME/.nanorcถ้าฉันใช้สิ่งนี้:
Defaults:simon env_keep=HOME
มันทำงานได้อย่างสมบูรณ์แบบ ถ้าฉันใช้สิ่งนี้:
Defaults!/bin/nano env_keep=HOME
หรือสิ่งนี้:
Cmnd_Alias NANO = /usr/bin/nano,/bin/nano,/bin/rnano
Defaults!NANO env_keep=HOME
มันไม่ทำงานเลย ข้อเสนอแนะใด ๆ เกี่ยวกับสาเหตุที่? (ฉันใช้การทดสอบเดเบียน, btw.)
(หมายเหตุ: ผมไม่คิดว่ามันnanoเฉพาะครับ - ฉันสามารถทำซ้ำพฤติกรรมกับสคริปต์ทุบตีหนึ่งบรรทัดที่เพียงechos $HOME)
sudoด้วยฟังก์ชั่นของตัวเองผมได้เพิ่มเพียงif [ "$1" == "$EDITOR" ]; thenบล็อกและตอนนี้ฉันเรียกsudoeditแทน :)
sudoeditแทนsudoeditจะเรียกใช้คัดลอกเนื้อหาของไฟล์ไปยังไฟล์ tmp และเรียกใช้ตัวแก้ไขที่คุณเลือกในฐานะผู้ใช้ของคุณเมื่อตัวแก้ไขออกจากมันจะตรวจสอบว่าคุณเปลี่ยนแปลงอะไรหรือไม่และถ้าเป็นเช่นนั้นแทนที่ต้นฉบับด้วยตัวแก้ไข คุณสามารถเลือกเครื่องมือแก้ไขที่คุณต้องการให้เรียกใช้โดยการตั้งค่า$EDITORหรือ $ VISUAL` env vars