ไม่/dev/stdin
และ/dev/stdout
เป็นอุปกรณ์ที่ผิด นี่ไม่ใช่อุปกรณ์เทอร์มินัลพวกเขาเป็นนามแฝงสำหรับอินพุตมาตรฐานและเอาต์พุตมาตรฐานตามลำดับ อินพุตมาตรฐานและเอาต์พุตมาตรฐานคือตัวอธิบายไฟล์ที่แอปพลิเคชันคาดว่าจะเปิดและมีความหมายทั่วไป (ตัวอธิบายไฟล์ 0 และ 1 ตามลำดับมี 2 ซึ่งเป็นข้อผิดพลาดมาตรฐาน) อุปกรณ์เช่น/dev/stdin
และ/dev/stdout
มีประโยชน์เมื่อแอปพลิเคชันต้องการชื่อไฟล์ แต่ผู้ใช้ของแอปพลิเคชันต้องการให้เข้าถึงไฟล์ descriptor เฉพาะแทนที่จะเปิดไฟล์บางไฟล์ ขึ้นอยู่กับตัวแปร unix พวกเขาอาจไม่ได้เป็นไฟล์อุปกรณ์ ตัวอย่างเช่นบน Linux พวกเขากำลังเชื่อมโยงสัญลักษณ์ไป/proc/self/fd/0
และเพื่อน ๆ และสิ่งเหล่านี้ก็คือการเชื่อมโยงสัญลักษณ์ "วิเศษ" ไปยังไฟล์ใดก็ตามที่กระบวนการได้เปิดไว้บนตัวบอกไฟล์นั้นแล้ว
การเปลี่ยนการอนุญาต/dev/stdin
และ/dev/stdout
จะเปลี่ยนแปลงสิ่งที่เกิดขึ้นเมื่อมีการใช้ชื่อไฟล์เหล่านี้อย่างชัดเจน จะไม่มีผลกับสิ่งที่เกี่ยวข้องกับเทอร์มินัลและจะไม่ส่งผลกระทบต่อการใช้งานปกติของอินพุตมาตรฐานและเอาต์พุตมาตรฐานเนื่องจากสิทธิ์จะมีผลเฉพาะเมื่อเปิดชื่อไฟล์เฉพาะ
สิ่งที่mesg
ไม่สามารถที่จะเปลี่ยนสิทธิ์ของกระบวนการที่สถานีควบคุม สำหรับแอปพลิเคชันที่ทำงานในเทอร์มินัลเทอร์มินัลจะเปิดในอินพุตมาตรฐาน ouput มาตรฐานและข้อผิดพลาดมาตรฐาน (ตัวอธิบายไฟล์ 0, 1 และ 2) คุณสามารถใช้คำสั่งtty
เพื่อดูว่าอุปกรณ์ปลายทางคืออะไร mesg n
เทียบเท่ากับchmod g-w "$(tty)"
และเทียบเท่ากับmesg y
chmod g+w "$(tty)"
mesg n
สามารถใช้การอนุญาตเพื่อส่งผลกระทบในอนาคตwrite
เท่านั้นเพราะwrite
ยังไม่มีเทอร์มินัลเปิด