คำถามติดแท็ก unix-sockets

2
เหตุใดความยาวเส้นทางซ็อกเก็ตจึง จำกัด เพียงหนึ่งร้อยตัวอักษร
บนชื่อพา ธ ของระบบ Unix มักจะไม่จำกัดความยาว (เช่น 4096 ตัวอักษรบน Linux) ... ยกเว้นเส้นทางของไฟล์ซ็อกเก็ตซึ่ง จำกัด อยู่ที่ประมาณ 100 ตัวอักษร (107 ตัวอักษรบนLinux ) คำถามแรก: ทำไมถึงมีข้อ จำกัด ต่ำ ผมได้ตรวจสอบว่ามันดูเหมือนเป็นไปได้ที่จะหลีกเลี่ยงข้อ จำกัด นี้โดยการเปลี่ยนไดเรกทอรีการทำงานปัจจุบันและการสร้างในไดเรกทอรีต่างๆหลายซ็อกเก็ตไฟล์ทั้งหมดที่ใช้เส้นทางเดียวกัน./myfile.sock: ใช้งานของลูกค้าดูเหมือนจะถูกต้องเชื่อมต่อกับเซิร์ฟเวอร์กระบวนการคาดว่าแม้แม้ว่าlsofการแสดงทั้งหมด ของพวกเขาฟังบนเส้นทางไฟล์ซ็อกเก็ตเดียวกัน วิธีนี้เป็นวิธีที่เชื่อถือได้หรือฉันแค่โชคดี? พฤติกรรมนี้มีเฉพาะกับ Linux หรืออาจใช้วิธีแก้ปัญหานี้กับ Unixes อื่นเช่นกัน?

1
เกิดอะไรขึ้นกับข้อมูลเสริม unix สตรีมในการอ่านบางส่วน?
ดังนั้นฉันได้อ่านข้อมูลมากมายเกี่ยวกับข้อมูลเสริมยูนิกซ์ แต่สิ่งหนึ่งที่ขาดหายไปจากเอกสารทั้งหมดคือสิ่งที่ควรจะเกิดขึ้นเมื่อมีการอ่านบางส่วน? สมมติว่าฉันได้รับข้อความต่อไปนี้ในบัฟเฟอร์ 24 ไบต์ msg1 [20 byes] (no ancillary data) msg2 [7 bytes] (2 file descriptors) msg3 [7 bytes] (1 file descriptor) msg4 [10 bytes] (no ancillary data) msg5 [7 bytes] (5 file descriptors) การเรียกครั้งแรกเพื่อ recvmsg ฉันได้รับ msg1 ทั้งหมด (และเป็นส่วนหนึ่งของ msg2 ระบบปฏิบัติการจะทำเช่นนั้นหรือไม่) ถ้าฉันได้รับส่วนหนึ่งของ msg2 ฉันจะได้รับข้อมูลเสริมทันทีและจำเป็นต้องบันทึกไว้สำหรับการอ่านครั้งต่อไป เมื่อฉันรู้ว่าสิ่งที่ข้อความจริงบอกให้ฉันทำกับข้อมูล? หากฉันเพิ่มขนาด 20 ไบต์จาก …

2
Linux ล้างข้อมูลซ็อกเก็ตโดเมนนามธรรมโดยอัตโนมัติหรือไม่
มีคำตอบที่ดีเกี่ยวกับ StackOverflow เกี่ยวกับการมอบการล็อกที่ดีกว่าสำหรับ daemons (สังเคราะห์จากEduardo Fleury ) ที่ไม่ได้ขึ้นอยู่กับกลไกการล็อคไฟล์ PID ทั่วไปสำหรับ daemons มีความคิดเห็นที่ดีมากมายเกี่ยวกับสาเหตุที่ไฟล์ PID ล็อกบางครั้งอาจทำให้เกิดปัญหาดังนั้นฉันจะไม่ทำใหม่ที่นี่ กล่าวโดยย่อโซลูชันนี้ใช้ซ็อกเก็ตโดเมนเนมสเปซนามธรรมของ Linux ซึ่งคอยติดตามซ็อกเก็ตตามชื่อของคุณแทนที่จะใช้ไฟล์ซึ่งสามารถติดตั้งได้หลังจากที่ daemon คือ SIGKILL ตัวอย่างแสดงให้เห็นว่า Linux ดูเหมือนว่าจะเพิ่มซ็อกเก็ตเมื่อกระบวนการตาย แต่ฉันไม่สามารถหาเอกสารที่ชัดเจนใน Linux ที่บอกว่า Linux ทำอะไรกับซ็อกเก็ตนามธรรมเมื่อกระบวนการที่ถูกผูกไว้คือ SIGKILL มีใครรู้บ้าง ใส่อีกวิธีหนึ่งเมื่อซ็อกเก็ตบทคัดย่อให้อิสระที่จะใช้อีกครั้งอย่างแม่นยำ? ฉันไม่ต้องการแทนที่กลไกไฟล์ PID ด้วยซ็อกเก็ตที่เป็นนามธรรมเว้นแต่จะแก้ไขปัญหาได้อย่างแน่นอน

2
วิธีจับภาพเฉยๆจากซ็อกเก็ตโดเมน Unix (การตรวจสอบซ็อกเก็ต AF_UNIX)
การจับ TCP / IP และ UDP สามารถทำได้โดยใช้tcpdump/ dumpcapและสร้างไฟล์ pcap / pcapng ซึ่งสามารถป้อนให้ Wireshark สำหรับการวิเคราะห์เพิ่มเติม มีเครื่องมือที่คล้ายกันนี้อยู่ในซ็อกเก็ตโดเมนชื่อ Unix หรือไม่? (โซลูชันทั่วไปที่ใช้กับซ็อกเก็ตแบบนามธรรมจะดีเช่นกัน) straceตาม - ไม่เพียงพอไม่ตรงไปตรงมาเพื่อกรองสำหรับซ็อกเก็ตโดเมน Unix I / O พร็อกซี่ใช้socatหรือเหมือนกันยังไม่เหมาะที่จะเป็นเป้าหมายคือการวิเคราะห์เรื่อย ๆ สำหรับโปรแกรมที่เปิดมีอยู่ ฉันจะขอรับการจับแพ็คเก็ตที่ฉันสามารถใช้ใน Wireshark เพื่อการวิเคราะห์ได้อย่างไร ตัวอย่างการใช้งานโพรโทคอลคือ X11 (Xorg แอปพลิเคชันปัจจุบันของฉัน) และ cURL / PHP (HTTP) ฉันเห็นCONFIG_UNIX_DIAGตัวเลือกในเคอร์เนล Linux นี่เป็นการใช้งานหรือไม่?

1
สิทธิ์ x (เรียกใช้) ทำอะไรบนซ็อกเก็ตยูนิกซ์?
จากประสบการณ์ของฉันผู้ใช้ที่ไม่ได้รับสิทธิพิเศษไม่สามารถเข้าถึงซ็อกเก็ต unix ที่ตนเอง / เธอไม่ได้เป็นเจ้าของโดยไม่ได้ตั้งค่าบิต x บิตนี้ทำอะไรกันแน่? ขอบคุณ

1
ความหมายของเนื้อหาของ / proc / net / unix คืออะไร?
บนอุปกรณ์ Android ของฉันมีไฟล์ที่เรียกว่าเนื้อหา/proc/net/unixของผู้ที่ ไม่สอดคล้องกับการกระจาย Linux มาตรฐานใด ๆ(ซึ่งแสดงซ็อกเก็ตโดเมน unix) สองสามบรรทัดแรก: Num RefCount Protocol Flags Type St Inode Path 00000000: 00000002 00000000 00000000 0002 01 5287581 /data/misc/wifi/sockets/wpa_ctrl_789-3189 00000000: 00000003 00000000 00000000 0001 03 6402 /dev/socket/qmux_radio/qmux_client_socket 297 00000000: 00000002 00000000 00010000 0001 01 7180 /dev/.secure_storage/ssd_socket 00000000: 00000002 00000000 00010000 0001 01 6424 /dev/socket/cnd …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.