Aceasta este comanda authbind care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
authbind - legați socketurile la porturi privilegiate fără root
REZUMAT
authbind [Opțiuni] program [argument ...]
DESCRIERE
authbind permite unui program care nu rulează sau nu ar trebui să ruleze ca rădăcină să se lege la numărul mic
porturi într-un mod controlat.
Trebuie să invocați programul folosind authbind. authbind va crea un mediu
variabile, inclusiv an LD_PRELOAD, care va permite programului (inclusiv orice
subprocesele pe care le poate rula) pentru a se lega la porturi cu numere reduse (<512) dacă sistemul este configurat
pentru a permite acest lucru.
OPŢIUNI
--adanc In mod normal, authbind aranjează doar programul pe care îl invocă direct să fie
afectată de versiunea sa specială a lega(2). Daca specificati --adanc apoi toate
programele pe care acel program le invocă direct sau indirect vor fi afectate, deci
atâta timp cât acestea nu anulează variabilele de mediu setate de authbind.
--adâncime nivelurile de
Cauze authbind pentru a afecta programele care sunt nivelurile de adânc în graficul de apelare. The
implicit este --adâncime 1.
ACCES CONTROL
Accesul la porturile cu număr redus este controlat de permisiunile și conținutul fișierelor din a
zona de configurare, /etc/authbind.
În primul rând, /etc/authbind/byport/port este testat. Dacă acest fișier este accesibil pentru execuție la
utilizatorul apelant, conform acces(2), atunci se autorizează legarea către port. Dacă
se poate vedea că fișierul nu există (verificarea existenței revine ENOENT) apoi teste ulterioare vor
să fie folosit pentru a găsi autorizație; în caz contrar, legarea nu este autorizată, iar lega apel
se va întoarce cu greseala valoarea din acces(2) apel, de obicei ACCES (permisiune
negat).
În al doilea rând, dacă acel test nu reușește să rezolve problema, /etc/authbind/byaddr/adresă,port (orice
protocol) sau în lipsă /etc/authbind/byaddr/adresă:port (doar IPv4) este testat, în
același mod ca mai sus. Aici adresă este ca de la inet_ntop și port este TCP sau UDP (local).
numărul de port, exprimat ca un întreg fără semn în numărul minim de cifre diferit de zero.
În al treilea rând, numai pentru IPv6: din moment ce reprezentarea textuală din inet_ntop este complicat să
prezice, o variantă a adresă este de asemenea testat care nu folosește dublu dublu
abreviere: fiecare bucată de 16 octeți exprimată în numărul minim de cifre hexadecimale diferite de zero
(adică cu zerourile de început eliminate), bucățile fiind separate prin două puncte așa cum sunt
convenţional.
În al patrulea rând, dacă întrebarea este încă nerezolvată, dosarul /etc/authbind/byuid/uid va fi
deschis și citit. Dacă fișierul nu există atunci legarea nu este autorizată și lega
va reveni EPERM (Ziua Operației nu permis, Nu proprietar). Dacă fișierul există, va fi
fi căutat pentru o linie a formularului
addrmin[-addrmax],portmin[-portmax]
adresă[/lungime],portmin[-portmax]
adresa4/lungime:portmin,portmax
potrivirea cererii. Prima formă necesită ca adresa să fie în intervalul relevant
(inclusiv la ambele capete). A doua și a treia formă necesită ca inițiala lungime biţi
of adresă se potrivesc cu cele din propus lega apel. A treia formă este disponibilă numai pentru IPv4
deoarece adresele IPv6 conțin două puncte. Adresele din fișierul byuid pot fi sub orice formă
acceptabil pentru inet_pton. În toate cazurile, numărul de port propus trebuie să fie în
intervalul inclusiv specificat. Dacă se găsește o astfel de linie, atunci legarea este autorizată.
Altfel nu este, și lega va eșua cu ENOENT (Nu astfel de fişier or director).
Dacă apare o eroare de citire, sau directorul /etc/authbind nu poate fi accesat, atunci nu numai
voi lega eșuează, dar un mesaj de eroare va fi tipărit în stderr. Rânduri nerecunoscute în
/etc/authbind/byuid/uid fișierele sunt ignorate în tăcere, la fel ca și liniile ale căror adresă are non-zero
biți mai mult decât lungime de sus sau unde unii minute este mai mare decât max.
EXEMPLU
Deci, de exemplu, o încercare a uid 432 de a se lega la portul 80 al adresei
[2620:106:e002:f00f::21] ar avea ca rezultat apelarea authbind acces(2) pe, în ordine,
/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
Dacă niciunul dintre aceste fișiere nu există, authbind va citi
/etc/authbind/byuid/432
și căutați o linie care să permită accesul relevant; exemple de linii care ar face acest lucru
sunt:
2620:106:e002:f00f::21,80
::/0,80
PORTURI 512-1023
Nu este recomandată autorizarea legării la porturi de la 512 la 1023 inclusiv. niste
protocoalele (inclusiv unele versiuni de NFS) autorizează clienții văzând că folosesc
un număr de port în acest interval. Deci, prin autorizarea unui program să fie un server pentru un astfel de port,
de asemenea, îl autorizați să uzurpare identitatea întregii gazde pentru acele protocoale.
Pentru a vă asigura că acest lucru nu se face din întâmplare, dacă numărul de port solicitat este în
intervalul 512-1023, authbind se va aștepta ca fișierele de permisiuni să aibă un suplimentar ! de la
începutul lor leafname.
MECANISM
Biblioteca partajată s-a încărcat folosind LD_PRELOAD trece peste lega(2) apel de sistem. Când un
program invocat prin authbind Apeluri lega pentru a lega un socket la un port TCP/IP cu numere mici,
iar dacă programul nu are deja un uid efectiv de 0, versiunea de lega
presupus de authbind bifurcă și execută un program de ajutor setuid-root. Pentru non-TCP/IP
socket-uri, porturi cu numere mari sau programe care sunt deja root, authbind trece apelul
la original lega(2) apel de sistem, care este găsit folosind dlsym(3) cu mâner
RTLD_NEXT.
EROARE MANIPULARE
De obicei, se aplică mecanismele normale de gestionare a erorilor C. Dacă authbind nu pot găsi programul
i s-a cerut să execute, va imprima un mesaj către stderr și va ieși cu codul 255.
Programul de ajutor raportează de obicei înapoi bibliotecii partajate cu o stare de ieșire
care conține un greseala valoare care codifică dacă lega a fost permis și de succes.
Acesta va fi returnat programului de apelare în mod obișnuit.
În cazul configurației aparente sau a altor erori grave, biblioteca și/sau
programul de ajutor poate face ca mesajele să fie tipărite în stderr-ul programului, a fost bine ca
revenind -1 din lega.
Utilizați authbind online folosind serviciile onworks.net