fakeroot
fakerootยูทิลิตี้หรือยูทิลิตี้รุ่นใหม่fakeroot-ng (วัตถุประสงค์เดียวกัน, เทคนิคการใช้งานที่แตกต่างกัน) วิ่งโปรแกรมและอ้างว่าโปรแกรมที่มีการทำงานเป็นรากและระบบที่เรียกเช่นchown
ประสบความสำเร็จ เฉพาะโปรแกรมที่เชื่อว่าการโทรเหล่านี้ประสบความสำเร็จไม่มีสิ่งใดสะท้อนให้เห็นในระบบไฟล์จริง ๆ (ไม่สามารถทำได้เนื่องจากfakeroot
ไม่มีสิทธิพิเศษเพิ่มเติม) อย่างไรก็ตามหากโปรแกรมเปลี่ยนการเป็นเจ้าของไฟล์แล้วดำเนินการบางอย่างตามการเป็นเจ้าของไฟล์นั้นสิ่งนี้สามารถเปลี่ยนพฤติกรรมของโปรแกรมได้
วิธีทั่วไปในการทำให้ผลงานที่มีประโยชน์จาก fakeroot โดยใช้สภาพแวดล้อม fakeroot ที่มีสิ่งต่อไปนี้เกิดขึ้น:
- สร้างไฟล์บางไฟล์ย้ายไปมาเปลี่ยนความเป็นเจ้าของและโหมด ฯลฯ
- สร้างการเก็บถาวรของไฟล์เหล่านี้
ตัวอย่าง:
fakeroot sh -c '
chown root:root usr/bin/foo
tar cf foo.tar usr
'
คุณต้องใช้การร้องขอเพียงครั้งเดียวfakeroot
เนื่องจากไม่มีหน่วยความจำระหว่างการเรียกใช้
Linux เนมสเปซ
เพื่อความสมบูรณ์ฉันจะพูดถึงว่าหากคุณมีเคอร์เนล≥3.8แล้วเนมสเปซเป็นอีกวิธีหนึ่งในการสร้างสภาพแวดล้อมแบบแกล้งทำเป็นรูท การสนับสนุน userland ยังไม่ค่อยมีดังนั้นฉันจะไม่ไปลงรายละเอียดเพิ่มเติม
เมานต์ไฟล์เก็บถาวร
วิธีอื่นในการแก้ปัญหาของคุณคือการกำหนดให้เก็บถาวรเป็นไดเรกทอรี คุณสามารถใช้archivemountซึ่งมีความสามารถในการปรับเปลี่ยนรูปแบบการเก็บหลายทางlibarchiveรวมทั้ง tar บีบอัด
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/
ให้ฉันข้อผิดพลาดtar: You must specify one of the
-Acdtrux 'หรือ--test-label' options Try
tar --help' หรือtar --usage' for more information.