OnWorks Linux ແລະ Windows Online WorkStations

Logo

ໂຮດຕິ້ງອອນໄລນ໌ຟຣີສໍາລັບ WorkStations

<Previous | ເນື້ອໃນ | ຕໍ່ໄປ>

6.6. ການສ້າງໄຟລ໌ທີ່ສໍາຄັນແລະ Symlinks

ຮູບພາບເລັກນ້ອຍ

/tools/bin/{bash,cat,chmod,dd,echo,ln,mkdir,pwd,rm,stty,touch} /bin

/tools/bin/{bash,cat,chmod,dd,echo,ln,mkdir,pwd,rm,stty,touch} /bin

/tools/bin/{env,install,perl,printf}

/tools/lib/libgcc_s.so{,.1}

/tools/lib/libstdc++.{a,so{,.6}}

/tools/bin/{env,install,perl,printf}

/tools/lib/libgcc_s.so{,.1}

/tools/lib/libstdc++.{a,so{,.6}}

/ usr / ຖັງ

/ usr / lib

/ usr / lib

/ usr / ຖັງ

/ usr / lib

/ usr / lib

ບາງໂປລແກລມໃຊ້ເສັ້ນທາງທີ່ມີສາຍແຂງໄປຫາໂປຼແກຼມທີ່ບໍ່ມີຢູ່. ເພື່ອຕອບສະຫນອງໂຄງການເຫຼົ່ານີ້, ສ້າງຈໍານວນການເຊື່ອມຕໍ່ສັນຍາລັກທີ່ຈະຖືກແທນທີ່ດ້ວຍໄຟລ໌ທີ່ແທ້ຈິງຕະຫຼອດໄລຍະຂອງບົດນີ້ຫຼັງຈາກຊອບແວໄດ້ຖືກຕິດຕັ້ງ:


ln ln ln

ln

-sv

-sv

-sv

-sv

ln ln ln

ln


ln -sv bash /bin/sh

ln -sv bash /bin/sh

ຈຸດ​ປະ​ສົງ​ຂອງ​ການ​ເຊື່ອມ​ຕໍ່​ແຕ່​ລະ​ຄົນ​:

/ bin / bash

ຫຼາຍ​ຄົນ bash ສະຄຣິບລະບຸ / bin / bash.

/bin/cat

ຊື່ເສັ້ນທາງນີ້ແມ່ນລະຫັດຍາກເຂົ້າໃນສະຄຣິບການຕັ້ງຄ່າຂອງ Glibc.

/bin/dd

ເສັ້ນທາງໄປ dd ຈະ​ໄດ້​ຮັບ​ການ​ຍາກ​ລະ​ຫັດ​ເຂົ້າ​ໄປ​ໃນ​ /usr/bin/libtool utility

/bin/echo

ນີ້ແມ່ນເພື່ອຕອບສະຫນອງຫນຶ່ງໃນການທົດສອບໃນຊຸດທົດສອບຂອງ Glibc, ເຊິ່ງຄາດວ່າ /bin/echo.

/usr/bin/env

ຊື່ເສັ້ນທາງນີ້ແມ່ນລະຫັດຍາກໃນບາງຂັ້ນຕອນການສ້າງແພັກເກັດ.

/usr/bin/install

ເສັ້ນທາງໄປ ການຕິດຕັ້ງ ຈະ​ໄດ້​ຮັບ​ການ​ຍາກ​ລະ​ຫັດ​ເຂົ້າ​ໄປ​ໃນ​ /usr/lib/bash/Makefile.inc ຍື່ນ.

/bin/ln

ເສັ້ນທາງໄປ ln ຈະ​ໄດ້​ຮັບ​ການ​ຍາກ​ລະ​ຫັດ​ເຂົ້າ​ໄປ​ໃນ​ /usr/lib/perl5/5.30.0/ /config_ heavy.pl ຍື່ນ.

/bin/pwd

ບາງ configure ສະຄຣິບ, ໂດຍສະເພາະ Glibc, ມີຊື່ເສັ້ນທາງນີ້ລະຫັດຍາກ.

/bin/rm

ເສັ້ນທາງໄປ rm ຈະ​ໄດ້​ຮັບ​ການ​ຍາກ​ລະ​ຫັດ​ເຂົ້າ​ໄປ​ໃນ​ /usr/lib/perl5/5.30.0/ /config_ heavy.pl ຍື່ນ.

/ bin / stty

ຊື່ເສັ້ນທາງນີ້ແມ່ນຖືກລະຫັດຍາກໃນ Expect, ສະນັ້ນມັນເປັນສິ່ງຈໍາເປັນເພື່ອໃຫ້ຊຸດທົດສອບ Binutils ແລະ GCC ຜ່ານ.

/usr/bin/perl

Perl scripts ຫຼາຍ hard-code ເສັ້ນທາງນີ້ໄປຫາ perl ໂຄງການ.

/usr/lib/libgcc_s.so{,.1}

Glibc ຕ້ອງການອັນນີ້ເພື່ອໃຫ້ຫ້ອງສະໝຸດ pthreads ເຮັດວຽກ.

/usr/lib/libstdc++{,.6}

ນີ້ແມ່ນຈໍາເປັນໂດຍການທົດສອບຫຼາຍໆຄັ້ງໃນຊຸດທົດສອບຂອງ Glibc, ເຊັ່ນດຽວກັນກັບການສະຫນັບສະຫນູນ C ++ ໃນ GMP.

/ ຖັງ / sh

Shell scripts ຫຼາຍ hard-code / ຖັງ / sh.


ໃນປະຫວັດສາດ, Linux ຮັກສາບັນຊີລາຍຊື່ຂອງລະບົບໄຟລ໌ທີ່ຕິດຕັ້ງຢູ່ໃນໄຟລ໌ / etc / mtab. ແກ່ນທີ່ທັນສະໄຫມຮັກສາບັນຊີລາຍຊື່ນີ້ພາຍໃນແລະເປີດເຜີຍໃຫ້ຜູ້ໃຊ້ຜ່ານ / proc ລະບົບໄຟລ໌. ເພື່ອຕອບສະຫນອງຜົນປະໂຫຍດທີ່ຄາດວ່າຈະມີ /etc/mtab, ສ້າງການເຊື່ອມຕໍ່ສັນຍາລັກດັ່ງຕໍ່ໄປນີ້:


ln -sv /proc/self/mounts /etc/mtab

ln -sv /proc/self/mounts /etc/mtab


ໃນຄໍາສັ່ງສໍາລັບຜູ້ໃຊ້ ຮາກ ເພື່ອໃຫ້ສາມາດເຂົ້າສູ່ລະບົບແລະເພື່ອໃຫ້ຊື່ "ຮາກ" ໄດ້ຮັບການຍອມຮັບ, ຕ້ອງມີລາຍການທີ່ກ່ຽວຂ້ອງຢູ່ໃນ / etc / passwd ແລະ / etc / ກຸ່ມ ໄຟລ໌.

ສ້າງ / 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 User:/dev/ null:/bin/false

messagebus:x:18:18:D-Bus Message Daemon ຜູ້ໃຊ້:/var/run/dbus:/bin/false nobody: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 User:/dev/ null:/bin/false

messagebus:x:18:18:D-Bus Message Daemon ຜູ້ໃຊ້:/var/run/dbus:/bin/false nobody:x:99:99:Unprivileged User:/dev/null:/bin/false

EOF


ຮູບພາບເລັກນ້ອຍ

ລະຫັດຜ່ານຕົວຈິງສໍາລັບ ຮາກ (“x” ທີ່ໃຊ້ໃນນີ້ແມ່ນພຽງແຕ່ຕົວຍຶດ) ຈະຖືກຕັ້ງໃນພາຍຫຼັງ. ສ້າງ / etc / ກຸ່ມ ໄຟລ໌ໂດຍການແລ່ນຄໍາສັ່ງຕໍ່ໄປນີ້:


cat > /etc/group ຮາກ:x:0: bin:x:1:daemon sys:x:2:

kmem:x:3:

ເທບ:x:4:

tty:x:5: daemon:x:6: floppy:x:7: disk:x:8:

lp:x:9: dialout:x:10: audio:x:11: video: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: wheel:x:97: nogroup:x:99: users:x:999:

EOF

<<

"EOF"

cat > /etc/group ຮາກ:x:0: bin:x:1:daemon sys:x:2:

kmem:x:3:

ເທບ:x:4:

tty:x:5: daemon:x:6: floppy:x:7: disk:x:8:

lp:x:9: dialout:x:10: audio:x:11: video: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: wheel:x:97: nogroup:x:99: users:x:999:

EOF


ກຸ່ມທີ່ສ້າງຂຶ້ນບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງມາດຕະຖານໃດໆ - ພວກເຂົາເປັນກຸ່ມທີ່ຕັດສິນໃຈໃນບາງສ່ວນໂດຍຂໍ້ກໍານົດຂອງການຕັ້ງຄ່າ Udev ໃນບົດນີ້, ແລະບາງສ່ວນໂດຍສົນທິສັນຍາທົ່ວໄປທີ່ໃຊ້ໂດຍຈໍານວນການແຈກຢາຍ Linux ທີ່ມີຢູ່. ນອກຈາກນັ້ນ, ບາງຊຸດທົດສອບແມ່ນອີງໃສ່ຜູ້ໃຊ້ສະເພາະ ຫຼືກຸ່ມ. ພື້ນຖານມາດຕະຖານ Linux (LSB, ມີຢູ່ http://www. linuxbase.org) ແນະນໍາພຽງແຕ່ວ່າ, ນອກຈາກກຸ່ມ ຮາກ ດ້ວຍ ID ກຸ່ມ (GID) ຂອງ 0, ກຸ່ມ ເຈົ້າ ດ້ວຍ GID ຂອງ 1 ຈະມີຢູ່. ຊື່ກຸ່ມອື່ນທັງໝົດ ແລະ GID ສາມາດເລືອກໄດ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບຢ່າງເສລີ ເພາະວ່າໂປຣແກຣມທີ່ຂຽນໄດ້ດີບໍ່ຂຶ້ນກັບຕົວເລກ GID, ແຕ່ໃຊ້ຊື່ກຸ່ມແທນ.

ເພື່ອເອົາ "ຂ້ອຍບໍ່ມີຊື່!" ກະຕຸ້ນເຕືອນ, ເລີ່ມຕົ້ນແກະໃຫມ່. ນັບຕັ້ງແຕ່ Glibc ເຕັມໄດ້ຖືກຕິດຕັ້ງຢູ່ໃນບົດທີ 5 ແລະ /etc/passwd ແລະ / etc / ກຸ່ມ ໄຟລ໌ໄດ້ຖືກສ້າງຂື້ນ, ຊື່ຜູ້ໃຊ້ແລະການແກ້ໄຂຊື່ກຸ່ມຈະເຮັດວຽກໃນປັດຈຸບັນ:


exec /tools/bin/bash --login +h

exec /tools/bin/bash --login +h

ຫມາຍເຫດການນໍາໃຊ້ຂອງ +h ຄໍາສັ່ງ. ນີ້ບອກ bash ບໍ່ໃຫ້ໃຊ້ hashing ເສັ້ນທາງພາຍໃນຂອງມັນ. ໂດຍ​ບໍ່​ມີ​ການ​ຊີ້​ນໍາ​ນີ້​, bash ຈະຈື່ຈໍາເສັ້ນທາງໄປສູ່ binary ທີ່ມັນໄດ້ປະຕິບັດ. ເພື່ອຮັບປະກັນການນໍາໃຊ້ binaries ທີ່ລວບລວມໃຫມ່ທັນທີທີ່ພວກມັນຖືກຕິດຕັ້ງ, the +h ຄໍາສັ່ງຈະຖືກນໍາໃຊ້ສໍາລັບໄລຍະເວລາຂອງບົດນີ້.

ຮູບພາບເລັກນ້ອຍ

/var/log/{btmp,lastlog,faillog,wtmp}

/var/log/{btmp,lastlog,faillog,wtmp}

-v

-v

-v

-v

-v

-v

utmp 664

600

utmp 664

600

/var/log/loadlog

/var/log/loadlog

/var/log/btmp

/var/log/loadlog

/var/log/loadlog

/var/log/btmp

ໄດ້ ເຂົ້າ​ສູ່​ລະ​ບົບ, agetty, ແລະ ໃນ​ມັນ ບັນດາໂຄງການ (ແລະອື່ນໆ) ໃຊ້ໄຟລ໌ບັນທຶກຈໍານວນຫນຶ່ງເພື່ອບັນທຶກຂໍ້ມູນເຊັ່ນວ່າຜູ້ທີ່ຖືກເຂົ້າສູ່ລະບົບແລະເວລາໃດ. ຢ່າງໃດກໍຕາມ, ໂປຼແກຼມເຫຼົ່ານີ້ຈະບໍ່ຂຽນໃສ່ໄຟລ໌ບັນທຶກຖ້າພວກເຂົາບໍ່ມີຢູ່ແລ້ວ. ເລີ່ມຕົ້ນໄຟລ໌ບັນທຶກ ແລະໃຫ້ສິດທີ່ຖືກຕ້ອງແກ່ເຂົາເຈົ້າ:


ແຕະ chgrp chmod

chmod

ແຕະ chgrp chmod

chmod

ຮູບພາບເລັກນ້ອຍ

ໄດ້ /var/log/wtmp ໄຟລ໌ບັນທຶກການເຂົ້າສູ່ລະບົບ ແລະອອກຈາກລະບົບທັງໝົດ. ໄດ້ /var/log/loadlog ບັນທຶກໄຟລ໌ເມື່ອຜູ້ໃຊ້ແຕ່ລະຄົນເຂົ້າສູ່ລະບົບຄັ້ງສຸດທ້າຍ /var/log/faillog ການບັນທຶກໄຟລ໌ລົ້ມເຫລວຄວາມພະຍາຍາມເຂົ້າສູ່ລະບົບ. ໄດ້ /var/log/btmp ໄຟລ໌ບັນທຶກຄວາມພະຍາຍາມເຂົ້າສູ່ລະບົບທີ່ບໍ່ດີ.


ຫມາຍ​ເຫດ​

ໄດ້ /run/utmp ໄຟລ໌ບັນທຶກຜູ້ໃຊ້ທີ່ເຂົ້າສູ່ລະບົບໃນປັດຈຸບັນ.

ຫມາຍ​ເຫດ​

ໄດ້ /run/utmp ໄຟລ໌ບັນທຶກຜູ້ໃຊ້ທີ່ເຂົ້າສູ່ລະບົບໃນປັດຈຸບັນ.


OS Cloud Computing ຍອດນິຍົມຢູ່ OnWorks: