เนื่องจากคำตอบนั้นยากที่จะเข้าใจ (กับตัวเอง) และใช้ความคิดที่จะเข้าใจ ( ความคิดเห็นนี้ทำให้ฉันเข้าใจ) ฉันจะอธิบายให้ดีกว่านี้
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
เกี่ยวกับการแก้ไขรายชื่ออาจไม่สำคัญ เนื่องจากมีแพ็คเกจที่สามารถติดตั้งในระบบของคุณคุณมีรูปแบบtar
ed, gzip
ed, xz
ed, bzip2
ed หรือรูปแบบอื่น ๆ ที่เก็บไฟล์ของคุณไว้ด้วยกันและจดจำสิทธิ์และเจ้าของของพวกเขา คุณสามารถแก้ไขไฟล์บีบอัดและแก้ไขความเป็นเจ้าของไฟล์ได้อย่างง่ายดายหรือไม่? ฉันไม่รู้เกี่ยวกับคุณ แต่ฉันไม่สามารถคิดได้
อาจมีเครื่องมือที่สร้างขึ้นเมื่อทุกอย่างถูกบีบอัดมันจะแก้ไขไฟล์ที่ถูกบีบอัดและแก้ไขการเป็นเจ้าของและการอนุญาตโดยทางโปรแกรมหรือไม่ ใช่สามารถทำได้ ดังนั้นคุณอาจปลอมกรรมสิทธิ์ก่อนที่จะบีบอัดหรือเปลี่ยนหลังจาก คนเดเบียนตัดสินใจว่าอดีตนั้นง่ายกว่า
4. ทำไมไม่เพียงใช้sudo
?
ก่อนอื่นคุณไม่จำเป็นต้องใช้สิทธิ์รูทเพื่อสร้างซอฟต์แวร์และคุณไม่จำเป็นต้องใช้สิทธิ์รูทในการบีบอัดไฟล์ ดังนั้นหากคุณไม่ต้องการคุณจะต้องเป็นผู้ใช้ Windows จริง ๆ เพื่อที่จะนึกถึงการได้รับอนุญาต แต่การเสียดสีกันคุณอาจไม่ได้ใช้รหัสผ่านรูท
นอกจากนี้สมมติว่าคุณมีสิทธิ์ใช้งานรูต และสมมติว่าคุณต้องการทำเป็นว่าไฟล์ควรมีสิทธิ์เข้าถึงเพื่ออ่านแบบรูทเท่านั้น ดังนั้นคุณsudo
เปลี่ยนเจ้าของไฟล์และการอนุญาตเป็นroot
จริงคุณจะออกจากรูทเชลล์และลองทำแพ็กเกจทุกอย่าง คุณล้มเหลวเพราะตอนนี้คุณไม่สามารถอ่านไฟล์ได้อีกต่อไปเนื่องจากคุณไม่มีสิทธิ์เข้าถึงรูต ดังนั้นคุณต้องsudo
บีบอัดและสร้างแพ็คเกจเป็นรูท อย่างมีประสิทธิภาพคุณต้องทำทุกอย่างตามรูท
นี้เป็น Bad TM
ในฐานะผู้บรรจุหีบห่อคุณไม่จำเป็นต้องได้รับอนุญาตรูทและคุณไม่ควรได้รับมัน เมื่อคุณติดตั้งแพคเกจคุณอาจต้องติดตั้งไฟล์บางไฟล์ ( A
) ในฐานะรูทและคุณต้องได้รับอนุญาตจากรูท ทั้งหมดfakeroot
นี้คือการทำให้เป็นไปได้ อนุญาตให้รายการผู้A
ทำแพ็กเกจเป็นเจ้าของโดย root สำหรับผู้จัดเก็บดังนั้นเมื่อแพ็กเกจถูกคลายบีบอัดโดยผู้ใช้ผู้จัดเก็บต้องการการอนุญาตรูทและสร้างA
เป็นเจ้าของโดยรูท
sudo
หรือsu
เพราะมันเป็นเครื่องของคุณfakeroot
มีสองการใช้งาน 1) มันโง่โปรแกรมที่เชื่อว่าคุณเป็นผู้ใช้รากซึ่งซอฟต์แวร์กรรมสิทธิ์บางอย่างที่เขียนไม่ดีอาจต้องแม้ว่าไม่จำเป็น (โดยปกตินักพัฒนา Windows ไป Linux) และ 2) มันอนุญาตให้เลียนแบบโหมดไฟล์และการเปลี่ยนแปลงความเป็นเจ้าของ ไม่เช่นนั้นส่วนใหญ่จะสร้างtar
ไฟล์ที่มีสิทธิ์และความเป็นเจ้าของที่ถูกต้องซึ่งมีประโยชน์เช่นเมื่อบรรจุซอฟต์แวร์