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
| Fungsi | Penjelasan |
|---|---|
| Chroot ke direktori target | Berpindah ke lingkungan root yang terisolasi |
| Mount pseudo-filesystem | Auto-mount /dev, /proc, dan /sys ke dalam chroot |
| Bind mount direktori kustom | Pasang direktori dari host ke dalam chroot via -b |
| Isolasi via user namespaces | Pisahkan IPC, PID, dan mount points tanpa hak istimewa |
Penggunaan
xbps-uunshare [OPSI] CHROOTDIR [CMD] [ARGS]
Opsi
| Flag | Keterangan |
|---|---|
-b src:dest | Bind 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 Kernel | Fungsi |
|---|---|
CONFIG_NAMESPACES | Dukungan namespace secara umum |
CONFIG_IPC_NS | Isolasi IPC (Inter-Process Communication) |
CONFIG_UTS_NS | Isolasi hostname/domainname |
CONFIG_USER_NS | User 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
| Aspek | xbps-uunshare | xbps-uchroot |
|---|---|---|
| Hak akses | Tidak perlu root | Perlu grup xbuilder dan bit setuid |
| Kernel requirement | CONFIG_USER_NS | CONFIG_PID_NS, CONFIG_IPC_NS |
| Default di xbps-src | Ya | Tidak |
Overlay (-O) | Tidak didukung | Didukung (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-uunsharetidak mendukung flag-O(overlay) — untuk itu gunakanxbps-uchroot.- Untuk penggunaan sehari-hari,
xbps-uunsharetidak perlu dijalankan langsung —xbps-srcyang memanggilnya. /dev/shmtidak di-mount otomatis olehxbps-uunshare, berbeda denganxbps-uchroot.
Referensi
man xbps-uunshare- xbps-uunshare(1) — Void Linux manpages