xbps-uchroot

xbps-uchroot adalah utilitas XBPS untuk melakukan chroot dan bind mount menggunakan Linux namespaces. Terutama digunakan oleh xbps-src sebagai backend environment build yang terisolasi.

Fungsi Utama

FungsiPenjelasan
Chroot ke direktori targetBerpindah ke lingkungan root yang terisolasi
Bind mount pseudo-filesystemAuto-mount /dev, /dev/shm, /proc, dan /sys ke dalam chroot
Bind mount direktori kustomPasang direktori dari host ke dalam chroot (opsional)
Isolasi via namespacesPisahkan IPC, PID, dan mount points dari proses pemanggil

Penggunaan

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

Opsi

FlagKeterangan
-b src:destBind mount src ke CHROOTDIR/dest (read-write)
-B src:destBind mount src ke CHROOTDIR/dest (read-only)
-OBuat overlay layer sementara — perubahan tidak disimpan ke CHROOTDIR (butuh overlayfs)
-tMount temporary dir di tmpfs (RAM) — hanya berguna bersama -O
-o optsArgumen tambahan untuk mount tmpfs — hanya bersama -O dan -t

Contoh Penggunaan

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

xbps-uchroot /mnt/void /bin/bash

Bind mount direktori host ke dalam chroot:

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

Overlay sementara — perubahan tidak disimpan ke CHROOTDIR:

xbps-uchroot -O /mnt/void /bin/bash

Aktifkan xbps-uchroot sebagai backend xbps-src:

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

Keamanan dan Izin

PersyaratanPenjelasan
setuid/setgidBinary harus memiliki bit setuid untuk berfungsi
Group khususHanya anggota grup xbuilder yang dapat menjalankannya
Izin filechmod 4750, kepemilikan root:xbuilder

Di T4n OS, konfigurasi ini sudah diatur secara default. Cek dengan:

ls -la /usr/bin/xbps-uchroot
# Output: -rwsr-x--- ... root xbuilder ...

Bit yang digunakan adalah setuid (mode s pada posisi owner), bukan setgid. Ini yang memberikan eskalasi privilege sementara saat dieksekusi.

Prasyarat Kernel

Opsi KernelFungsi
CONFIG_NAMESPACESDukungan namespace secara umum
CONFIG_IPC_NSIsolasi IPC (Inter-Process Communication)
CONFIG_PID_NSIsolasi process ID
CONFIG_UTS_NSIsolasi hostname/domainname
CONFIG_OVERLAY_FSDiperlukan untuk opsi -O (overlay)

Kernel Void Linux default sudah mengaktifkan semua opsi ini.

Perbandingan Backend Chroot di xbps-src

UtilityMekanismeDefaultCatatan
xbps-uunshareUser namespacesYaTidak perlu setuid, lebih aman untuk user biasa
xbps-uchrootNamespaces + setuidTidakPerlu grup xbuilder, performa lebih baik
prootUser-space ptraceTidakTidak perlu hak khusus, tapi lebih lambat

Troubleshooting

Error: clone (Operation not permitted)

Pastikan user berada di grup xbuilder:

groups $USER

Jika tidak ada, tambahkan:

sudo usermod -aG xbuilder $USER

Logout dan login kembali agar perubahan grup berlaku.

Catatan Penting

  • Untuk penggunaan sehari-hari, xbps-uchroot tidak perlu dijalankan langsung — xbps-src yang memanggilnya.
  • xbps-uunshare adalah pilihan default yang lebih aman jika tidak ingin setup grup xbuilder.
  • Opsi -O membutuhkan kernel dengan CONFIG_OVERLAY_FS aktif.

Referensi


@T4n-Labs · @Gh0sT4n