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)