เนื่องจากคำตอบนั้นยากที่จะเข้าใจ (กับตัวเอง) และใช้ความคิดที่จะเข้าใจ ( ความคิดเห็นนี้ทำให้ฉันเข้าใจ) ฉันจะอธิบายให้ดีกว่านี้
1. เกิดอะไรขึ้นใน fakeroot
ไม่มีอะไรมากไปกว่าสิ่งที่เกิดขึ้นกับผู้ใช้ของคุณเอง ไม่มีอะไรเพิ่มเติมอีกแล้ว หากคุณfakeroot(ซึ่งเมื่อมีการเรียกจะให้เชลล์ใหม่แก่คุณsudo) แกล้งทำเป็นทำสิ่งที่คุณต้องการการอนุญาตและออกจะไม่มีอะไรเกิดขึ้น
ถ้าคุณคิดเกี่ยวกับมันมันเสียเวลาทั้งหมด ทำไมคุณถึงทำสิ่งที่ไม่เกิดขึ้นจริง? มันบ้า คุณสามารถทำได้โดยไม่ทำอะไรเลยและจะไม่มีความแตกต่างเนื่องจากไม่มีร่องรอยของมัน
รอสักครู่ ...
2. ร่องรอยของ fakeroot
มีอาจfakerootจะมีร่องรอยเหลืออยู่ของ ลองดูคำสั่งในคำตอบของ MortenSickelที่สวยดีและสมควรได้รับการโหวต:
$ fakeroot
# echo "Wow I have root access" > root.tst
# ls -l root.tst
-rw-rw-r-- 1 root root 23 Oct 25 12:13 root.tst
# ls -l /root
ls: cannot open directory /root: Permission denied
# exit
$ ls -l root.tst
-rw-rw-r-- 1 ubuntu ubuntu 23 Oct 25 12:13 root.tst
เมื่อดูอย่างรวดเร็วครั้งแรกดูเหมือนว่าการใช้งานแล้วfakerootเป็นเรื่องเสียเวลาทั้งสิ้น ในท้ายที่สุดถ้าคุณไม่ได้ใช้fakerootคุณก็จะได้สิ่งเดียวกัน
สิ่งที่ลึกซึ้งนี่คือสิ่งนี้:
$ cat root.tst
Wow I have root access
ซึ่งหมายความว่าเนื้อหาของไฟล์ยังจำได้ว่าเป็นรูท คุณอาจพูดว่าไม่ได้ใช้fakerootจะให้ผลลัพธ์เหมือนกัน คุณพูดถูกตัวอย่างนี้ง่ายเกินไป
ลองทำตัวอย่างอื่น:
$ fakeroot
# touch x
# touch y
# chown myuser:myuser x
# ls -l > listing
# exit
$ ls -l
total 4
-rw-rw-r-- 1 myuser myuser 152 Jan 7 21:39 listing
-rw-rw-r-- 1 myuser myuser 0 Jan 7 21:39 x
-rw-rw-r-- 1 myuser myuser 0 Jan 7 21:39 y
$ cat listing
total 0
-rw-rw-r-- 1 root root 0 Jan 7 21:39 listing
-rw-rw-r-- 1 myuser myuser 0 Jan 7 21:39 x
-rw-rw-r-- 1 root root 0 Jan 7 21:39 y
เรามาดูกันว่าเกิดอะไรขึ้น ผมแกล้งทำเป็นrootซึ่งไม่ได้ผลโดยสิ้นเชิงและสร้างและx yผมแกล้งทำเป็นxจะเป็นmyuserและจะเป็นy rootทั้งคู่เป็นของจริงmyuser(อย่างที่เราเห็นในตอนท้าย) แต่ฉันแค่แกล้งทำเป็นว่าเป็นอย่างนั้น
จากนั้นฉันก็สร้างรายชื่อและบันทึกจินตนาการของฉันเป็นไฟล์ ต่อมาเมื่อฉันมองกลับไปที่ไฟล์ฉันสามารถดูได้ว่าฉันคิดว่าใครควรเป็นเจ้าของไฟล์ อีกครั้งพวกเขาไม่ได้เป็นเจ้าของโดยคนที่ฉันจินตนาการฉันเพียงแค่จินตนาการว่า
3. ดังนั้น ... คุณต้องการอะไรอีก
คุณอาจบอกว่าฉันไม่จำเป็นต้องปลอมแปลงรากเพื่อสร้างรายชื่อนั้น ฉันสามารถสร้างรายชื่อขึ้นมาแล้วแก้ไขเพื่อสะท้อนจินตนาการของฉัน คุณพูดถูกคุณไม่ต้องการfakerootสิ่งนั้น ในความเป็นจริงการรู้fakerootว่าไม่ได้ทำอะไรเลยคุณไม่สามารถเพิ่มความสามารถที่คุณไม่เคยมีมาก่อน
แต่และนี่คือสิ่งที่fakerootเกี่ยวกับการแก้ไขรายชื่ออาจไม่สำคัญ เนื่องจากมีแพ็คเกจที่สามารถติดตั้งในระบบของคุณคุณมีรูปแบบtared, gziped, xzed, bzip2ed หรือรูปแบบอื่น ๆ ที่เก็บไฟล์ของคุณไว้ด้วยกันและจดจำสิทธิ์และเจ้าของของพวกเขา คุณสามารถแก้ไขไฟล์บีบอัดและแก้ไขความเป็นเจ้าของไฟล์ได้อย่างง่ายดายหรือไม่? ฉันไม่รู้เกี่ยวกับคุณ แต่ฉันไม่สามารถคิดได้
อาจมีเครื่องมือที่สร้างขึ้นเมื่อทุกอย่างถูกบีบอัดมันจะแก้ไขไฟล์ที่ถูกบีบอัดและแก้ไขการเป็นเจ้าของและการอนุญาตโดยทางโปรแกรมหรือไม่ ใช่สามารถทำได้ ดังนั้นคุณอาจปลอมกรรมสิทธิ์ก่อนที่จะบีบอัดหรือเปลี่ยนหลังจาก คนเดเบียนตัดสินใจว่าอดีตนั้นง่ายกว่า
4. ทำไมไม่เพียงใช้sudo?
ก่อนอื่นคุณไม่จำเป็นต้องใช้สิทธิ์รูทเพื่อสร้างซอฟต์แวร์และคุณไม่จำเป็นต้องใช้สิทธิ์รูทในการบีบอัดไฟล์ ดังนั้นหากคุณไม่ต้องการคุณจะต้องเป็นผู้ใช้ Windows จริง ๆ เพื่อที่จะนึกถึงการได้รับอนุญาต แต่การเสียดสีกันคุณอาจไม่ได้ใช้รหัสผ่านรูท
นอกจากนี้สมมติว่าคุณมีสิทธิ์ใช้งานรูต และสมมติว่าคุณต้องการทำเป็นว่าไฟล์ควรมีสิทธิ์เข้าถึงเพื่ออ่านแบบรูทเท่านั้น ดังนั้นคุณsudoเปลี่ยนเจ้าของไฟล์และการอนุญาตเป็นrootจริงคุณจะออกจากรูทเชลล์และลองทำแพ็กเกจทุกอย่าง คุณล้มเหลวเพราะตอนนี้คุณไม่สามารถอ่านไฟล์ได้อีกต่อไปเนื่องจากคุณไม่มีสิทธิ์เข้าถึงรูต ดังนั้นคุณต้องsudoบีบอัดและสร้างแพ็คเกจเป็นรูท อย่างมีประสิทธิภาพคุณต้องทำทุกอย่างตามรูท
นี้เป็น Bad TM
ในฐานะผู้บรรจุหีบห่อคุณไม่จำเป็นต้องได้รับอนุญาตรูทและคุณไม่ควรได้รับมัน เมื่อคุณติดตั้งแพคเกจคุณอาจต้องติดตั้งไฟล์บางไฟล์ ( A) ในฐานะรูทและคุณต้องได้รับอนุญาตจากรูท ทั้งหมดfakerootนี้คือการทำให้เป็นไปได้ อนุญาตให้รายการผู้Aทำแพ็กเกจเป็นเจ้าของโดย root สำหรับผู้จัดเก็บดังนั้นเมื่อแพ็กเกจถูกคลายบีบอัดโดยผู้ใช้ผู้จัดเก็บต้องการการอนุญาตรูทและสร้างAเป็นเจ้าของโดยรูท
sudoหรือsuเพราะมันเป็นเครื่องของคุณfakerootมีสองการใช้งาน 1) มันโง่โปรแกรมที่เชื่อว่าคุณเป็นผู้ใช้รากซึ่งซอฟต์แวร์กรรมสิทธิ์บางอย่างที่เขียนไม่ดีอาจต้องแม้ว่าไม่จำเป็น (โดยปกตินักพัฒนา Windows ไป Linux) และ 2) มันอนุญาตให้เลียนแบบโหมดไฟล์และการเปลี่ยนแปลงความเป็นเจ้าของ ไม่เช่นนั้นส่วนใหญ่จะสร้างtarไฟล์ที่มีสิทธิ์และความเป็นเจ้าของที่ถูกต้องซึ่งมีประโยชน์เช่นเมื่อบรรจุซอฟต์แวร์