UNSHARE(1)                    Comenzi utilizator                    UNSHARE(1)

NUME
       unshare - ruleaza programul in spa<?>ii de nume noi

REZUMAT
       unshare [op<?>iuni] [program [argumente]]

DESCRIERE
       Comanda unshare creeaza noi spa<?>ii de nume (a<?>a cum se specifica in
       op<?>iunile liniei de comanda descrise mai jos) <?>i apoi executa
       programul specificat. Daca nu se indica programul, atunci se executa
       "${SHELL}" (implicit: /bin/sh).

       In mod implicit, un nou spa<?>iu de nume persista doar atat timp cat
       are procese membre. Un nou spa<?>iu de nume poate fi facut persistent
       chiar <?>i atunci cand nu are procese membre prin montarea ,,bind" a
       fi<?>ierelor /proc/pid/ns/tip la o ruta din sistemul de fi<?>iere. Un
       spa<?>iu de nume care a fost facut persistent in acest mod poate fi
       introdus ulterior cu nsenter(1) chiar <?>i dupa ce programul se termina
       (cu excep<?>ia spa<?>iilor de nume PID, unde este necesar un proces de
       init care ruleaza permanent). Odata ce un spa<?>iu de nume persistent
       nu mai este necesar, acesta poate fi scos din persisten<?>a prin
       utilizarea umount(8) pentru a elimina montarea ,,bind". Pentru mai
       multe detalii, consulta<?>i sec<?>iunea EXEMPLE.

       Deoarece unshare, util-linux versiunea 2.36 utilizeaza fi<?>ierele
       /proc/[pid]/spa<?>iu-nume/pid_pt_proces-copil <?>i
       /proc/[pid]/spa<?>iu-nume/timp_pt_proces-copil pentru spa<?>iile de
       nume persistente PID <?>i TIME. Aceasta modificare necesita nucleul
       Linux 4.17 sau o versiune mai noua.

       Urmatoarele tipuri de spa<?>ii de nume pot fi create cu unshare:

       mount namespace
           Montarea <?>i demontarea sistemelor de fi<?>iere nu va afecta
           restul sistemului, cu excep<?>ia sistemelor de fi<?>iere care sunt
           marcate in mod explicit ca fiind partajate (cu mount --make-shared;
           consulta<?>i /proc/self/mountinfo sau findmnt -o+PROPAGATION pentru
           indicatoarele shared). Pentru mai multe detalii, consulta<?>i
           mount_namespaces(7).

           unshare, incepand cu util-linux versiunea 2.27, stabile<?>te
           automat propagarea la private intr-un nou spa<?>iu de nume de
           montare pentru a se asigura ca noul spa<?>iu de nume este
           intr-adevar nepartajat. Este posibil sa dezactiva<?>i aceasta
           caracteristica cu op<?>iunea --propagation unchanged. Re<?>ine<?>i
           ca private este valoarea implicita a nucleului.

       UTS namespace
           Stabilirea numelui de gazda sau a numelui de domeniu nu va afecta
           restul sistemului. Pentru mai multe detalii, consulta<?>i
           uts_namespaces(7).

       IPC namespace
           Procesul va avea un spa<?>iu de nume independent pentru cozile de
           mesaje POSIX, precum <?>i pentru cozile de mesaje System V,
           seturile de semafoare <?>i segmentele de memorie partajata. Pentru
           mai multe detalii, consulta<?>i ipc_namespaces(7).

       network namespace
           Procesul va avea stive IPv4 <?>i IPv6 independente, tabele de
           direc<?>ionare IP, reguli de paravan de protec<?>ie, arborii de
           directoare /proc/net <?>i /sys/class/net, socluri etc. Pentru mai
           multe detalii, consulta<?>i network_namespaces(7).

       PID namespace
           Procesele-copii vor avea un set de coresponden<?>e PID-proces
           distincte de cele ale parintelui lor. Pentru mai multe detalii, a
           se vedea pid_namespaces(7).

       cgroup namespace
           Procesul va avea o vizualizare virtualizata a /proc/self/cgroup,
           iar noile montari cgroup vor fi inradacinate la radacina
           spa<?>iului de nume cgroup. Pentru mai multe detalii, consulta<?>i
           cgroup_namespaces(7).

       user namespace
           Procesul va avea un set distinct de UID-uri, GID-uri <?>i
           capacita<?>i. Pentru mai multe detalii, a se vedea
           user_namespaces(7).

       time namespace
           Procesul poate avea o viziune distincta asupra CLOCK_MONOTONIC
           <?>i/sau CLOCK_BOOTTIME, care poate fi modificata cu ajutorul
           /proc/self/timens_offsets. Pentru mai multe detalii, a se vedea
           time_namespaces(7).

OP<?>IUNI
       -i, --ipc[=fi<?>ier]
           Creeaza un nou spa<?>iu de nume IPC. Daca se specifica fi<?>ierul,
           atunci spa<?>iul de nume devine persistent prin crearea unei
           montari de legatura la fi<?>ierul.

       -m, --mount[=fil<?>ier]
           Creeaza un nou spa<?>iu de nume de montare. Daca se specifica
           fi<?>ier, spa<?>iul de nume devine persistent prin crearea unei
           montari de legatura la fi<?>ier. Re<?>ine<?>i ca fi<?>ier trebuie
           sa fie localizat pe o montare al carei tip de propagare nu este
           shared (in caz contrar, se produce o eroare). Utiliza<?>i comanda
           findmnt -o+PROPAGATION atunci cand nu sunte<?>i sigur de
           configura<?>ia curenta. Consulta<?>i <?>i exemplele de mai jos.

       -n, --net[=fi<?>ier]
           Creeaza un nou spa<?>iu de nume de re<?>ea. Daca se specifica
           fi<?>ierul, atunci spa<?>iul de nume devine persistent prin crearea
           unei montari de legatura la fi<?>ierul.

       -p, --pid[=fi<?>ier]
           Creeaza un nou spa<?>iu de nume PID. Daca se specifica fi<?>ierul,
           atunci spa<?>iul de nume devine persistent prin crearea unei
           montari de legatura la fi<?>ierul. (Crearea unui spa<?>iu de nume
           PID persistent va e<?>ua daca nu este specificata <?>i op<?>iunea
           --fork).

           A se vedea, de asemenea, op<?>iunile --fork <?>i --mount-proc.

       -u, --uts[=fi<?>ier]
           Creeaza un nou spa<?>iu de nume UTS. Daca se specifica fi<?>ierul,
           atunci spa<?>iul de nume devine persistent prin crearea unei
           montari de legatura la fi<?>ierul.

       -U, --user[=fi<?>ier]
           Creeaza un nou spa<?>iu de nume de utilizator. Daca se specifica
           fi<?>ierul, atunci spa<?>iul de nume devine persistent prin crearea
           unei montari de legatura la fi<?>ierul.

       -C, --cgroup[=fi<?>ier]
           Creeaza un nou spa<?>iu de nume cgroup. Daca se specifica
           fi<?>ierul, atunci spa<?>iul de nume devine persistent prin crearea
           unei montari de legatura la fi<?>ierul.

       -T, --time[=fi<?>ier]
           Creeaza un nou spa<?>iu de nume de timp. Daca este specificat
           fi<?>ier, spa<?>iul de nume este facut persistent prin crearea unei
           montari de legatura la fi<?>ier. Op<?>iunile --monotonic <?>i
           --boottime pot fi utilizate pentru a specifica pozi<?>ia
           corespunzatoare in spa<?>iul de nume de timp.

       -f, --fork
           Bifurca programul specificat ca un proces-copil al unshare, in loc
           sa il ruleze direct. Acest lucru este util atunci cand se creeaza
           un nou spa<?>iu de nume PID. Re<?>ine<?>i ca, atunci cand unshare
           a<?>teapta procesul-copil, ignora SIGINT <?>i SIGTERM <?>i nu
           transmite niciun semnal catre procesul-copil. Este necesar sa se
           trimita semnale catre procesul-copil.

       --keep-caps
           In cazul in care se ofera op<?>iunea --user, se asigura ca
           capacita<?>ile acordate in spa<?>iul de nume al utilizatorului sunt
           pastrate in procesul-copil.

       --kill-child[=nume-semnal]
           Cand unshare se termina, se trimite nume-semnal la procesul-copil
           bifurcat. In combina<?>ie cu --pid, acest lucru permite o eliminare
           u<?>oara <?>i fiabila a intregului arbore de procese de sub
           unshare. Daca nu este specificat, nume-semnal va fi SIGKILL.
           Aceasta op<?>iune implica --fork.

       --mount-proc[=punct-montare]
           Chiar inainte de a rula programul, monteaza sistemul de fi<?>iere
           proc la punct-montare (valoarea implicita este /proc). Acest lucru
           este util atunci cand se creeaza un nou spa<?>iu de nume PID. De
           asemenea, implica crearea unui nou spa<?>iu de nume de montare,
           deoarece, in caz contrar, montarea /proc ar incurca programele
           existente pe sistem. Noul sistem de fi<?>iere proc este montat in
           mod explicit ca fiind privat (cu MS_PRIVATE|MS_REC).

       --mount-binfmt[=punct-montare]
           Chiar inainte de a rula programul, monteaza sistemul de fi<?>iere
           proc la punct-montare (valoarea implicita este
           /proc/sys/fs/binfmt_misc). Aceasta implica, de asemenea, crearea
           unui nou spa<?>iu de nume de montare, deoarece montarea binfmt_misc
           ar afecta programele existente pe sistem. Noul sistem de fi<?>iere
           binfmt_misc este montat explicit ca privat (cu MS_PRIVATE|MS_REC).

       --map-user uid||nume
           Ruleaza programul numai dupa ce ID-ul de utilizator efectiv curent
           a fost asociat cu uid. Daca aceasta op<?>iune este specificata de
           mai multe ori, ultima apari<?>ie are prioritate. Aceasta op<?>iune
           implica --user.

       --map-usersuid-interior:uid-exterior:cantitate|auto|subids|all
           Ruleaza programul numai dupa ce blocul de ID-uri de utilizator cu
           dimensiunea cantitate care incepe la uid-exterior a fost
           cartografiat in blocul de ID-uri de utilizator care incepe la
           uid-interior. Aceasta cartografiere este creata cu newuidmap(1)
           daca unshare a fost rulat fara privilegii.. In cazul in care
           intervalul de ID-uri de utilizator se suprapune cu cartografierea
           specificata de --map-user, atunci o ,,gaura" va fi eliminata din
           cartografiere. Acest lucru poate avea ca rezultat faptul ca cel mai
           mare ID de utilizator din cartografiere nu este cartografiat.
           Utiliza<?>i --map-users de mai multe ori pentru a cartografia mai
           mult de un bloc de ID-uri de utilizator. Valoarea speciala auto va
           cartografia primul bloc de ID-uri de utilizator de<?>inut de
           utilizatorul efectiv din /etc/subuid intr-un bloc care incepe cu
           ID-ul de utilizator 0. Valoarea speciala subids va cartografia
           identitatea aceluia<?>i bloc. Valoarea speciala all va crea o harta
           pasata catre comanda pentru fiecare ID de utilizator disponibil in
           spa<?>iul de nume parinte. Aceasta op<?>iune implica --user.

           Inainte de util-linux versiunea 2.39, aceasta op<?>iune a<?>tepta
           un argument separat prin virgule de forma
           uid-exterior,uid-interior,cantitate, dar acest format este acum
           depreciat pentru coeren<?>a cu ordinea folosita in
           /proc/[pid]/uid_map <?>i op<?>iunea de montare X-mount.idmap.

       --map-group gid|nume
           Ruleaza programul numai dupa ce ID-ul de grup efectiv curent a fost
           asociat cu gid. Daca aceasta op<?>iune este specificata de mai
           multe ori, ultima apari<?>ie are prioritate. Aceasta op<?>iune
           implica --setgroups=deny <?>i --user.

       --map-groups gid-interior:gid:exterior:cantitate|auto|subids|all
           Ruleaza programul numai dupa ce blocul de ID-uri de grup cu
           dimensiunea cantitate care incepe la gid-exterior a fost
           cartografiat in blocul de ID-uri de grup care incepe la
           gid-interior. Aceasta cartografiere este creata cu newgidmap(1)
           daca unshare a fost rulat fara privilegii. In cazul in care
           intervalul de ID-uri de grup se suprapune cu cartografierea
           specificata de --map-group, atunci o ,,gaura" va fi eliminata din
           cartografiere. Acest lucru poate avea ca rezultat faptul ca cel mai
           mare ID de grup din cartografiere nu este cartografiat. Utiliza<?>i
           --map-groups de mai multe ori pentru a cartografia mai mult de un
           bloc de ID-uri de grup. Valoarea speciala auto va cartografia
           primul bloc de ID-uri de utilizator de<?>inut de utilizatorul
           efectiv din /etc/subgid intr-un bloc care incepe cu ID-ul de grup
           0. Valoarea speciala subids va cartografia identitatea aceluia<?>i
           bloc. Valoarea speciala all va crea o harta pasata catre comanda
           pentru fiecare ID de grup disponibil in spa<?>iul de nume parinte.
           Aceasta op<?>iune implica --user.

           Inainte de util-linux versiunea 2.39, aceasta op<?>iune a<?>tepta
           un argument separat prin virgule de forma
           gid-exterior,gid-interior,cantitate, dar acest format este acum
           depreciat pentru coeren<?>a cu ordinea folosita in
           /proc/[pid]/gid_map <?>i op<?>iunea de montare X-mount.idmap.

       --map-auto
           Cartografiaza (asociaza) primul bloc de ID-uri de utilizator
           de<?>inut de utilizatorul efectiv din /etc/subuid intr-un bloc care
           incepe cu ID-ul de utilizator 0. In acela<?>i mod, se
           cartografiaza, de asemenea, primul bloc de ID-uri de grup
           de<?>inute de grupul efectiv din /etc/subgid intr-un bloc care
           incepe cu ID-ul de grup 0. Aceasta op<?>iune este menita sa
           gestioneze cazul obi<?>nuit in care primul bloc de ID-uri de
           utilizator <?>i de grup subordonate poate cartografia intregul
           spa<?>iu de ID-uri de utilizator <?>i de grup. Aceasta op<?>iune
           este echivalenta cu specificarea --map-users=auto <?>i
           --map-groups=auto.

       --map-subids
           Identifica cartografia primului bloc de ID-uri de utilizator
           de<?>inute de utilizatorul efectiv din /etc/subuid. In acela<?>i
           mod, identifica de asemenea cartografia primului bloc de ID-uri de
           grup de<?>inute de grupul efectiv din /etc/subgid. Aceasta
           op<?>iune este echivalenta cu specificarea --map-users=subids <?>i
           --map-groups=subids.

       -r, --map-root-user
           Ruleaza programul numai dupa ce ID-urile de utilizator <?>i de grup
           efective actuale au fost puse in coresponden<?>a cu UID <?>i GID de
           superutilizator in spa<?>iul de nume de utilizator nou creat. Acest
           lucru face posibila ob<?>inerea in mod convenabil a capacita<?>ilor
           necesare pentru a gestiona diverse aspecte ale spa<?>iilor de nume
           nou create (cum ar fi configurarea interfe<?>elor in spa<?>iul de
           nume de re<?>ea sau montarea sistemelor de fi<?>iere in spa<?>iul
           de nume de montare), chiar <?>i atunci cand se executa fara
           privilegii. Fiind o simpla caracteristica de comoditate, nu accepta
           cazuri de utilizare mai sofisticate, cum ar fi cartografierea
           (asocierea) mai multor intervale de UID <?>i GID. Aceasta op<?>iune
           implica --setgroups=deny <?>i --user. Aceasta op<?>iune este
           echivalenta cu --map-user=0 --map-group=0.

       -c, --map-current-user
           Ruleaza programul numai dupa ce ID-urile de utilizator <?>i de grup
           efective actuale au fost asociate cu acelea<?>i UID <?>i GID in
           spa<?>iul de nume de utilizator nou creat. Aceasta op<?>iune
           implica --setgroups=deny <?>i --user. Aceasta op<?>iune este
           echivalenta cu --map-user=$(id -ru) --map-group=$(id -rg).

       --propagation private|shared|slave|unchanged
           Activeaza in mod recurent fanionul de propagare a montarii in noul
           spa<?>iu de nume de montare. In mod implicit, propagarea este
           stabilita la private. Este posibil sa se dezactiveze aceasta
           caracteristica cu ajutorul argumentului unchanged. Op<?>iunea este
           ignorata in mod silen<?>ios atunci cand spa<?>iul de nume de
           montare (--mount) nu este solicitat.

       --setgroups allow|deny
           Permite sau refuza apelul de sistem setgroups(2) intr-un spa<?>iu
           de nume de utilizator.

           Pentru a putea apela setgroups(2), procesul care face apelul
           trebuie sa aiba cel pu<?>in CAP_SETGID. Dar, incepand cu Linux
           3.19, se aplica o restric<?>ie suplimentara: nucleul ofera
           permisiunea de a apela setgroups(2) numai dupa ce harta GID
           (/proc/pid*/gid_map*) a fost stabilita. Harta GID poate fi scrisa
           de root atunci cand setgroups(2) este activata (adica allow,
           valoarea implicita), iar harta GID devine inscriptibila de catre
           procesele neprivilegiate atunci cand setgroups(2) este dezactivata
           permanent (cu deny).

       -R, --root dir
           ruleaza comanda cu directorul radacina stabilit la dir.

       -w, --wd dir
           schimba directorul de lucru in dir.

       -S, --setuid uid
           Stabile<?>te ID-ul utilizatorului care va fi utilizat in spa<?>iul
           de nume introdus.

       -G, --setgid gid
           Stabile<?>te ID-ul grupului care va fi utilizat in spa<?>iul de
           nume introdus <?>i renun<?>a la grupurile suplimentare.

       -l, --load-interp configurarea
           Incarca defini<?>ia binfmt_misc in spa<?>iul de nume (implica
           --mount-binfmt). Argumentul configurarea este
           :name:type:offset:magic:mask:interpreter:flags. Pentru mai multe
           detalii despre inregistrarea noilor tipuri binare, consulta<?>i
           <https://www.kernel.org/doc/Documentation/admin-guide/binfmt-misc.rst>.
           Pentru a gestiona fanionul F din flags cu parametrul --root,
           binfmt_misc este montat de doua ori, o data inainte de chroot
           pentru a incarca interpretul din sistemul de fi<?>iere al
           apelantului <?>i o data dupa pentru a-l face disponibil din
           spa<?>iul utilizator al chrootului.

       --monotonic decalaj
           Stabile<?>te decalajul CLOCK_MONOTONIC care va fi utilizat in
           spa<?>iul de nume al timpului introdus. Aceasta op<?>iune necesita
           ne-partajarea unui spa<?>iu de nume de timp cu --time.

       --boottime decalaj
           Stabile<?>te decalajul CLOCK_BOOTTIME care va fi utilizat in
           spa<?>iul de nume al timpului introdus. Aceasta op<?>iune necesita
           ne-partajarea unui spa<?>iu de nume de timp cu --time.

       -h, --help
           Afi<?>eaza acest mesaj de ajutor <?>i iese.

       -V, --version
           Afi<?>eaza versiunea <?>i iese.

NOTE
       Sistemele de fi<?>iere proc <?>i sysfs care se monteaza ca root intr-un
       spa<?>iu de nume de utilizator trebuie sa fie restric<?>ionate astfel
       incat un utilizator mai pu<?>in privilegiat sa nu poata avea acces la
       fi<?>iere sensibile pe care un utilizator mai privilegiat nu le-a facut
       disponibile. Pe scurt, regula pentru proc <?>i sysfs este sa fie cat
       mai aproape de o montare ,,bind".

EXEMPLE
       Urmatoarea comanda creeaza un spa<?>iu de nume PID, folosind --fork
       pentru a se asigura ca execu<?>ia comenzii este realizata intr-un
       proces-copil care (fiind primul proces din spa<?>iul de nume) are PID
       1. Op<?>iunea --mount-proc asigura crearea simultana a unui nou
       spa<?>iu de nume de montare <?>i montarea unui nou sistem de fi<?>iere
       proc(5) care con<?>ine informa<?>ii corespunzatoare noului spa<?>iu de
       nume PID. Cand comanda readlink(1) se termina, noile spa<?>ii de nume
       sunt automat demontate.

           # unshare --fork --pid --mount-proc readlink /proc/self
           1

       In calitate de utilizator neprivilegiat, crea<?>i un nou spa<?>iu de
       nume de utilizator in care acreditarile utilizatorului sunt puse in
       coresponden<?>a cu ID-urile radacina din interiorul spa<?>iului de
       nume:

           $ id -u; id -g
           1000
           1000
           $ unshare --user --map-root-user \
                   sh -c 'whoami; cat /proc/self/uid_map /proc/self/gid_map'
           root
                    0       1000          1
                    0       1000          1

       In calitate de utilizator neprivilegiat, crea<?>i un spa<?>iu de nume
       de utilizator in care primele 65536 ID-uri sunt toate alocate, iar
       acreditarile utilizatorului sunt alocate ID-urilor radacina din
       interiorul spa<?>iului de nume. Coresponden<?>a este determinata de
       ID-urile subordonate atribuite in subuid(5) <?>i subgid(5).
       Demonstra<?>i aceasta coresponden<?>a prin crearea unui fi<?>ier cu
       ID-ul de utilizator 1 <?>i ID-ul de grup 1. Din motive de concizie,
       sunt prezentate doar coresponden<?>ele ID-ului utilizatorului:

           $ id -u
           1000
           $ cat /etc/subuid
           1000:100000:65536
           $ unshare --user --map-auto --map-root-user
           # id -u
           0
           # cat /proc/self/uid_map
                    0       1000          1
                    1     100000      65535
           # touch file; chown 1:1 file
           # ls -ln --time-style=+ file
           -rw-r--r-- 1 1 1 0  file
           # exit
           $ ls -ln --time-style=+ file
           -rw-r--r-- 1 100000 100000 0  file

       Prima dintre urmatoarele comenzi creeaza un nou spa<?>iu de nume UTS
       persistent <?>i modifica numele de gazda a<?>a cum este vazut in acel
       spa<?>iu de nume. Apoi se intra in spa<?>iul de nume cu nsenter(1)
       pentru a afi<?>a numele de gazda modificat; acest pas demonstreaza ca
       spa<?>iul de nume UTS continua sa existe chiar daca spa<?>iul de nume
       nu mai are procese membre dupa terminarea comenzii unshare. Spa<?>iul
       de nume este apoi distrus prin eliminarea montarii ,,bind".

           # touch /root/uts-ns
           # unshare --uts=/root/uts-ns hostname FOO
           # nsenter --uts=/root/uts-ns hostname
           FOO
           # umount /root/uts-ns

       Urmatoarele comenzi stabilesc un spa<?>iu de nume de montare
       persistenta la care se face referire prin montarea ,,bind"
       /root/namespaces/mnt. Pentru a se asigura de succesul crearii acestei
       montari ,,bind", directorul parinte (/root/namespaces) este transformat
       intr-o montare ,,bind" al carei tip de propagare nu este shared.

           # mount --bind /root/namespaces /root/namespaces
           # mount --make-private /root/namespaces
           # touch /root/namespaces/mnt
           # unshare --mount=/root/namespaces/mnt

       Urmatoarele comenzi demonstreaza utilizarea op<?>iunii --kill-child
       atunci cand se creeaza un spa<?>iu de nume PID, pentru a se asigura ca
       atunci cand unshare este omorat, toate procesele din cadrul spa<?>iului
       de nume PID sunt omorate.

           # set +m                # Nu afi<?>eaza mesajele de stare a lucrarii

           # unshare --pid --fork --mount-proc --kill-child -- \
                  bash --norc -c '(sleep 555 &) && (ps a &) && sleep 999' &
           [1] 53456
           #     PID TTY      STAT   TIME COMMAND
                 1 pts/3    S+     0:00 sleep 999
                 3 pts/3    S+     0:00 sleep 555
                 5 pts/3    R+     0:00 ps a

           # ps h -o 'comm' $!     # Afi<?>eaza ca munca de fond este nepartajata unshare(1)
           unshare
           # kill $!               # Omoara unshare(1)
           # pidof sleep

       Comanda pidof(1) nu afi<?>eaza niciun rezultat, deoarece procesele
       sleep au fost omorate. Mai exact, atunci cand procesul sleep care are
       PID 1 in spa<?>iul de nume (adica procesul de init al spa<?>iului de
       nume) a fost omorat, aceasta ac<?>iune a dus la omorarea tuturor
       celorlalte procese din spa<?>iul de nume. In schimb, o serie similara
       de comenzi in care nu se utilizeaza op<?>iunea --kill-child arata ca,
       atunci cand unshare se termina, procesele din spa<?>iul de nume cu PID
       nu sunt omorate:

           # unshare --pid --fork --mount-proc -- \
                  bash --norc -c '(sleep 555 &) && (ps a &) && sleep 999' &
           [1] 53479
           #     PID TTY      STAT   TIME COMMAND
                 1 pts/3    S+     0:00 sleep 999
                 3 pts/3    S+     0:00 sleep 555
                 5 pts/3    R+     0:00 ps a

           # kill $!
           # pidof sleep
           53482 53480

       Urmatorul exemplu demonstreaza crearea unui spa<?>iu de nume de timp in
       care ceasul boottime (ora de pornire) este fixat la un punct din
       trecut, cu ca<?>iva ani in urma:

           # uptime -p             # Afi<?>eaza timpul de func<?>ionare in spa<?>iul de nume al timpului ini<?>ial
           up 21 hours, 30 minutes
           # unshare --time --fork --boottime 300000000 uptime -p
           up 9 years, 28 weeks, 1 day, 2 hours, 50 minutes

       Urmatorul exemplu executa un chroot in directorul
       /chroot/powerpc/jessie <?>i instaleaza interpretul /bin/qemu-ppc-static
       pentru a executa binarele powerpc.

           $  unshare --map-root-user --fork --pid --load-interp=":qemu-ppc:M::\\x7fELF\x01\\x02\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x14:\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xfe\\xff\\xff:/bin/qemu-ppc-static:OCF" --root=/chroot/powerpc/jessie /bin/bash -l

       Parametrul load-interp poate fi citit dupa cum urmeaza

           qemu-ppc
               este numele noului fi<?>ier creat sub /proc/sys/fs/binfmt_misc
               pentru a inregistra interpretul

           M
               define<?>te interpretul pentru un anumit tip de numar magic

           \\x7fELF\x01\\x02\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x1
               este numarul magic pentru recunoa<?>terea fi<?>ierului de
               interpretat (in acest caz, antetul ELF pentru PPC32)

           \\xff\\xff\\xff\\xff\\xff\\xff\\xff\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xfe\\xff\\xff
               masca care se aplica numarului magic

           /bin/qemu-ppc-static
               interpretul care urmeaza sa fie utilizat cu fi<?>ierul

           OCF
               fi<?>ierul este deschis de nucleu cu acreditarile <?>i
               jetoanele de securitate ale fi<?>ierului insu<?>i <?>i este
               incarcat imediat ce il inregistram.

AUTORI
       Mikhail Gusarov <dottedmag@dottedmag.net>, Karel Zak <kzak@redhat.com>

CONSULTA<?>I <?>I
       newuidmap(1), newgidmap(1), clone(2), unshare(2), namespaces(7),
       mount(8)

RAPORTAREA ERORILOR
       Pentru rapoarte de eroare, folosi<?>i sistemul de urmarire al erorilor
       <https://github.com/util-linux/util-linux/issues>.

DISPONIBILITATE
       Comanda unshare face parte din pachetul util-linux care poate fi
       descarcat de la Linux Kernel Archive
       <https://www.kernel.org/pub/linux/utils/util-linux/>.

util-linux 2.41                   2025-03-29                        UNSHARE(1)