ซ่อนโพรเซสไม่ให้ผู้ใช้อื่นตรวจเห็น

ในระบบที่มีผู้ใช้หลายคน โดยปกติระบบยูนิกซ์ทั่วไปจะอนุญาตให้ผู้ใช้ตรวจดูโพรเซสทั้งหมดที่ทำงานอยู่ในเครื่องได้ ผ่านคำสั่ง ps หรือ top ซึ่งในบางกรณีก็เป็นการเปิดช่องสำหรับการล้วงความลับของผู้ใช้อื่น โดยเฉพาะในคำสั่งที่ผู้ใช้ใส่รหัสผ่านเป็น argument ของบรรทัดคำสั่ง

เคอร์เนลลินุกซ์ 3.2 ขึ้นไป มีทางเลือกให้คุณสามารถซ่อนโพรเซสของผู้ใช้แต่ละคนไม่ให้ผู้ใช้อื่นมองเห็นได้ โดยใช้ตัวเลือก hidepid สำหรับการเมานท์ระบบแฟ้ม /proc

ค่าของตัวเลือก hidepid ที่เป็นไปได้คือ

0
เป็นค่าปริยาย ซึ่งผู้ใช้จะเห็นทุกโพรเซสในระบบ
1
ผู้ใช้ธรรมดาจะเห็น process ID ทั้งหมดใน /proc แต่จะมีสิทธิ์อ่านเฉพาะโพรเซสที่ตนเป็นเจ้าของเท่านั้น ทำให้ไม่เห็นโพรเซสของผู้ใช้อื่นในคำสั่ง ps หรือ top
2
ผู้ใช้ธรรมดาจะเห็นเฉพาะ process ID ของตัวเองใน /proc เท่านั้น ไม่เห็นของคนอื่นเลย จึงไม่สามารถตรวจดูโพรเซสของผู้ใช้อื่นได้โดยสิ้นเชิง

แต่ผู้ใช้ root จะยังคงมองเห็นทุกโพรเซสในระบบตามปกติ ไม่ว่าจะเมานท์แบบไหน

คุณสามารถสั่ง remount แบบต่าง ๆ ได้เมื่อต้องการ เช่น:

# mount -o remount /proc -o hidepid=2

หรือหากต้องการให้เมาทน์ขณะบูต ก็กำหนดเช่นนี้ใน /etc/fstab:

proc    /proc   proc    defaults,hidepid=2      0       0

ลองตรวจดูโพรเซสของระบบ (เช่น ps -ef) ในฐานะผู้ใช้ธรรมดา ก็จะไม่เห็นโพรเซสของผู้ใช้อื่นแล้ว

ใน โพสต์ล่าสุดของทีม Debian Security มีการเสนอให้ใช้ตัวเลือก hidepid=1 เป็นค่าปริยายของระบบในอนาคต

ที่มา: Debian Administration

Topic: 
Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้