ดูเหมือนว่าข้อผิดพลาดนี้ได้รับรอบในขณะที่! นี่คือบางส่วนการอ้างอิงข้อผิดพลาดที่คุณอาจพบว่ามีประโยชน์ (และอาจต้องการสมัคร / ลงคะแนน, คำแนะนำ, คำใบ้ ... ):
Debian bug # 85123 ("sudo: SECURE_PATH ยังไม่สามารถเขียนทับได้") (ตั้งแต่ปี 2544!)
ดูเหมือนว่า Bug # 20996 ยังคงปรากฏอยู่ใน sudo รุ่นนี้ changelog บอกว่ามันสามารถแทนที่ได้ตอนรันไทม์ แต่ฉันยังไม่พบวิธี
พวกเขาพูดถึงการใส่สิ่งนี้ในไฟล์ sudoers ของคุณ:
Defaults secure_path="/bin:/usr/bin:/usr/local/bin"
แต่เมื่อฉันทำอย่างนั้นใน Ubuntu 8.10 เป็นอย่างน้อยมันทำให้ฉันมีข้อผิดพลาดนี้:
visudo: unknown defaults entry `secure_path' referenced near line 10
ข้อผิดพลาดของ Ubuntu # 50797 ("sudo สร้างด้วย - ด้วยความปลอดภัย - เส้นทางเป็นปัญหา")
ยิ่งแย่ไปกว่านั้นเท่าที่ฉันสามารถบอกได้มันเป็นไปไม่ได้ที่จะรับรอง secure_path ในไฟล์ sudoers ตัวอย่างเช่นถ้าคุณต้องการให้ผู้ใช้ของคุณสามารถเข้าถึงบางสิ่งภายใต้ / opt คุณจะต้องคอมไพล์ sudo อีกครั้ง
ใช่. มีความต้องการที่จะเป็นวิธีการที่จะแทนที่นี้ "คุณสมบัติ" โดยไม่ต้องคอมไพล์ ไม่มีอะไรเลวร้ายยิ่งไปกว่าความปลอดภัยที่มีขนาดใหญ่บอกคุณว่าสิ่งที่ดีที่สุดสำหรับสภาพแวดล้อมของคุณแล้วไม่ให้วิธีการที่จะปิด
มันน่ารำคาญจริงๆ อาจเป็นการดีที่จะรักษาพฤติกรรมปัจจุบันโดยค่าเริ่มต้นด้วยเหตุผลด้านความปลอดภัย แต่ควรมีวิธีการอื่นนอกเหนือจากการคอมไพล์ซ้ำจากซอร์สโค้ด! มีหลายคนที่ต้องการมรดกทาง ฉันสงสัยว่าทำไมไม่มีผู้ดูแลมองเข้าไปซึ่งดูเหมือนง่ายที่จะหาวิธีแก้ปัญหาที่ยอมรับ
ฉันทำงานแบบนี้:
mv /usr/bin/sudo /usr/bin/sudo.orig
จากนั้นสร้างไฟล์ / usr / bin / sudo ที่มีสิ่งต่อไปนี้:
#!/bin/bash
/usr/bin/sudo.orig env PATH=$PATH "$@"
จากนั้น sudo ปกติของคุณจะทำงานเหมือนกับ sudo ที่ไม่ใช่เส้นทางที่ปลอดภัย
ข้อผิดพลาดของ Ubuntu # 192651 ("เส้นทาง sudo ถูกรีเซ็ตเสมอ")
เนื่องจากข้อผิดพลาดที่ซ้ำกันของข้อผิดพลาดนี้ถูกจัดเก็บในเดือนกรกฎาคม 2549 ฉันไม่ชัดเจนว่า env_keep ใช้งานไม่ได้นานเท่าไหร่ ไม่ว่าข้อดีของการบังคับให้ผู้ใช้ใช้เทคนิคเช่นที่กล่าวข้างต้นแน่นอนว่า man man ของ sudo และ sudoers ควรสะท้อนถึงความจริงที่ว่าตัวเลือกในการปรับเปลี่ยน PATH นั้นซ้ำซ้อนได้อย่างมีประสิทธิภาพ
การแก้ไขเอกสารเพื่อสะท้อนถึงการปฏิบัติจริงนั้นไม่ทำให้เกิดความไม่เสถียรและมีประโยชน์มาก
ข้อผิดพลาดของ Ubuntu # 226595 ("เป็นไปไม่ได้ที่จะเก็บ / ระบุ PATH")
ฉันต้องสามารถเรียกใช้ sudo ด้วยโฟลเดอร์ไบนารีที่ไม่ใช่ std เพิ่มเติมใน PATH หลังจากเพิ่มข้อกำหนดของฉันไปที่ / etc / environment แล้วฉันรู้สึกประหลาดใจเมื่อพบข้อผิดพลาดเกี่ยวกับคำสั่งที่หายไปเมื่อใช้งานภายใต้ sudo .....
ฉันพยายามต่อไปนี้เพื่อแก้ไขปัญหานี้โดยไม่ประสบความสำเร็จ:
ใช้sudo -E
ตัวเลือก "" - ไม่ทำงาน PATH ปัจจุบันของฉันยังคงถูกรีเซ็ตโดย sudo
การเปลี่ยน " Defaults env_reset
" เป็น " Defaults !env_reset
" ใน / etc / sudoers - ยังไม่ทำงาน (แม้เมื่อรวมกับ sudo -E)
การไม่แสดงความคิดเห็นenv_reset
(เช่น " #Defaults env_reset
") ใน / etc / sudoers - ก็ใช้ไม่ได้เช่นกัน
การเพิ่ม ' Defaults env_keep += "PATH"
' ลงใน / etc / sudoers - ก็ใช้ไม่ได้เช่นกัน
ชัดเจน - แม้จะมีเอกสารประกอบคน - sudo นั้นฮาร์ดโค้ดอย่างสมบูรณ์เกี่ยวกับ PATH และไม่อนุญาตให้มีความยืดหยุ่นใด ๆ เกี่ยวกับการเก็บรักษา PATH ของผู้ใช้ น่ารำคาญมากเพราะฉันไม่สามารถเรียกใช้ซอฟต์แวร์ที่ไม่ใช่ค่าเริ่มต้นภายใต้การอนุญาตรากโดยใช้ sudo