Fakeroot
The fakeroot utilitas, atau yang lebih baru utilitas fakeroot-ng (tujuan yang sama, teknik implementasi yang berbeda) menjalankan program dan berpura-pura program yang sedang berjalan sebagai root dan sistem yang memanggil seperti chown
berhasil. Hanya program yang percaya bahwa panggilan ini berhasil, tidak ada yang benar-benar tercermin dalam sistem file (tidak mungkin karena fakeroot
tidak memiliki hak istimewa tambahan). Namun, jika program mengubah kepemilikan file dan kemudian mengambil tindakan berdasarkan kepemilikan file itu, ini dapat mengubah perilaku program.
Cara tipikal untuk mendapatkan pekerjaan yang bermanfaat dari fakeroot dengan menjalankan lingkungan fakeroot di mana hal berikut terjadi:
- Buat beberapa file, pindahkan, ubah kepemilikan dan modenya, dll.
- Buat arsip dari file-file ini.
Contoh:
fakeroot sh -c '
chown root:root usr/bin/foo
tar cf foo.tar usr
'
Anda perlu menggunakan satu pemanggilan fakeroot
, karena tidak ada memori di antara pemanggilan.
Ruang nama Linux
Hanya untuk kelengkapan, saya akan menyebutkan bahwa jika Anda memiliki kernel Linux ≥3.8, maka namespace adalah cara lain untuk menciptakan lingkungan pretend-root. Dukungan userland belum cukup jadi saya tidak akan membahas lebih detail.
Pasang arsip
Cara berbeda untuk menyelesaikan masalah Anda adalah dengan memasang arsip sebagai direktori. Anda dapat menggunakan archivemount , yang mampu memodifikasi beberapa format arsip melalui libarchive , termasuk tar terkompresi.
mkdir mnt
archivemount foo.tar.xz mnt
chown root:root mnt/usr/bin/foo
fusermount -u mnt
tar --owner=root --group=root cfpJ files.tar.xz files/
beri saya kesalahantar: You must specify one of the
-Acdtrux 'atau--test-label' options Try
tar --help' atautar --usage' for more information.