มีวิธีการระบุที่sudo
ควรรักษาตัวแปรสภาพแวดล้อมบางอย่างสำหรับคำสั่งที่ระบุเท่านั้นหรือไม่ สำหรับวัตถุประสงค์บางอย่างฉันต้องการ$HOME
env ของฉัน ตัวแปรเก็บรักษาไว้เมื่อฉันรันคำสั่งบางอย่าง สำหรับวัตถุประสงค์อื่นและคำสั่งอื่น ๆ ฉันต้องการให้รีเซ็ต สามารถทำได้ด้วย/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
เฉพาะครับ - ฉันสามารถทำซ้ำพฤติกรรมกับสคริปต์ทุบตีหนึ่งบรรทัดที่เพียงecho
s $HOME
)
sudo
ด้วยฟังก์ชั่นของตัวเองผมได้เพิ่มเพียงif [ "$1" == "$EDITOR" ]; then
บล็อกและตอนนี้ฉันเรียกsudoedit
แทน :)
sudoedit
แทนsudoedit
จะเรียกใช้คัดลอกเนื้อหาของไฟล์ไปยังไฟล์ tmp และเรียกใช้ตัวแก้ไขที่คุณเลือกในฐานะผู้ใช้ของคุณเมื่อตัวแก้ไขออกจากมันจะตรวจสอบว่าคุณเปลี่ยนแปลงอะไรหรือไม่และถ้าเป็นเช่นนั้นแทนที่ต้นฉบับด้วยตัวแก้ไข คุณสามารถเลือกเครื่องมือแก้ไขที่คุณต้องการให้เรียกใช้โดยการตั้งค่า$EDITOR
หรือ $ VISUAL` env vars