ນີ້ແມ່ນຄໍາສັ່ງ authbind ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
authbind - bind sockets ກັບພອດສິດທິພິເສດໂດຍບໍ່ມີການ root
ສະຫຼຸບສັງລວມ
authbind [ທາງເລືອກໃນການ] ໂຄງການ [ການໂຕ້ຖຽງ ... ]
ລາຍລະອຽດ
authbind ອະນຸຍາດໃຫ້ໂຄງການທີ່ບໍ່ຫຼືບໍ່ຄວນຈະດໍາເນີນການເປັນ root ເພື່ອຜູກພັນກັບຕົວເລກຕ່ໍາ
ພອດໃນວິທີການຄວບຄຸມ.
ທ່ານຕ້ອງຮຽກຮ້ອງໃຫ້ໂຄງການການນໍາໃຊ້ authbind. authbind ຈະສ້າງສະພາບແວດລ້ອມບາງຢ່າງ
ຕົວແປ, ລວມທັງ LD_PRELOAD, ເຊິ່ງຈະອະນຸຍາດໃຫ້ໂຄງການ (ລວມທັງໃດໆ
ຂະບວນການຍ່ອຍທີ່ມັນອາດຈະດໍາເນີນການ) ເພື່ອຜູກມັດກັບພອດທີ່ມີຕົວເລກຕ່ໍາ (<512) ຖ້າລະບົບຖືກຕັ້ງຄ່າ
ອະນຸຍາດໃຫ້ນີ້.
OPTIONS
-- ເລິກ ໂດຍປົກກະຕິ, authbind ຈັດໃຫ້ພຽງແຕ່ໂຄງການທີ່ມັນຮຽກຮ້ອງໃຫ້ໂດຍກົງ
ຮັບຜົນກະທົບໂດຍສະບັບພິເສດຂອງຕົນ ຜູກ(2). ຖ້າທ່ານລະບຸ -- ເລິກ ຫຼັງຈາກນັ້ນທັງຫມົດ
ບັນດາໂຄງການທີ່ໂຄງການດັ່ງກ່າວຮຽກຮ້ອງໂດຍກົງຫຼືທາງອ້ອມຈະໄດ້ຮັບຜົນກະທົບ, ດັ່ງນັ້ນ
ຕາບໃດທີ່ພວກມັນບໍ່ຕັ້ງຄ່າຕົວແປສະພາບແວດລ້ອມທີ່ຕັ້ງຂຶ້ນໂດຍ authbind.
-- ຄວາມເລິກ ລະດັບ
ສາເຫດ authbind ຜົນກະທົບຕໍ່ໂຄງການທີ່ມີ ລະດັບ ເລິກຢູ່ໃນເສັ້ນສະແດງການໂທຫາ. ໄດ້
ມາດຕະຖານແມ່ນ -- ຄວາມເລິກ 1.
ACCESS ການຄວບຄຸມ
ການເຂົ້າເຖິງພອດທີ່ມີຕົວເລກຕໍ່າຖືກຄວບຄຸມໂດຍການອະນຸຍາດ ແລະເນື້ອໃນຂອງໄຟລ໌ໃນ a
ພື້ນທີ່ການຕັ້ງຄ່າ, /etc/authbind.
ທໍາອິດ, /etc/authbind/byport/port ຖືກທົດສອບ. ຖ້າໄຟລ໌ນີ້ສາມາດເຂົ້າເຖິງໄດ້ສໍາລັບການປະຕິບັດການ
ຜູ້ໃຊ້ໂທ, ອີງຕາມ ການເຂົ້າເຖິງ(2), ຫຼັງຈາກນັ້ນການຜູກມັດກັບພອດແມ່ນອະນຸຍາດ. ຖ້າ
ໄຟລ໌ສາມາດເຫັນໄດ້ວ່າບໍ່ມີຢູ່ (ການກວດສອບການມີຢູ່ກັບຄືນມາ ENOENT) ຫຼັງຈາກນັ້ນ, ການທົດສອບຕໍ່ໄປຈະ
ຖືກນໍາໃຊ້ເພື່ອຊອກຫາການອະນຸຍາດ; ຖ້າບໍ່ດັ່ງນັ້ນ, ການຜູກມັດແມ່ນບໍ່ໄດ້ຮັບອະນຸຍາດ, ແລະ ຜູກ ໂທ
ຈະກັບຄືນມາດ້ວຍ ຜິດພາດ ມູນຄ່າຈາກ ການເຂົ້າເຖິງ(2) ໂທ, ປົກກະຕິແລ້ວ EACCES (ການອະນຸຍາດ
ຖືກປະຕິເສດ).
ອັນທີສອງ, ຖ້າການທົດສອບນັ້ນບໍ່ສາມາດແກ້ໄຂບັນຫາໄດ້, /etc/authbind/byaddr/ສິ່ງເສບຕິດ,port (ໃດກໍ່ຕາມ
protocol) ຫຼືລົ້ມເຫລວນັ້ນ /etc/authbind/byaddr/ສິ່ງເສບຕິດ:port (IPv4 ເທົ່ານັ້ນ) ຖືກທົດສອບ, ໃນ
ລັກສະນະດຽວກັນກັບຂ້າງເທິງ. ທີ່ນີ້ ສິ່ງເສບຕິດ ແມ່ນມາຈາກ inet_ntop, ແລະ port ແມ່ນ (ທ້ອງຖິ່ນ) TCP ຫຼື UDP
ໝາຍເລກພອດ, ສະແດງເປັນຈຳນວນທີ່ບໍ່ໄດ້ເຊັນໃນຈຳນວນຕົວເລກທີ່ບໍ່ແມ່ນສູນໜ້ອຍສຸດ.
ອັນທີສາມ, ສໍາລັບ IPv6 ເທົ່ານັ້ນ: ນັບຕັ້ງແຕ່ການເປັນຕົວແທນຂໍ້ຄວາມຈາກ inet_ntop ແມ່ນສັບສົນກັບ
ຄາດ, variant ຂອງ ສິ່ງເສບຕິດ ຍັງໄດ້ຮັບການທົດສອບທີ່ບໍ່ໃຊ້ຈໍ້າສອງເມັດ
ຕົວຫຍໍ້: ແຕ່ລະ chunk 16-byte ສະແດງຢູ່ໃນຈໍານວນ nonzero ຕໍາ່ສຸດທີ່ຂອງຕົວເລກ hex.
(ເຊັ່ນວ່າມີສູນນຳໜ້າອອກ), ຊິ້ນສ່ວນທີ່ຖືກແຍກອອກດ້ວຍຈໍ້າສອງເມັດຕາມທີ່ເຄີຍເປັນ
ທຳມະດາ.
ສີ່, ຖ້າຄໍາຖາມຍັງບໍ່ໄດ້ຮັບການແກ້ໄຂ, ໄຟລ໌ /etc/authbind/byuid/uid ຈະເປັນ
ເປີດແລະອ່ານ. ຖ້າໄຟລ໌ບໍ່ມີຢູ່ແລ້ວການຜູກມັດແມ່ນບໍ່ໄດ້ຮັບອະນຸຍາດແລະ ຜູກ
ຈະກັບຄືນ EPERM (ການດໍາເນີນງານ ບໍ່ ອະນຸຍາດ, ຫຼື ບໍ່ ເຈົ້າຂອງ). ຖ້າໄຟລ໌ມີຢູ່, ມັນຈະມີ
ຖືກຄົ້ນຫາສໍາລັບເສັ້ນຂອງແບບຟອມ
ຜູ້ເບິ່ງແຍງ[-addrmax],portmin[-portmax]
ສິ່ງເສບຕິດ[/ຄວາມຍາວ],portmin[-portmax]
addr4/ຄວາມຍາວ:portmin,portmax
ກົງກັບຄໍາຮ້ອງຂໍ. ແບບຟອມທໍາອິດຮຽກຮ້ອງໃຫ້ທີ່ຢູ່ຢູ່ໃນຂອບເຂດທີ່ກ່ຽວຂ້ອງ
(ລວມຢູ່ທັງສອງສົ້ນ). ຮູບແບບທີສອງແລະທີສາມຮຽກຮ້ອງໃຫ້ມີເບື້ອງຕົ້ນ ຄວາມຍາວ bits
of ສິ່ງເສບຕິດ ກົງກັບສິ່ງທີ່ຢູ່ໃນການສະເຫນີ ຜູກ ໂທ. ຮູບແບບທີສາມແມ່ນມີພຽງແຕ່ສໍາລັບ IPv4
ເນື່ອງຈາກທີ່ຢູ່ IPv6 ມີຈໍ້າສອງເມັດ. ທີ່ຢູ່ໃນໄຟລ໌ byuid ສາມາດຢູ່ໃນທຸກຮູບແບບ
ຍອມຮັບໄດ້ກັບ inet_pton. ໃນທຸກກໍລະນີ, ໝາຍເລກພອດທີ່ສະເໜີຕ້ອງນອນຢູ່ໃນ
ໄລຍະລວມທີ່ລະບຸໄວ້. ຖ້າພົບເສັ້ນດັ່ງກ່າວ, ການຜູກມັດໄດ້ຖືກອະນຸຍາດ.
ຖ້າບໍ່ດັ່ງນັ້ນມັນບໍ່ແມ່ນ, ແລະ ຜູກ ຈະລົ້ມເຫລວກັບ ENOENT (No ດັ່ງກ່າວ ເອກະສານ or ລະບົບ).
ຖ້າມີຂໍ້ຜິດພາດໃນການອ່ານເກີດຂື້ນ, ຫຼືໄດເລກະທໍລີ /etc/authbind ບໍ່ສາມາດເຂົ້າເຖິງໄດ້, ຫຼັງຈາກນັ້ນບໍ່ພຽງແຕ່
ຈະ ຜູກ ລົ້ມເຫລວ, ແຕ່ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະຖືກພິມໃສ່ stderr. ສາຍທີ່ບໍ່ຮູ້ຈັກໃນ
/etc/authbind/byuid/uid ໄຟລ໌ຖືກລະເລີຍຢ່າງງຽບໆ, ຄືກັບແຖວທີ່ມີ ສິ່ງເສບຕິດ ບໍ່ມີສູນ
bits ຫຼາຍກ່ວາ ຄວາມຍາວ ຈາກດ້ານເທິງຫຼືບາງບ່ອນ ນາທີ ແມ່ນໃຫຍ່ກວ່າ ສູງສຸດທີ່ເຄຍ.
EXAMPLE
ດັ່ງນັ້ນ, ສໍາລັບຕົວຢ່າງ, ຄວາມພະຍາຍາມໂດຍ 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 overrides ໄດ້ ຜູກ(2) ລະບົບການໂທ. ເມື່ອ ກ
ໂຄງການຮຽກຮ້ອງໂດຍຜ່ານ authbind ໂທ ຜູກ ເພື່ອຜູກມັດຊັອກເກັດໃສ່ພອດ TCP/IP ທີ່ມີຕົວເລກຕໍ່າ,
ແລະຖ້າໂຄງການບໍ່ມີ uid ທີ່ມີປະສິດທິພາບ 0, ຮຸ່ນຂອງ ຜູກ
ຄາດວ່າໂດຍ authbind forks ແລະປະຕິບັດໂຄງການຜູ້ຊ່ວຍ setuid-root. ສໍາລັບທີ່ບໍ່ແມ່ນ TCP/IP
ເຕົ້າຮັບ, ພອດທີ່ມີຕົວເລກສູງ, ຫຼືໂຄງການທີ່ມີຮາກແລ້ວ, authbind ຜ່ານການໂທ
ກັບຕົ້ນສະບັບ ຜູກ(2) ການໂທລະບົບ, ທີ່ພົບເຫັນການນໍາໃຊ້ dlsym(3) ດ້ວຍມືຈັບ
RTLD_NEXT.
ERROR ການຈັດການ
ປົກກະຕິແລ້ວກົນໄກການຈັດການຄວາມຜິດພາດ C ປົກກະຕິນໍາໃຊ້. ຖ້າ authbind ບໍ່ສາມາດຊອກຫາໂຄງການ
ມັນໄດ້ຖືກຮ້ອງຂໍໃຫ້ດໍາເນີນການມັນຈະພິມຂໍ້ຄວາມໄປຫາ stderr ແລະອອກດ້ວຍລະຫັດ 255.
ປົກກະຕິແລ້ວໂຄງການຜູ້ຊ່ວຍລາຍງານກັບຄືນໄປບ່ອນຫ້ອງສະຫມຸດທີ່ແບ່ງປັນດ້ວຍສະຖານະການອອກ
ບັນຈຸເປັນ ຜິດພາດ ຄ່າທີ່ເຂົ້າລະຫັດບໍ່ວ່າຈະເປັນ ຜູກ ໄດ້ຮັບອະນຸຍາດແລະສົບຜົນສໍາເລັດ.
ນີ້ຈະຖືກສົ່ງກັບຄືນໄປຫາໂຄງການໂທຫາໃນແບບປົກກະຕິ.
ໃນກໍລະນີຂອງການຕັ້ງຄ່າທີ່ຈະແຈ້ງຫຼືຄວາມຜິດພາດຮ້າຍແຮງອື່ນໆຫ້ອງສະຫມຸດແລະ / ຫຼື
ໂຄງການຜູ້ຊ່ວຍອາດຈະເຮັດໃຫ້ຂໍ້ຄວາມທີ່ຈະພິມອອກໄປທີ່ stderr ຂອງໂຄງການ, ແມ່ນເຊັ່ນດຽວກັນ
ກັບຄືນ -1 ຈາກ ຜູກ.
ໃຊ້ authbind ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net