เมื่อสัปดาห์ที่ผ่านมามีผู้พบพฤติกรรมแปลกๆ ของ systemd ที่พบว่าหากผู้ใช้ชื่อขึ้นต้นด้วยตัวเลข เช่น 0day
จะทำให้ผู้ใช้นั้นมีสิทธิ์ในระดับ root
ชื่อผู้ใช้เช่นนี้ไม่ถูกต้องตามมาตรฐาน POSIX (มาตรฐานอินเทอร์เฟซของระบบปฎิบัติการที่ลินุกซ์สร้างตาม) ที่ระบุว่าชื่อผู้ใช้ต้องขึ้นต้นด้วยตัวอักษรเสมอ แต่เครื่องมือสร้างผู้ใช้หลายตัวกลับไม่บังคับตามมาตรฐานนี้ เช่น adduser
นั้นบังคับชื่อผู้ใช้ถูกต้อง ขณะที่ useradd
นั้นไม่บังคับ
ตัว systemd กลับมีพฤติกรรมแปลกๆ คือเมื่อชื่อผู้ใช้เข้าไปในระบบได้ แทนที่จะให้สิทธิ์ในการรันตามสิทธิ์ของผู้ใช้เอง หรือแสดงความผิดพลาดว่าชื่อไม่ถูกต้อง ตัว systemd กลับยกสิทธิ์ของผู้ใช้ขึ้นเป็น root ทันที แทนที่จะแจ้งเป็นความผิดพลาดใน unit
ผู้ใช้ทั่วไปคงไม่ได้พบพฤติกรรมเช่นนี้นัก แต่ผู้ดูแลระบบที่มีโอกาสต้องเขียนไฟล์ unit กันบ้างก็คงต้องท่องกันให้ขึ้นใจว่าอย่าใช้ชื่อผู้ใช้ขึ้นต้นด้วยตัวเลข
ที่มา - Github: systemd
Comments
ระบบปฎิบัติการ => ระบบปฏิบัติการ
กลับยสิทธิ์ ?