นี่คือคำสั่ง authbind ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
authbind - ผูกซ็อกเก็ตกับพอร์ตที่มีสิทธิพิเศษโดยไม่ต้องรูท
เรื่องย่อ
เอกสารรับรองความถูกต้อง [ตัวเลือก] โครงการ [อาร์กิวเมนต์ ... ]
DESCRIPTION
เอกสารรับรองความถูกต้อง อนุญาตให้โปรแกรมที่ไม่หรือไม่ควรรันเป็นรูทเพื่อผูกกับหมายเลขต่ำ
พอร์ตในลักษณะควบคุม
คุณต้องเรียกใช้โปรแกรมโดยใช้ เอกสารรับรองความถูกต้อง. เอกสารรับรองความถูกต้อง จะตั้งค่าสภาพแวดล้อมบางอย่าง
ตัวแปร รวมทั้ง an ld_preloadซึ่งจะช่วยให้โปรแกรม (รวมถึง any
กระบวนการย่อยที่อาจรัน) เพื่อผูกกับพอร์ตที่มีหมายเลขต่ำ (<512) หากระบบได้รับการกำหนดค่า
เพื่อให้สิ่งนี้
OPTIONS
--ลึก ปกติ เอกสารรับรองความถูกต้อง จัดเฉพาะโปรแกรมที่เรียกโดยตรงให้เป็น
ได้รับผลกระทบจาก . รุ่นพิเศษ ผูก(2). หากคุณระบุ --ลึก แล้วทั้งหมด
โปรแกรมที่โปรแกรมเรียกใช้โดยตรงหรือโดยอ้อมจะได้รับผลกระทบดังนั้น
ตราบใดที่ไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อมที่ตั้งค่าโดย เอกสารรับรองความถูกต้อง.
--ความลึก ระดับ
เกี่ยวข้องทั่วโลก เอกสารรับรองความถูกต้อง กระทบต่อโปรแกรมต่างๆ ที่ ระดับ ลึกลงไปในกราฟการโทร NS
ค่าเริ่มต้นคือ --ความลึก 1.
ACCESS ควบคุม
การเข้าถึงพอร์ตหมายเลขต่ำถูกควบคุมโดยสิทธิ์และเนื้อหาของไฟล์ใน
พื้นที่การกำหนดค่า, /etc/authbind.
ประการแรก /etc/authbind/บายพอร์ต/พอร์ต ได้รับการทดสอบ หากไฟล์นี้สามารถเข้าถึงได้สำหรับการดำเนินการถึง
ผู้ใช้โทรตาม เข้า(2) แล้วจึงมีผลผูกพันกับท่าเรือ ถ้า
ไฟล์ไม่สามารถเห็นได้ (การตรวจสอบการมีอยู่ส่งคืน อีน็อนต์) จากนั้นการทดสอบเพิ่มเติมจะ
ใช้เพื่อค้นหาการอนุญาต มิฉะนั้นจะไม่มีผลผูกพันและ ผูก โทรศัพท์
จะกลับมาพร้อมกับ Errno ค่าจาก เข้า(2) เรียก ปกติ อีเอซีเอส (การอนุญาต
ปฏิเสธ).
ประการที่สอง หากการทดสอบนั้นไม่สามารถแก้ไขปัญหาได้ /etc/authbind/byaddr/addr,พอร์ต (ใด ๆ
โปรโตคอล) หรือความล้มเหลวนั้น /etc/authbind/byaddr/addr:พอร์ต (IPv4 เท่านั้น) ได้รับการทดสอบใน
แบบเดียวกับข้างบน ที่นี่ addr มาจาก inet_ntopและ พอร์ต คือ (ท้องถิ่น) TCP หรือ UDP
หมายเลขพอร์ต ซึ่งแสดงเป็นจำนวนเต็มที่ไม่ได้ลงนามในจำนวนหลักที่น้อยที่สุดที่ไม่ใช่ศูนย์
ประการที่สาม สำหรับ IPv6 เท่านั้น: เนื่องจากการแสดงข้อความจาก inet_ntop ซับซ้อนไป
ทำนาย ตัวแปรของ addr ยังได้รับการทดสอบซึ่งไม่ใช้เครื่องหมายทวิภาค
ตัวย่อ: แต่ละอันขนาด 16 ไบต์ที่แสดงด้วยจำนวนเลขฐานสิบหกที่น้อยที่สุด
(เช่นลบเลขศูนย์นำหน้า) ส่วนต่างๆ จะถูกคั่นด้วยโคลอนตามที่is
ธรรมดา.
ประการที่สี่ ถ้าคำถามยังไม่ได้รับการแก้ไข file /etc/authbind/byuid/UID จะ
เปิดและอ่าน หากไม่มีไฟล์อยู่ การผูกจะไม่ได้รับอนุญาตและ ผูก
จะกลับมา อีเปิร์ม (การดำเนินการ ไม่ ที่ได้รับอนุญาต,หรือ ไม่ เจ้าของ). หากไฟล์นั้นมีอยู่ มันจะ
ถูกค้นหาบรรทัดของแบบฟอร์ม
ผู้ดูแลระบบ[-แอดเดอร์แม็กซ์],พอร์ตมิน[-พอร์ตแม็กซ์]
addr[/ความยาว],พอร์ตมิน[-พอร์ตแม็กซ์]
แอดเดรส4/ความยาว:พอร์ตมิน,พอร์ตแม็กซ์
ตรงกับคำขอ แบบฟอร์มแรกกำหนดให้ที่อยู่อยู่ในช่วงที่เกี่ยวข้อง
(รวมที่ปลายทั้งสอง) รูปแบบที่สองและสามกำหนดให้เริ่มต้น ความยาว บิต
of addr ตรงกับที่เสนอ ผูก เรียก. แบบฟอร์มที่สามใช้ได้กับ IPv4 . เท่านั้น
เนื่องจากที่อยู่ IPv6 มีเครื่องหมายทวิภาค ที่อยู่ในไฟล์ byuid สามารถอยู่ในรูปแบบใดก็ได้
ยอมรับ inet_pton ในทุกกรณีหมายเลขพอร์ตที่เสนอจะต้องอยู่ใน
รวมช่วงที่ระบุ หากพบเส้นดังกล่าว ให้มีผลผูกพัน
มิฉะนั้น มันไม่ใช่ และ ผูก จะล้มเหลวด้วย อีน็อนต์ (ไม่ อย่างเช่น ไฟล์ or ไดเรกทอรี).
หากเกิดข้อผิดพลาดในการอ่านหรือไดเร็กทอรี /etc/authbind ไม่สามารถเข้าถึงได้ไม่เพียงเท่านั้น
จะ ผูก ล้มเหลว แต่ข้อความแสดงข้อผิดพลาดจะพิมพ์ไปที่ stderr เส้นที่ไม่รู้จักใน
/etc/authbind/byuid/UID ไฟล์จะถูกละเว้นอย่างเงียบ ๆ เช่นเดียวกับบรรทัดที่ addr มีไม่เป็นศูนย์
บิตมากกว่า ความยาว จากด้านบนหรือที่ไหนสักแห่ง นาที มีขนาดใหญ่กว่า แม็กซ์.
ตัวอย่าง
ตัวอย่างเช่นความพยายามโดย uid 432 เพื่อผูกกับพอร์ต 80 ของที่อยู่
[2620:106:e002:f00f::21] จะส่งผลให้เกิดการเรียก authbind เข้า(2) ในการสั่งซื้อ
/etc/authbind/byport/80
/etc/authbind/byaddr/2620:106:e002:f00f::21,80
/etc/authbind/byaddr/2620:106:e002:f00f:0:0:0:21,80
หากไม่มีไฟล์เหล่านี้ authbind จะอ่าน
/etc/authbind/byuid/432
และค้นหาบรรทัดเพื่ออนุญาตการเข้าถึงที่เกี่ยวข้อง ตัวอย่างเส้นที่จะทำเช่นนั้น
คือ:
2620:106:e002:f00f::21,80
::/0,80
พอร์ต 512-1023
ไม่แนะนำให้อนุญาตการผูกกับพอร์ตตั้งแต่ 512 ถึง 1023 รวมอยู่ด้วย บาง
โปรโตคอล (รวมถึง NFS บางรุ่น) อนุญาตไคลเอนต์โดยเห็นว่าพวกเขากำลังใช้
หมายเลขพอร์ตในช่วงนี้ ดังนั้นโดยการอนุญาตให้โปรแกรมเป็นเซิร์ฟเวอร์สำหรับพอร์ตดังกล่าว
คุณยังอนุญาตให้แอบอ้างเป็นโฮสต์ทั้งหมดสำหรับโปรโตคอลเหล่านั้น
เพื่อให้แน่ใจว่าสิ่งนี้ไม่ได้เกิดขึ้นโดยบังเอิญ หากหมายเลขพอร์ตที่ร้องขออยู่ใน
ช่วง 512-1023 authbind คาดว่าไฟล์การอนุญาตจะมีเพิ่มเติม ! ที่
จุดเริ่มต้นของชื่อลีฟของพวกเขา
กลไก
ไลบรารีที่ใช้ร่วมกันโหลดโดยใช้ ld_preload แทนที่ ผูก(2) การเรียกระบบ เมื่อ
โปรแกรมที่เรียกใช้ผ่าน เอกสารรับรองความถูกต้อง โทร ผูก เพื่อผูกซ็อกเก็ตกับพอร์ต TCP/IP ที่มีหมายเลขต่ำ
และหากโปรแกรมไม่มี uid ที่มีประสิทธิภาพเท่ากับ 0 เวอร์ชันของ ผูก
ควรจะโดย เอกสารรับรองความถูกต้อง แยกและรันโปรแกรมตัวช่วยรูท setuid สำหรับผู้ที่ไม่ใช่ TCP/IP
ซ็อกเก็ต พอร์ตที่มีหมายเลขสูง หรือโปรแกรมที่รูทอยู่แล้ว เอกสารรับรองความถูกต้อง โอนสาย
ไปที่เดิม ผูก(2) การเรียกระบบซึ่งพบโดยใช้ ดีแอลซิม(3) มีด้ามจับ
RTLD_ถัดไป.
ข้อผิดพลาด การจัดการ
โดยปกติจะใช้กลไกการจัดการข้อผิดพลาด C ตามปกติ ถ้า เอกสารรับรองความถูกต้อง หาโปรแกรมไม่เจอ
มันถูกขอให้ดำเนินการ มันจะพิมพ์ข้อความไปที่ stderr และออกด้วยรหัส 255
โปรแกรมตัวช่วยมักจะรายงานกลับไปที่ไลบรารีที่ใช้ร่วมกันพร้อมสถานะออก
มีไฟล์ Errno ค่าที่เข้ารหัสว่า ผูก ได้รับอนุญาตและประสบความสำเร็จ
จะกลับสู่โปรแกรมการโทรตามปกติ
ในกรณีของการกำหนดค่าที่ชัดเจนหรือข้อผิดพลาดร้ายแรงอื่นๆ ไลบรารีและ/หรือ
โปรแกรม helper อาจทำให้ข้อความถูกพิมพ์ไปยัง stderr ของโปรแกรมได้เช่นกัน
กลับ -1 จาก ผูก.
ใช้ authbind ออนไลน์โดยใช้บริการ onworks.net