screen
ไม่ได้ล้างตัวแปรสภาพแวดล้อม มันถูกลบโดย Linux เอง
ในระบบส่วนใหญ่/usr/bin/screen
ปฏิบัติการถูกติดตั้งด้วยบิตsetgidสำหรับutmp
กลุ่มเพื่อให้สามารถปรับเปลี่ยนutmp
ฐานข้อมูล นอกจากนี้ยังใช้setgidเพื่อควบคุมการเข้าถึงไดเรกทอรีซ็อกเก็ต ( /var/run/screen/
)
บน Linux เมื่อรันโปรแกรม setuid (หรือsetgid ) จะไม่ได้รับตัวแปรสภาพแวดล้อมบางอย่าง (รวมถึงตัวแปรLD_LIBRARY_PATH
อื่น ๆ อีกหลายLD_*
ตัวและHOSTALIASES
) เพื่อลดจุดโจมตีที่เป็นไปได้: มิฉะนั้นคุณสามารถเขียนไลบรารี่ขนาดเล็กและกลอุบายsu
หรือsudo
เป็นการเรียกฟังก์ชั่น "ปรับปรุง" ของคุณในแบบนั้น
คุณสามารถลบบิตsetgidออกscreen
ได้ แต่คุณจะต้องทำให้ทุกคนเข้าถึงไดเรกทอรีซ็อกเก็ตได้อย่างเต็มที่ (โหมด 0777) ไม่ควรมีความเสี่ยงด้านความปลอดภัยเนื่องจากscreen
ตรวจสอบ UID ของอุปกรณ์แนบด้วย
อย่างไรก็ตามคุณไม่ควรทำให้utmp
ฐานข้อมูลสามารถเขียนได้ทั่วโลก