Provided by: fakeroot_1.37.1.2-1_amd64 bug

NUME

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

REZUMAT

       fakeroot [-l|--lib biblioteca] [--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>, cu o mulțime de modificări și
       adăugiri de joost și Clint.

CONSULTAȚI ȘI

       debuild(1), dpkg-buildpackage(1), faked(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                                19 decembrie 2024                                    fakeroot(1)