แก้ไขด่วนเพื่อป้องกัน dscl เปลี่ยนรหัสผ่านโดยไม่ได้รับอนุญาตใน OS X Lion
เมื่อเร็ว ๆ นี้เราได้เขียนเกี่ยวกับยูทิลิตี dscl และวิธีการอนุญาตให้ผู้ใช้ Mac OS X Lion เปลี่ยนรหัสผ่านโดยไม่ทราบรหัสผ่านที่มีอยู่ การขาดการรับรองความถูกต้องของผู้ดูแลระบบที่จำเป็นได้รับการรายงานอย่างกว้างขวางว่าเป็นข้อบกพร่อง และ Apple มีแนวโน้มที่จะออกการอัปเดตความปลอดภัยขนาดเล็กในอนาคตอันใกล้นี้ อย่างไรก็ตาม หากคุณหวาดระแวงว่าจะมีใครมาแย่ง Mac ของคุณไปและเปลี่ยนรหัสผ่านผู้ใช้โดยไม่ได้รับอนุญาต คุณสามารถ เปลี่ยนการอนุญาตของยูทิลิตี้ dscl ด้วยตัวเอง ด้วยตัวคุณเอง บังคับให้ต้องใช้สิทธิ์ของผู้ดูแลระบบเพื่อที่จะทำงาน
- Launch Terminal (อยู่ที่ /Applications/Utilities/)
- พิมพ์คำสั่งต่อไปนี้แล้วกด return:
- ระบบจะขอรหัสผ่านผู้ดูแลระบบปัจจุบันเพื่อยืนยันการเปลี่ยนแปลงสิทธิ์ ป้อนรหัสผ่านแล้วกดย้อนกลับ
sudo chmod 100 /usr/bin/dscl
นี่คือการแก้ไขการอนุญาตอย่างง่ายที่น่าจะเลียนแบบสิ่งที่การอัปเดตความปลอดภัยอย่างเป็นทางการจะทำ การใช้ sudo chmod 100 ระบุว่ามีเพียงเจ้าของ (รูท) เท่านั้นที่สามารถเรียกใช้คำสั่ง dscl ซึ่งป้องกันผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบรายอื่นอย่างมีประสิทธิภาพไม่ให้เข้าถึงยูทิลิตี้บริการไดเร็กทอรีโดยไม่ต้องใช้คำสั่ง sudo และดังนั้นจึงเป็นรหัสผ่านของผู้ดูแลระบบ
อาจมีผลกระทบที่ไม่ได้ตั้งใจจากการเปลี่ยนแปลงการอนุญาตเหล่านั้น แต่ไม่น่าจะส่งผลกระทบต่อผู้ใช้ส่วนใหญ่ หากคุณพบปัญหาบางอย่าง คุณสามารถเปลี่ยนการอนุญาตกลับได้เสมอ ซึ่งค่าเริ่มต้นจะตั้งเป็น 755
ขอบคุณมากสำหรับ “Tjb” ที่ทิ้งเคล็ดลับนี้ไว้ในความคิดเห็น!
Update: Jim T ทิ้งคำแนะนำต่อไปนี้ไว้ในความคิดเห็น แนะนำคำสั่ง chmod อื่นเพื่อเปลี่ยนสิทธิ์:
เหตุผลของเขาคือ chmod 100 มีข้อจำกัดมากเกินไปในการเปลี่ยนคำสั่งให้ดำเนินการเท่านั้น ซึ่งเมื่อก่อนผู้ใช้ root สามารถอ่าน เขียน และดำเนินการได้