<ก่อนหน้านี้ | Contents | ถัดไป>
6.6. การสร้างไฟล์สำคัญและ Symlinks
/tools/bin/{ทุบตี, cat, chmod, dd, echo, ln, mkdir, pwd, rm, stty, touch} / bin
/tools/bin/{ทุบตี, cat, chmod, dd, echo, ln, mkdir, pwd, rm, stty, touch} / bin
/tools/bin/{env,ติดตั้ง,perl,printf}
/tools/lib/libgcc_s.so{,.1}
/tools/lib/libstdc++.{a ดังนั้น{,.6}}
/tools/bin/{env,ติดตั้ง,perl,printf}
/tools/lib/libgcc_s.so{,.1}
/tools/lib/libstdc++.{a ดังนั้น{,.6}}
/ usr / bin
/ usr / lib
/ usr / lib
/ usr / bin
/ usr / lib
/ usr / lib
บางโปรแกรมใช้พาธแบบเดินสายไปยังโปรแกรมที่ยังไม่มี เพื่อให้เป็นไปตามโปรแกรมเหล่านี้ ให้สร้างลิงก์สัญลักษณ์จำนวนหนึ่งซึ่งจะถูกแทนที่ด้วยไฟล์จริงตลอดบทนี้หลังจากติดตั้งซอฟต์แวร์แล้ว:
ลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลล
ln
-sv
-sv
-sv
-sv
ลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลลล
ln
ln -sv ทุบตี /bin/sh
ln -sv ทุบตี /bin/sh
วัตถุประสงค์ของแต่ละลิงค์:
/ bin / bash
หลาย ทุบตี สคริปต์ระบุ / bin / bash.
/ถังขยะ/แมว
ชื่อพาธนี้มีฮาร์ดโค้ดในสคริปต์กำหนดค่าของ Glibc
/bin/dd
เส้นทางไป dd จะถูกฮาร์ดโค้ดลงใน /usr/bin/libtool ประโยชน์
/bin/เสียงสะท้อน
นี่คือการตอบสนองหนึ่งในการทดสอบในชุดทดสอบของ Glibc ซึ่งคาดว่า /bin/เสียงสะท้อน.
/usr/bin/env
ชื่อพาธนี้มีฮาร์ดโค้ดในโพรซีเดอร์การสร้างแพ็คเกจบางตัว
/usr/bin/ติดตั้ง
เส้นทางไป ติดตั้ง จะถูกฮาร์ดโค้ดลงใน /usr/lib/bash/Makefile.inc ไฟล์
/ถัง/ลิตร
เส้นทางไป ln จะถูกฮาร์ดโค้ดลงใน /usr/lib/perl5/5.30.0/ /Config_ heavy.pl ไฟล์
/bin/pwd
เรื่อง กำหนดค่า สคริปต์โดยเฉพาะของ Glibc มีชื่อเส้นทางนี้ฮาร์ดโค้ด
/ถัง/rm
เส้นทางไป rm จะถูกฮาร์ดโค้ดลงใน /usr/lib/perl5/5.30.0/ /Config_ heavy.pl ไฟล์
/ bin / stty
ชื่อพาธนี้มีการกำหนดตายตัวใน Expect ดังนั้นจึงจำเป็นสำหรับชุดทดสอบ Binutils และ GCC เพื่อผ่าน
/usr/bin/perl
สคริปต์ Perl จำนวนมากฮาร์ดโค้ดเส้นทางนี้ไปยัง Perl โครงการ
/usr/lib/libgcc_s.so{,.1}
Glibc ต้องการสิ่งนี้เพื่อให้ไลบรารี pthreads ทำงานได้
/usr/lib/libstdc++{,.6}
สิ่งนี้จำเป็นสำหรับการทดสอบหลายอย่างในชุดทดสอบของ Glibc รวมถึงการรองรับ C++ ใน GMP
bin / sh /
ฮาร์ดโค้ดของเชลล์สคริปต์จำนวนมาก bin / sh /.
ในอดีต ลินุกซ์จะรักษารายการของระบบไฟล์ที่ถูกเมาต์ในไฟล์ / etc / mtab. เมล็ดพืชสมัยใหม่เก็บรักษารายการนี้ไว้ภายในและเปิดเผยให้ผู้ใช้ทราบผ่านทาง / proc ระบบไฟล์ เพื่อตอบสนองสาธารณูปโภคที่คาดว่าจะมีอยู่ของ /etc/mtabให้สร้างลิงก์สัญลักษณ์ต่อไปนี้:
ln -sv /proc/self/mounts /etc/mtab
ln -sv /proc/self/mounts /etc/mtab
เพื่อให้ผู้ใช้ ราก เพื่อให้สามารถเข้าสู่ระบบและเพื่อให้รู้จักชื่อ "รูท" จะต้องมีรายการที่เกี่ยวข้องใน / etc / passwd และ / etc / group ไฟล์
สร้าง / etc / passwd ไฟล์โดยรันคำสั่งต่อไปนี้:
cat > /etc/passwd << "EOF" root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/dev/null:/bin/false daemon:x:6:6:Daemon ผู้ใช้:/dev/ null:/bin/false
messagebus:x:18:18:D-Bus Message Daemon ผู้ใช้:/var/run/dbus:/bin/false none:x:99:99:Unprivileged User:/dev/null:/bin/false
EOF
cat > /etc/passwd << "EOF" root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/dev/null:/bin/false daemon:x:6:6:Daemon ผู้ใช้:/dev/ null:/bin/false
messagebus:x:18:18:D-Bus Message Daemon ผู้ใช้:/var/run/dbus:/bin/false none:x:99:99:Unprivileged User:/dev/null:/bin/false
EOF
รหัสผ่านที่แท้จริงสำหรับ ราก (ตัว "x" ที่ใช้ในที่นี้เป็นเพียงตัวยึดตำแหน่ง) จะถูกตั้งค่าในภายหลัง สร้าง / etc / group ไฟล์โดยรันคำสั่งต่อไปนี้:
แมว > /etc/group รูท:x:0: bin:x:1:daemon sys:x:2:
กม.:x:3:
เทป:x:4:
tty:x:5: daemon:x:6: floppy:x:7: ดิสก์:x:8:
lp:x:9: dialout:x:10: เสียง:x:11: วิดีโอ:x:12: utmp:x:13: usb:x:14: cdrom:x:15: adm:x:16: messagebus: x:18: อินพุต:x:24: mail:x:34: kvm:x:61: ล้อ:x:97: nogroup:x:99: ผู้ใช้:x:999:
EOF
<<
"อีฟ"
แมว > /etc/group รูท:x:0: bin:x:1:daemon sys:x:2:
กม.:x:3:
เทป:x:4:
tty:x:5: daemon:x:6: floppy:x:7: ดิสก์:x:8:
lp:x:9: dialout:x:10: เสียง:x:11: วิดีโอ:x:12: utmp:x:13: usb:x:14: cdrom:x:15: adm:x:16: messagebus: x:18: อินพุต:x:24: mail:x:34: kvm:x:61: ล้อ:x:97: nogroup:x:99: ผู้ใช้:x:999:
EOF
กลุ่มที่สร้างขึ้นไม่ได้เป็นส่วนหนึ่งของมาตรฐานใดๆ—เป็นกลุ่มที่ตัดสินใจบางส่วนโดยข้อกำหนดของการกำหนดค่า Udev ในบทนี้ และบางส่วนมาจากแบบแผนทั่วไปที่ใช้โดยลีนุกซ์รุ่นที่มีอยู่จำนวนหนึ่ง นอกจากนี้ ชุดทดสอบบางชุดยังขึ้นอยู่กับผู้ใช้หรือกลุ่มที่เฉพาะเจาะจง Linux Standard Base (LSB ดูได้ที่ http://www. linuxbase.org) แนะนำเพียงว่านอกจากกลุ่ม ราก ด้วย ID กลุ่ม (GID) ของ 0 กลุ่ม ถัง โดยมี GID เท่ากับ 1 ผู้ดูแลระบบสามารถเลือกชื่อกลุ่มและ GID อื่นๆ ได้อย่างอิสระ เนื่องจากโปรแกรมที่เขียนอย่างดีไม่ได้ขึ้นอยู่กับหมายเลข GID แต่ใช้ชื่อกลุ่มแทน
หากต้องการลบ "ฉันไม่มีชื่อ!" ให้เริ่มเชลล์ใหม่ เนื่องจาก Glibc เต็มรูปแบบได้รับการติดตั้งในบทที่ 5 และ / etc / รหัสผ่าน และ / etc / group สร้างไฟล์แล้ว การแก้ไขชื่อผู้ใช้และชื่อกลุ่มจะทำงานได้ในขณะนี้:
exec /tools/bin/bash --login +h
exec /tools/bin/bash --login +h
สังเกตการใช้ +h คำสั่ง นี้บอก ทุบตี ไม่ใช้การแฮชเส้นทางภายใน หากไม่มีคำสั่งนี้ ทุบตี จะจำเส้นทางไปสู่ไบนารีที่มันได้ดำเนินการ เพื่อให้แน่ใจว่าจะใช้ไบนารีที่คอมไพล์ใหม่ทันทีที่ติดตั้ง +h คำสั่งจะใช้ในช่วงระยะเวลาของบทนี้
/var/log/{btmp,lastlog,faillog,wtmp}
/var/log/{btmp,lastlog,faillog,wtmp}
-v
-v
-v
-v
-v
-v
ยูเอ็มพี 664
600
ยูเอ็มพี 664
600
/var/log/loadlog
/var/log/loadlog
/var/log/btmp
/var/log/loadlog
/var/log/loadlog
/var/log/btmp
การขอ เข้าสู่ระบบ, เก็ตตี้และ init โปรแกรม (และอื่น ๆ ) ใช้ไฟล์บันทึกจำนวนหนึ่งเพื่อบันทึกข้อมูลเช่นใครเข้าสู่ระบบและเมื่อใด อย่างไรก็ตาม โปรแกรมเหล่านี้จะไม่เขียนลงในล็อกไฟล์หากไม่มีอยู่ เริ่มต้นไฟล์บันทึกและให้สิทธิ์ที่เหมาะสม:
แตะ chgrp chmod
chmod
แตะ chgrp chmod
chmod
การขอ /var/log/wtmp ไฟล์บันทึกการเข้าสู่ระบบและออกจากระบบทั้งหมด NS /var/log/loadlog ไฟล์จะบันทึกเมื่อผู้ใช้แต่ละคนเข้าสู่ระบบครั้งล่าสุด The /var/log/ล้มเหลว บันทึกไฟล์ล้มเหลวในการพยายามเข้าสู่ระบบ NS /var/log/btmp ไฟล์บันทึกความพยายามในการเข้าสู่ระบบที่ไม่ถูกต้อง
หมายเหตุ
การขอ /รัน/utmp file จะบันทึกผู้ใช้ที่เข้าสู่ระบบอยู่ ไฟล์นี้ถูกสร้างขึ้นแบบไดนามิกในบูตสคริปต์
หมายเหตุ
การขอ /รัน/utmp file จะบันทึกผู้ใช้ที่เข้าสู่ระบบอยู่ ไฟล์นี้ถูกสร้างขึ้นแบบไดนามิกในบูตสคริปต์