xbps-uunshare

xbps-uunshare adalah utilitas XBPS untuk melakukan chroot dan bind mount menggunakan Linux user namespaces. Keunggulan utamanya: tidak memerlukan hak akses root. Ini adalah backend default yang digunakan xbps-src untuk environment build yang terisolasi.

Fungsi Utama

FungsiPenjelasan
Chroot ke direktori targetBerpindah ke lingkungan root yang terisolasi
Mount pseudo-filesystemAuto-mount /dev, /proc, dan /sys ke dalam chroot
Bind mount direktori kustomPasang direktori dari host ke dalam chroot via -b
Isolasi via user namespacesPisahkan IPC, PID, dan mount points tanpa hak istimewa

Penggunaan

xbps-uunshare [OPSI] CHROOTDIR [CMD] [ARGS]

Opsi

FlagKeterangan
-b src:destBind mount src dari host ke CHROOTDIR/dest. Keduanya harus path absolut dan sudah ada
--Hentikan interpretasi argumen berikutnya sebagai opsi — berguna jika CMD punya opsinya sendiri

Contoh Penggunaan

Chroot sederhana dengan auto-mount /proc, /sys, /dev:

xbps-uunshare /mnt/void /bin/bash

Bind mount direktori host ke dalam chroot:

xbps-uunshare -b /home/user:/home/user /mnt/void /bin/bash

Jalankan command tertentu di dalam chroot:

xbps-uunshare /mnt/void /usr/bin/ls -la

Ganti backend chroot di xbps-src ke xbps-uchroot:

cd void-packages
echo XBPS_CHROOT_CMD=uchroot >> etc/conf

Prasyarat Kernel

Opsi KernelFungsi
CONFIG_NAMESPACESDukungan namespace secara umum
CONFIG_IPC_NSIsolasi IPC (Inter-Process Communication)
CONFIG_UTS_NSIsolasi hostname/domainname
CONFIG_USER_NSUser namespaces — kunci agar tidak perlu root

Kernel Void Linux default sudah mengaktifkan semua opsi ini. Jika tidak tersedia, xbps-uunshare gagal dengan error EINVAL.

Perbandingan dengan xbps-uchroot

Aspekxbps-uunsharexbps-uchroot
Hak aksesTidak perlu rootPerlu grup xbuilder dan bit setuid
Kernel requirementCONFIG_USER_NSCONFIG_PID_NS, CONFIG_IPC_NS
Default di xbps-srcYaTidak
Overlay (-O)Tidak didukungDidukung (butuh CONFIG_OVERLAY_FS)

Troubleshooting

Error: Invalid argument (EINVAL)

Kernel mungkin tidak mendukung user namespaces, atau fiturnya dinonaktifkan:

cat /proc/sys/kernel/unprivileged_userns_clone

Jika hasilnya 0, aktifkan dengan:

echo 1 | sudo tee /proc/sys/kernel/unprivileged_userns_clone

Atau beralih ke xbps-uchroot sebagai alternatif.

Catatan Penting

  • xbps-uunshare tidak mendukung flag -O (overlay) — untuk itu gunakan xbps-uchroot.
  • Untuk penggunaan sehari-hari, xbps-uunshare tidak perlu dijalankan langsung — xbps-src yang memanggilnya.
  • /dev/shm tidak di-mount otomatis oleh xbps-uunshare, berbeda dengan xbps-uchroot.

Referensi


@T4n-Labs · @Gh0sT4n