Provided by: fakeroot_1.36-1_amd64 bug

NUME

       fakeroot  -  rulează  o  comandă  într-un  mediu  care  simulează  privilegii  de root pentru manipularea
       fișierelor

REZUMAT

       fakeroot [-l|--lib library] [--faked binar_precum_faked]  [-i  fișier-încărcare]  [-s  fișier-de-salvare]
       [-u|--unknown-is-real ] [-b|--fd-base ] [-h|--help ] [-v|--version ] [--] [comanda]

DESCRIERE

       fakeroot  execută  o  comandă  într-un  mediu  în care pare să aibă privilegii de root pentru manipularea
       fișierelor.  Acest lucru este util pentru a permite utilizatorilor să creeze arhive (tar, ar, .deb  etc.)
       care  conțin fișiere cu permisiuni/proprietate de root.  Fără fakeroot ar trebui să se aibă privilegii de
       root pentru a crea fișierele constitutive ale arhivelor cu permisiunile și proprietatea corecte  și  apoi
       să le împacheteze, sau ar trebui să se construiască arhivele direct, fără a se utiliza arhivatorul.

       fakeroot  funcționează  prin  înlocuirea  funcțiilor de manipulare a fișierelor din bibliotecă (chmod(2),
       stat(2) etc.) cu funcții care simulează efectul pe care l-ar fi avut funcțiile reale de bibliotecă,  dacă
       utilizatorul ar fi fost cu adevărat root. Aceste funcții de învăluire se află într-o bibliotecă partajată
       /usr/lib/*/libfakeroot-*.so  sau  într-o  locație similară pe platforma dumneavoastră.  Obiectul partajat
       este încărcat prin intermediul mecanismului LD_PRELOAD al încărcătorului dinamic. (A se vedea ld.so(8))

       Dacă intenționați să construiți pachete cu fakeroot, vă  rugăm  să  încercați  să  construiți  mai  întâi
       pachetul  „fakeroot”:  etapa  «debian/rules  build» are câteva teste (testând mai ales pentru erorile din
       vechile versiuni «fakeroot»). Dacă aceste teste eșuează (de exemplu, pentru  că  aveți  anumite  programe
       libc5  pe  sistemul  dumneavoastră),  este  foarte  probabil  ca și alte pachete pe care le construiți cu
       «fakeroot» să eșueze, dar posibil în moduri mult mai subtile.

       De asemenea, rețineți că cel mai bine este să nu construiți fișierele binare sub «fakeroot».  În  special
       lui  «configure»  și  prietenilor  săi  nu le place când sistemul se comportă brusc diferit de ceea ce se
       așteaptă. (sau, aceștia dereglează la întâmplare  unele  variabile  de  mediu,  dintre  care  unele  sunt
       necesare pentru «fakeroot»).

OPȚIUNI

       -l biblioteca, --lib biblioteca
              Specifică o bibliotecă de învăluire alternativă.

       --faked binar
              Specifică un binar alternativ care să fie utilizat ca faked(1).

       [--] comanda
              Orice  comandă  ce care doriți să fie executată sub «fakeroot» (ca root simulat). Folosiți ‘--’(cq
              dacă în comandă aveți alte opțiuni care pot deruta analiza opțiunilor lui «fakeroot».

       -s fișier-de-salvare
              Salvează mediul „fakeroot” în fișierul-de-salvare la ieșire. Acest fișier poate fi utilizat pentru
              a restaura mediul mai târziu, utilizând opțiunea „-i”. Cu toate  acestea,  acest  fișier  va  avea
              pierderi  de  informații  și «fakeroot» se va comporta de-o formă ciudată dacă nu lăsați fișierele
              modificate în interiorul mediului „fakeroot” neatinse  atunci  când  sunteți  în  afara  mediului.
              Totuși,  acest  lucru poate fi util. De exemplu, poate fi utilizat cu rsync(1) pentru a face copii
              de rezervă și a restaura arbori întregi de directoare, cu informații despre  utilizatori,  grupuri
              și  dispozitive,  fără  a fi nevoie să fiți root. Consultați /usr/share/doc/fakeroot/README.saving
              pentru mai multe detalii.

       -i fișier-încărcare
              Încarcă un mediu „fakeroot” salvat anterior folosind opțiunea „-s” din fișier-încărcare.  Rețineți
              că această opțiune nu  salvează  implicit  fișierul,  utilizați  și  opțiunea  „-i”  pentru  acest
              comportament.  Utilizarea aceluiași fișier ca argument atât pentru „-i”, cât și pentru „-s” într-o
              singură invocare fakeroot este sigură.

       -u, --unknown-is-real
              Utilizează proprietatea reală a fișierelor necunoscute anterior de «fakeroot», în loc să  pretindă
              că acestea sunt deținute de root:root.

       -b fd  Specifică  valoarea de bază a descriptorului de fișier (numai în modul TCP). fd este numărul minim
              al descriptorului de fișiere care trebuie utilizat pentru conexiunile TCP; acest  lucru  poate  fi
              important  pentru  a  evita  conflictele  cu  descriptorii de fișiere utilizați de programele care
              rulează sub «fakeroot».

       -h     Afișează mesajul de ajutor.

       -v     Afișează informațiile despre versiune.

EXEMPLE

       Iată un exemplu de sesiune cu fakeroot.  Observați că în interiorul  mediului  de  root  fals  (simulat),
       manipularea de fișiere ce necesită privilegii de root reușește, dar nu se întâmplă cu adevărat.

       $  whoami
       joost
       $ fakeroot /bin/bash
       #  whoami
       root
       # mknod hda3 b 3 1
       # ls -ld hda3
       brw-r--r--   1 root     root       3,   1 iul  2 22:58 hda3
       # chown joost:root hda3
       # ls -ld hda3
       brw-r--r--   1 joost    root       3,   1 iul  2 22:58 hda3
       # ls -ld /
       drwxr-xr-x  20 root     root         1024 iun 17 21:50 /
       # chown joost:users /
       # chmod a+w /
       # ls -ld /
       drwxrwxrwx  20 joost    users        1024 iun 17 21:50 /
       # exit
       $ ls -ld /
       drwxr-xr-x  20 root     root         1024 iun 17 21:50 //
       $ ls -ld hda3
       -rw-r--r--   1 joost    users           0 iul  2 22:58 hda3

       Doar efectele acțiunilor pe care utilizatorul joost le-ar putea face oricum, se întâmplă cu adevărat.

       fakeroot  a  fost  scris  special  pentru a permite utilizatorilor să creeze pachete Debian GNU/Linux (în
       formatul deb(5)) fără a le oferi privilegii de root.  Acest lucru  se  poate  face  prin  comenzi  precum
       dpkg-buildpackage  -rfakeroot sau debuild -rfakeroot (de fapt, „-rfakeroot” este implicit în «debuild» în
       momentul de față, așa că nu mai aveți nevoie de acest argument).

ASPECTE DE SECURITATE

       fakeroot este un program normal, fără bitul  „setuid”  activat.  Acesta  nu  sporește  privilegiile  unui
       utilizator și nici nu reduce securitatea sistemului.

FIȘIERE

       /usr/lib/*/libfakeroot-*.so Biblioteca partajată care conține funcțiile de învăluire (simulare).

VARIABILE DE MEDIU

       FAKEROOTKEY
              Cheia utilizată pentru a comunica cu demonul „fakeroot”. Orice program pornit cu LD_PRELOAD corect
              și  cu FAKEROOTKEY a unui demon în execuție se va conecta automat la acel demon și va avea aceeași
              vedere „falsă” a permisiunilor/proprietăților sistemului de fișiere  (presupunând  că  demonul  și
              programul de conectare au fost pornite de același utilizator).

       LD_LIBRARY_PATH

       LD_PRELOAD
              Fakeroot  este  implementat  prin învăluirea apelurilor de sistem.  Acest lucru se realizează prin
              configurarea  variabilelor   LD_LIBRARY_PATH=/usr/lib/fakeroot   și   LD_PRELOAD=libfakeroot.so.0.
              Această bibliotecă este încărcată înaintea bibliotecii C a sistemului și, prin urmare, majoritatea
              funcțiilor   bibliotecii   sunt   interceptate  de  aceasta.   Dacă  trebuie  să  configurați  fie
              LD_LIBRARY_PATH, fie LD_PRELOAD din interiorul unui mediu „fakeroot”, ar trebui să fie configurate
              relativ la rutele date, ca în LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/foo/bar/.

LIMITĂRI

       Versiunile de bibliotecă
              Fiecare comandă executată în fakeroot trebuie să fie legată la aceeași versiune a bibliotecii C ca
              și fakeroot însăși.

       open()/create()
              fakeroot nu învăluie open(), create(), etc. Astfel, dacă utilizatorul joost face fie

              touch foo
              fakeroot
              ls -al foo

              sau invers,

              fakeroot
              touch foo
              ls -al foo

              «fakeroot» nu are cum să știe că, în primul caz, proprietarul lui foo ar trebui să fie  joost,  în
              timp  ce în al doilea caz ar fi trebuit să fie root.  În cazul pachetului Debian, este întotdeauna
              în regulă să se atribuie în mod implicit tuturor  fișierelor  „necunoscute”  uid=gid=0.  Adevărata
              modalitate  de  a  ocoli acest lucru este de a învălui open() și create(), dar acest lucru creează
              alte probleme, după cum demonstrează pachetul „libtricks”. Acest pachet a învăluit mult mai  multe
              funcții și a încercat să facă mult mai multe decât fakeroot .  S-a dovedit că o actualizare minoră
              a  „libc”  (de  la  una  în  care funcția stat() nu folosea open() la una cu o funcție stat() care
              folosea (în unele cazuri) open()), ar fi cauzat erori de segmentare inexplicabile (adică,  „libc6”
              stat() a apelat open() învăluit, care ar fi apelat apoi „libc6” stat(), etc).  Corectarea lor nu a
              fost  chiar  atât  de  ușoară,  dar odată rezolvate, era doar o chestiune de timp până când o altă
              funcție începea să folosească open(), fără a mai  vorbi  de  încercarea  de  a  transpune  această
              bibliotecă  pe  un alt sistem de operare. Astfel, am decis să păstrez numărul de funcții învăluite
              de «fakeroot» cât mai mic posibil, pentru a limita probabilitatea de ‘ciocniri’.

       GNU configure (și alte programe de acest tip)
              «fakeroot», de fapt, schimbă  modul  în  care  se  comportă  sistemul.  Programele  care  sondează
              sistemul,  cum  ar  fi  GNU  «configure»,  pot fi derutate de acest lucru (sau, dacă nu o fac, pot
              solicita «fakeroot» atât de mult încât «fakeroot» însuși devine confuz). Așadar, este recomandabil
              să nu executați «configure» din „fakeroot”. Deoarece «configure» ar trebui să fie apelat în  ținta
              «debian/rules build», rularea «dpkg-buildpackage -rfakeroot» se ocupă corect de acest lucru.

ERORI

       Acesta  nu  învăluie  open().  Acest  lucru  nu  este  rău în sine, dar dacă un program face open("file",
       O_WRONLY, 000), scrie în fișierul „file”, îl închide și apoi încearcă din nou să deschidă pentru  a  citi
       fișierul,  atunci  deschiderea  eșuează,  deoarece modul fișierului va fi 000. Eroarea este că, dacă root
       face același lucru, open() va reuși, deoarece permisiunile fișierului nu  sunt  verificate  deloc  pentru
       root.  Am  ales  să  nu  învăluim  open(),  deoarece open() este folosit de multe alte funcții din „libc”
       (inclusiv de cele care sunt deja învăluite), creând astfel bucle (sau  posibile  bucle  viitoare,  atunci
       când implementarea diferitelor funcții „libc” se va schimba un pic).

COPIEREA

       fakeroot este distribuit sub Licența Publică Generală GNU.  (GPL 2.0 sau ulterioară).

AUTORI

       joost witteveen
              <joostje@debian.org>

       Clint Adams
              <clint@debian.org>

       Timo Savola

PAGINA DE MANUAL

       în  cea  mai  mare parte scrisă de J.H.M. Dassen <jdassen@debian.org> Destul de multe modificări/adăugiri
       făcute de joost și Clint.

CONSULTAȚI ȘI

       faked(1)  dpkg-buildpackage(1), debuild(1) /usr/share/doc/fakeroot/DEBUG

TRADUCERE

       Această traducere a fost creată în 2023 de Remus-Gabriel Chelu. Ea este supusă licenței GNU GPL versiunea
       2 (sau ulterioară).

       Pentru a citi versiunea originală în limba engleză, tastați «man -L C COMMAND».

       Vă rugăm să raportați erorile de traducere prin baza de date a erorilor (BTS) de la Debian sau  trimițând
       un  e-mail  la  &lt;debian-l10-romanian@lists.debian.org&gt;,  lista  de discuții a traducerilor în limba
       romănă  a  progrmelor  și  documentelor  din  Debian,  sau  direct   autorului   acestei   traduceri   la
       &lt;remusgabriel.chelu@disroot.org&gt;

Proiectul Debian                                5 octombrie 2014                                     fakeroot(1)