diff --git a/mn_MN.UTF-8/books/handbook/basics/chapter.sgml b/mn_MN.UTF-8/books/handbook/basics/chapter.sgml index ad8029a3cf..fbb44ed410 100644 --- a/mn_MN.UTF-8/books/handbook/basics/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/basics/chapter.sgml @@ -1,2548 +1,2548 @@ Крис Шамвэй Дахин бичсэн Шагдарын Нацагдорж Орчуулсан Юниксийн үндэс Ерөнхий агуулга Дараах бүлгүүд нь FreeBSD үйлдлийн системийн үндсэн тушаал мөн гүйцэтгэлүүдийг хамрах болно. Энэ материалын ихэнх хэсэг нь &unix;-төрлийн үйлдлийн системтэй хамаатай. Хэрэв та юникс төрлийн үйлдлийн системтэй танил бол энэ бүлгийг алгасаж болно. Харин та FreeBSD-г шинээр сурагч бол энэ бүлгийг тун анхааралтай унших хэрэгтэй. Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно: FreeBSD-н виртуал консолыг хэрхэн хэрэглэх. &os; дээрх файлын тугийг ойлгосноор &unix;-н файлын зөвшөөрөл хэрхэн ажилладгийг мэдэх. Үндсэн &os; файл системийн байрлуулалтыг мэдэх. &os; диск зохион байгуулалт. Файл системийг хэрхэн холбох болон салгах. Процесс, далд чөтгөр дэмон, мөн дохионууд гэж юу болох. Бүрхүүл гэж юу болох, мөн хэрхэн анхны нэвтрэх орчноо өөрчлөх. Үндсэн текст засварлагчийг хэрхэн хэрэглэх. Төхөөрөмж болох төхөөрөмжийн цэг гэж юу болох. &os;-д ямар хоёртын хэлбэр хэрэглэгддэг болох. Нэмэлт мэдээллийг товч гарын авлагаас хэрхэн харах. Виртуал консол болон терминал виртуал консол терминал FreeBSD нь олон аргаар хэрэглэгдэж чадна. Тэдний нэг нь тушаалуудыг текст терминал дээр бичиж хэрэглэх юм. Хэрэв та FreeBSD-г ингэж хэрэглэвэл, &unix;-н маш олон боломж болон хүч таны гарт байна гэсэн үг. Энэ бүлэг танд, терминал болон консол гэж юу болох, мөн тэд нарыг FreeBSD дээр хэрхэн хэрэглэх талаар танд тодорхойлж өгөх болно. Консол консол Хэрэв та FreeBSD-г эхлэх үедээ автоматаар график горимд эхлүүлэхээр тохируулаагүй бол, систем нь эхлэлтийн гүйцэтгэдэг бичиглэлүүдээ дуусгасны дараа танд нэвтрэх хуудас харуулдаг. Та нэг иймэрхүү хуудас харах байх: Additional ABI support:. Local package initialization:. Additional TCP options:. Fri Sep 20 13:01:06 EEST 2002 FreeBSD/i386 (pc3.example.org) (ttyv0) login: Энд харуулсан текстүүд нь таны систем дээр жаахан өөр байж магадгүй ч, ерөнхийдөө үүнтэй ижил байх ёстой. Сүүлийн хоёр мөр нь бидэнд одоогоор чухал мөрүүд. Сүүлээсээ хоёр дахь мөр нь ингэж уншигдаж байна: FreeBSD/i386 (pc3.example.org) (ttyv0) Энэ мөр нь таны дөнгөж сая эхлүүлсэн системийн тухай товч мэдээллийг агуулсан байна. Та x86 архитектуртай тохиромжтой Интел юм уу тохирох систем дээр ажиллаж буй FreeBSD консолыг харж байна i386 гэдэг нь үүнийг илэрхийлж байгаа юм. Тэмдэглэж хэлэхэд, хэрэв та FreeBSD-г Интел 386 процессор дээр ажиллуулаагүй байсан ч энэ нь i386 гэж гарна. Энэ нь процессорын төрлийг биш харин процессорын архитектурыг харуулж байгаа юм. . Энэ машины нэр нь (&unix; машин болгон өөрийн нэртэй ) pc3.example.org, бөгөөд та энэ системийн консолын — ttyv0 нэртэй терминалыг харж байна. Эцэст нь, сүүлийн мөр бол үргэлж: login: Энэ хэсэг нь, таны FreeBSD уруу нэвтрэх хэрэглэгчийн-нэрээ бичдэг хэсэг. Дараагийн хэсэгт энэ талаар тодорхойлсон байгаа. FreeBSD уруу нэвтрэх FreeBSD бол олон хэрэглэгчийн бас олон үйлдлийн систем. Энэ нь, нэг машин уруу олон хүмүүс зэрэг холбогдож нэгэн зэрэг олон үйлдэл хийж болдог системийн ерөнхий тодорхойлолт юм. Олон хэрэглэгчийн систем нь ямар нэгэн аргаар нэг хэрэглэгчийг бусдаас нь ялгаж чаддаг байх ёстой. FreeBSD дээр (мөн бусад &unix;-төрлийн системүүд дээр) энэ нь, хэрэглэгч ямар нэгэн програм ажиллуулахаасаа өмнө систем уруу нэвтрэх үйлдэл хийж хэрэгждэг. Хэрэглэгч бүрд гоц нэр ( хэрэглэгчийн-нэр) мөн хувийн нууц үг ( нууц-үг) харгалзах ёстой. Хэрэглэгчийг програм хэрэглэж эхлэхээс өмнө FreeBSD энэ хоёрыг асуух болно. эхлэлийн бичлэг Дөнгөж FreeBSD эхлэх үедээ эхлүүлэгч бичлэгүүдийг Эхлэх бичлэгүүд гэдэг нь FreeBSD эхлэх үед автоматаар ажилладаг програмууд. Тэдгээрийн үндсэн үүрэг нь, ажиллах ёстой програмуудыг тохируулах, мөн хэрэв ар талд далд ажилладаг ямар нэгэн үр ашигтай үйлдэл хийж байдаг таны тохируулсан үйлчилгээнүүд байвал тэднийг эхлүүлэх зэрэг үйлдлүүд юм. гүйцэтгэж дуусаад танаас зөв хэрэглэгчийн нэр оруулахыг лавлаж асууна: login: Энэ жишээнд зориулаад бүгдээрээ таны хэрэглэгчийн нэрийг john гэж бодоцгооё. Лавлаж асуусан мөрөнд john гэж бичээд Enter товч дарна. Ингээд дараа нь танаас password гэж нууц үг асуух болно: login: john Password: john-ны нууц үгийг оруулаад Enter товч дарна. Нууц үгийг танд харуулдаггүй! Энэ талаар та одоохондоо санаагаа зовоох хэрэггүй. Нууцлалын шалтгаанаар ингэж байгаа юм гэж хэлэхэд хангалттай. Хэрэв та нууц үгээ зөв оруулсан бол ингээд FreeBSD уруу нэвтрэх бөгөөд боломжтой бүх програмуудыг туршиж болохоор боллоо. Та MOTD эсвэл тухайн өдрийн мэдээллийг тушаал бичигчийн араас харах болно ( тушаал бичигч нь #, $, эсвэл % гэсэн тэмдэгтүүдийн нэг нь байдаг). Энэ нь таныг FreeBSD уруу амжилттай нэвтэрснийг илэрхийлдэг. Олон консолууд &unix; тушаалуудыг нэг консол дээр гүйцэтгэх нь ердийнх, гэхдээ FreeBSD олон програмыг нэг дор ажиллуулж чадна. FreeBSD олон програмыг нэг дор нэг цагт ажиллуулж чадаж байхад, нэг консол дээр олон тушаал өгч суух нь цаг алдахын л нэмэр. Ийм үед л виртуал консолын тусламж хэрэг болдог. FreeBSD нь танд олон төрлийн виртуал консол хэрэглүүлэхээр тохируулагдаж чаддаг. Нэг виртуал консолоос нөгөөх уруу нь гарын хэдхэн товчлуур дараад л шилжиж болдог. Консол бүр өөрийн төрөл бүрийн гаралтын сувагтай бөгөөд FreeBSD нь таныг нэг консолоос нөгөө консол уруу сэлгэх үед гарын оруулга болон дэлгэцийн гаралтыг тухайн консолд тохируулж дамжуулж өгдөг. Гарын тусгай товчлолууд нь FreeBSD дээр консол сэлгэхэд зориулж нөөцлөгдсөн байдаг FreeBSD консол мөн гарын тохируулгын тухай нэлээн дэлгэрэнгүй техникийн мэдээллийг та &man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1; мөн &man.kbdcontrol.1; зэрэг гарын авлагуудаас харж болно. Бид нар энд задалж нарийвчлахгүй бөгөөд сонирхсон хүмүүс нь гарын авлагуудаас хэрхэн ажилладаг заавар тайлбарыг уншиж болно. . Та AltF1, AltF2, аас AltF8 хүртэлх товчлуурыг дарж FreeBSD дээр консолуудын хооронд шилжиж болно. Таныг нэгээс нөгөөх уруу нь шилжих үед, FreeBSD таны дэлгэцийн гаралтыг хадгалж санаа тавьдаг. Ингэсний үр дүнд гарнаас тушаал оруулж програмуудыг ажиллуулж болдог маш олон виртуал дэлгэцүүдтэй мэт үзэгддэг. Нэг виртуал консол дээр таны ажиллуулсан програм нь уг консолоос сэлгээд өөр консол дээр сэлгэсэн ч гэсэн зогсохгүй ажиллаж л байдаг. <filename>/etc/ttys</filename> Файл FreeBSD анхны тохируулгаараа найман виртуал консолтой эхэлдэг. Энэ нь хатуу тогтоосон тохируулга биш бөгөөд хэрэв та хүсвэл олон юм уу цөөн болгож амархан өөрчлөх боломжтой. Виртуал консолын тоо болон тохируулга нь /etc/ttys файлд байдаг. Та /etc/ttys файлыг хэрэглэж FreeBSD дээрх виртуал консолуудыг тохируулж болно. Энэ файлын тайлбар тавиагүй мөр болгон ( # тэмдгээр эхлээгүй мөрүүд) виртуал консол эсвэл ганц терминалын тохируулгыг агуулж байдаг. Энэ файл FreeBSD-тэй анх цуг ирэхдээ есөн виртуал консолтой гэж тохируулагдаж ирдэг бөгөөд тэдний наймыг нь хэрэглэж болохыг зөвшөөрсөн байдаг. Тэдгээр нь ttyv гэж эхэлсэн байдаг: # name getty type status comments # ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 on secure ttyv2 "/usr/libexec/getty Pc" cons25 on secure ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure Виртуал консолыг тохируулдаг энэ файлын баганууд мөн нэмэлт сонголтуудын дэлгэрэнгүй тайлбарыг та &man.ttys.5; гарын авлагаас харна уу. Ганц хэрэглэгчийн горимын консол Ганц хэрэглэгчийн горим гэж юу болох талаар дэлгэрэнгүй мэдээлэл -д буй. FreeBSD дээр ганц хэрэглэгчийн горимд ажиллаж байхад зөвхөн нэг консол байдаг гэдгийг мэдэх хэрэгтэй. Энэ үед ямар ч виртуал консолууд боломжгүй. Ганц хэрэглэгчийн горимын тохируулгыг бас /etc/ttys файл дотор хийж болно. console гэж эхэлсэн мөрүүдийг харна уу: # name getty type status comments # # If console is marked "insecure", then init will ask for the root password # when going to single-user mode. console none unknown off secure Дээрх console гэсэн мөрний дээд хэсэгт бичсэн тайлбарт бичсэний дагуу та secure гэдгийг insecure гэж өөрчилж болно. Хэрэв та ингэвэл, FreeBSD ганц хэрэглэгчийн горимд эхэлсэн ч гэсэн танаас root нууц үг асуух болно. Үүнийг insecure гэж солихдоо та тун болгоомжтой байх хэрэгтэй. Хэрэв та хэзээ нэгэн цагт root нууц үгээ мартаад ганц хэрэглэгчийн горимд орвол жаахан хүндрэлтэй байх болно. Энэ нь гэхдээ шийдэж болохоор хүндрэл боловч FreeBSD-н эхлэх үйлдэл болон хамрагдсан програмуудад нь дасаагүй хүнд бол жаахан хүндрэлтэй байж магадгүй. Консолын Видео горимуудыг өөрчлөх нь FreeBSD-ийн консолын анхдагч видео горимыг 1024x768, 1280x1024, эсвэл таны график бичил схем болон дэлгэц дэмжиж чадах дурын хэмжээгээр тохируулж болох юм. Өөр видео горимыг ашиглахын тулд та эхлээд өөрийн цөмөө дахин эмхэтгэж хоёр нэмэлт тохируулгыг оруулах хэрэгтэй: options VESA options SC_PIXEL_MODE Цөм эдгээр хоёр тохируулгатай дахин эмхэтгэгдсэний дараа таны тоног төхөөрөмж ямар видео горимуудыг дэмждэгийг &man.vidcontrol.1; хэрэгсэл ашиглан та тодорхойлж болно. Дэмжигдсэн видео горимуудын жагсаалтыг авахын тулд доор дурдсан тушаалыг бичнэ: &prompt.root; vidcontrol -i mode Энэ тушаалын үр дүн нь таны тоног төхөөрөмжийн дэмждэг видео горимуудын жагсаалт байх болно. Та дараа нь root консол дээр шинэ видео горимыг сонгон &man.vidcontrol.1; уруу өгч болно: &prompt.root; vidcontrol MODE_279 Хэрэв шинэ видео горим боломжийн бол /etc/rc.conf файлд ачаалахад үүнийг үргэлж сонгодог байхаар тохируулж болно: allscreens_flags="MODE_279" Зөвшөөрлүүд UNIX FreeBSD нь BSD &unix;-ээс уламжилж байх үедээ, &unix;-н үндсэн хэдэн бүтэц дээр суурилсан. Эхний бөгөөд хамгийн чухал тунхаглал нь FreeBSD бол олон хэрэглэгчийн үйлдлийн систем юм. Систем нь олон хэрэглэгчийн хоорондоо хамааралгүй олон үйлдлийг ачаалж чаддаг. Хэрэглэгч болгонд шаардагдах компьютерийн төхөөрөмж, санах ой мөн процессорын давтамжийг зөв шударга хуваарилахыг систем хариуцдаг. Систем олон хэрэглэгчтэй ажиллах болохоор, системийн хийх ёстой зүйл нь хэн тухайн нөөцийг унших, бичих, гүйцэтгэх вэ гэдгийг зохицуулах юм. Эдгээр зөвшөөрлүүд нь гурав гурваараа нийлүүлэгдсэн гурван хэсэг тоо байдаг. Нэг нь файлын эзэмшигчид, нөгөөх нь файлын хамаарагддаг бүлэгт, үлдсэн нь хүн болгонд гэж хуваарилагдана. Энэ тоон дараалал нь дараах маягаар ажилладаг.: зөвшөөрөл файлын зөвшөөрөл Утга Зөвшөөрөл Жагсаах харуулалт 0 Уншигдахгүй, бичигдэхгүй, гүйцэтгэгдэхгүй --- 1 Уншигдахгүй, бичигдэхгүй, гүйцэтгэгдэнэ --x 2 Уншигдахгүй, бичигдэнэ, гүйцэтгэгдэхгүй -w- 3 Уншигдахгүй, бичигдэнэ, гүйцэтгэгдэнэ -wx 4 Уншигдана, бичигдэхгүй, гүйцэтгэгдэхгүй r-- 5 Уншигдана, бичигдэхгүй, гүйцэтгэгдэнэ r-x 6 Уншигдана, бичигдэнэ, гүйцэтгэгдэхгүй rw- 7 Уншигдана, бичигдэнэ, гүйцэтгэгдэнэ rwx ls сангууд Та &man.ls.1; тушаалыг сонголттой хэрэглэж файлын эзэмшигч, бүлэг, мөн хүн болгонд хуваарилсан зөвшөөрлийг харуулсан баганатай дэлгэрэнгүй мэдээллийг харж болно. Жишээлбэл, ls -l тушаалыг нэг сан дотор гүйцэтгэвэл дараах маягаар харагдана: &prompt.user; ls -l total 530 -rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile -rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt ... Энд ls -l тушаалын эхний баганыг авч үзье: -rw-r--r-- Хамгийн эхний (зүүн талын) тэмдэг нь үүнийг ердийн файл юм уу, эсвэл сан, онцгой тэмдэг төхөөрөмж, сокет, эсвэл ямар нэгэн холбоост файл мөн эсэхийг илэрхийлдэг. Энэ тохиолдолд - нь ердийн файлыг зааж байна. Дараагийн гурван тэмдэгт rw- нь энэ тохиолдолд энэ файлын эзэмшигчид зөвшөөрөл өгч байна. Дараагийн гурван тэмдэгт r-- нь файлын хамаарах бүлэгт эрх өгч байна. Сүүлийн гурван тэмдэгт r-- нь бусад бүх хүмүүст эрх өгч байна. Зураас нь зөвшөөрөл өгөөгүйг илэрхийлдэг. Энэ файлын тохиолдолд, файлыг унших бичих эрхийг эзэмшигчид нь өгөөд, бүлэг нь файлыг унших эрхтэй, бусад хүмүүс энэ файлыг зөвхөн унших эрхтэй гэж заагдсан байна. Дээр тайлбарласан хүснэгтийн дагуу, энэ файлын зөвшөөрөл нь 644 гэж дээрх гурван төрөлд заагдаж байна. Энэ бол сайн бөгөөд сайхан хэрэг, гэхдээ төхөөрөмж рүү хандах зөвшөөрлийг систем яаж хянах вэ? FreeBSD бараг ихэнх төхөөрөмжийг нээж уншиж өгөгдөл бичдэг файл мэт хандаж уншиж бичдэг. Тэдгээр онцгой төхөөрөмжүүд нь /dev сан дотор байрладаг. Сангууд ч гэсэн бас файл мэт хандагддаг. Тэд нарт бас уншигдах, бичигдэх, гүйцэтгэгдэх зөвшөөрлүүд байдаг. Сангийн гүйцэтгэгдэх тэмдэг нь файлаас арай өөрөөр хэрэгждэг. Хэрэв сан нь гүйцэтгэгдэнэ гэж тэмдэглэгдсэн бол, энэ сан нь дамжиж өнгөрүүлэгдэж болох буюу cd тушаалыг (сан сольдог) хэрэглэж ийшээ орж болно гэсэн үг. Энэ нь мөн сан дотор харагдаж байгаа файлууд уруу хандаж болно гэсэн үг. (бас нэг зүйл, мэдээжээр, файлууд бас өөр дээрээ зөвшөөрөл агуулсан байгаа). Ерөнхийдөө бол, сан доторх файлуудыг жагсааж харахыг хүсвэл, уг санд уншигдах зөвшөөрөл суугдсан байх ёстой. Хэрэв санд байгаа файлыг устгана гэвэл бичигдэх болон гүйцэтгэгдэх зөвшөөрлүүд уг санд суугдах ёстой. Мөн нэмээд хэдэн зөвшөөрлийн битүүд байдаг, гэхдээ тэдгээр нь ажилладаг файлын setuid дугаар болон sticky сан зэрэг тусгай зориулалтаар хэрэглэгддэг. Файлын зөвшөөрлийн талаар нэмэлт мэдээлэл авахыг хүсвэл &man.chmod.1; гарын авлага хуудаснаас хараарай. Том Рөүдс Хамтарч бичсэн Тэмдэгт зөвшөөрлүүд зөвшөөрлүүдүсгэн Сан эсвэл файлд тоон утганы оронд заримдаа тэмдгэн зөвшөөрлийг хэрэглэдэг. Тэмдгэн зөвшөөрлийг бичихдээ (хэн) (үйлдэл) (зөвшөөрөл) гэсэн дарааллаар бичих бөгөөд дараах утгуудыг авдаг: Сонголт Үсэг Илэрхийлэл нь (хэн) u Хэрэглэгч (хэн) g Бүлгийн эзэмшигч (хэн) o Бусад (хэн) a Бүгд (ертөнц) (үйлдэл) + Зөвшөөрөл нэмэх (action) - Зөвшөөрлийг устгах (үйлдэл) = зөвхөн тухайн зөвшөөрлийг суулгах (зөвшөөрөл) r Унших (зөвшөөрөл) w Бичих (зөвшөөрөл) x Гүйцэтгэх (зөвшөөрөл) t Sticky бит (зөвшөөрөл) s UID эсвэл GID суулгах Эдгээр утгууд нь өмнөх жишээ шиг &man.chmod.1; тушаалтай хэрэглэгддэг бөгөөд гэхдээ үсэг хэрэглэнэ. Жишээлбэл, та FILE уруу бусад хэрэглэгчид хандахыг хориглохдоо: &prompt.user; chmod go= FILE Файлд нэгээс олон өөрчлөлт хийх шаардлага гарвал таслалаар тусгаарласан мөр бичиж болно. Жишээлбэл, дараах тушаал нь бүлэг болон дэлхийг FILE дээр бичих эрхийг нь аваад дараа нь хүн болгонд гүйцэтгэж болно гэсэн эрх өгч байна: &prompt.user; chmod go-w,a+x FILE Том Рөүдс Хамтран бичсэн &os; файлын туг Өмнө ярилцсан файлын зөвшөөрлөөс гадна &os; нь файлын туг хэрэглээгээр хангагдсан байдаг. Эдгээр туг нь файлд нэмэлт нууцлалын болон хяналтын түвшин тогтоож өгдөг, гэхдээ санд бол үгүй. Эдгээр файлын тугнууд нь файлд нэмэлт түвшний хяналт тогтоож өгснөөрөө зарим тохиолдолд root хэрэглэгч хүртэл файлыг устгах юм уу өөрчилж чадахгүй болгож тусалдаг. Файлын тугнууд нь энгийн загвартай &man.chflags.1; багажаар ашиглагддаг. Жишээлбэл, file1 файл дээр устгагдахгүй гэсэн туг хатгахыг системд зөвшөөрүүлэхийн тулд дараах тушаалыг гүйцэтгэнэ: &prompt.root; chflags sunlink file1 Хэрэв устгагдахгүй тугийг буцааж авна гэвэл өмнөх тушаал дээрээ -ын өмнө no залгаж ажиллуулна: &prompt.root; chflags nosunlink file1 Энэ файлын тугийг харахын тулд &man.ls.1; тушаалыг сонголттой хамт ажиллуулна: &prompt.root; ls -lo file1 Тушаалын гаралт нь дараах маягаар харагдах ёстой: -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1 Нэлээн хэдэн тугнууд нь файлд зөвхөн root хэрэглэгчээр нэмэгдэж устгагдана. Бусад тохиолдолд файлын эзэмшигч нь тугийг суулгах боломжтой. Администраторуудыг &man.chflags.1; болон &man.chflags.2; гарын авлагуудыг уншихыг зөвлөж байна. Том Рөүдс Хувь нэмэр болгон оруулсан setuid, setgid, болон sticky буюу наалдамхай зөвшөөрлүүд Өмнө хэлэлцсэн зөвшөөрлүүдээс гадна бүх администраторуудын мэдэх ёстой өөр гурван тусгай тохиргоо байдаг. Эдгээр нь setuid, setgid болон sticky буюу наалдамхай зөвшөөрлүүд юм. Эдгээр тохиргоонууд нь ерөнхийдөө энгийн хэрэглэгчдэд зөвшөөрөгддөггүй ажиллагаагаар хангадаг бөгөөд &unix;-ийн зарим нэг үйлдлүүдэд чухал байдаг. Эдгээрийг ойлгохын тулд жинхэнэ хэрэглэгчийн ID болон хүчинтэй хэрэглэгчийн ID-ийн ялгааг дурдах хэрэгтэй. Жинхэнэ хэрэглэгчийн ID нь процессийг эзэмшдэг юм уу эсвэл процессийг эхлүүлдэг UID юм. Хүчинтэй хэрэглэгчийн UID нь процессийн ажиллаж байгаа тэр хэрэглэгчийн ID юм. Жишээ нь &man.passwd.1; хэрэгсэл нь хэрэглэгч өөрсдийн нууц үгээ сольж байгаа болохоор жинхэнэ хэрэглэгчийн ID-аар ажиллах боловч нууц үгийн санд өөрчлөлт хийхийн тулд root хэрэглэгчийн хүчинтэй ID-аар ажилладаг. Ингэснээр энгийн хэрэглэгчдэд Permission Denied буюу зөвшөөрөл хаалттай гэсэн алдааг харуулалгүйгээр өөрсдийн нууц үгсийг солих боломжийг олгодог. nosuid &man.mount.8; тохиргоо нь эдгээр хоёртын файлуудыг дуугай амжилтгүй болоход хүргэдэг. Энэ нь хэрэглэгчдэд мэдэгдэлгүйгээр ажиллагаа амжилтгүй болно гэсэн үг юм. &man.mount.8; гарын авлагын дагуу энэ тохиргоо нь nosuid гүйцэтгэл хялбаршуулагчийн хамгаалж болох шиг бүрэн найдвартай бас биш юм. setuid зөвшөөрлийг зөвшөөрлийн цуглуулгын өмнө дөрвийн тоог (4) доорх жишээн дээрх шигээр тавьж тохируулж болно: &prompt.root; chmod 4755 suidexample.sh suidexample.sh файл дээрх зөвшөөрлүүд нь одоо доорх шиг харагдах ёстой: -rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh Энэ жишээн дээр s нь ажиллуулах битийг сольж файлын эзэмшигчид зориулсан зөвшөөрлүүдийн цуглуулгын хэсэг болж байгаа нь харагдах ёстой. Энэ нь passwd зэрэг дээшлүүлсэн зөвшөөрлүүдийг шаарддаг хэрэгслүүдийг зөвшөөрдөг. Жинхнээр нь үүнийг харахын тулд хоёр терминал нээ. Нэг дээр нь энгийн хэрэглэгчээр passwd процессийг эхлүүл. Шинэ нууц үг хүлээж байхад нь процессийн хүснэгтийг шалгаад passwd тушаалын хэрэглэгчийн мэдээллийг хар. Терминал A дээр: Changing local password for trhodes Old Password: Терминал B дээр: &prompt.root; ps aux | grep passwd trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd Дээр харуулснаар passwd нь энгийн хэрэглэгчээр ажиллаж байгаа боловч root хэрэглэгчийн хүчинтэй UID ашиглаж байна. setgid зөвшөөрөл нь setuid зөвшөөрөлтэй адил үүргийг гүйцэтгэдэг, гэхдээ бүлгийн тохиргоог өөрчилдөг. Програм юм уу эсвэл хэрэгсэл нь энэ тохиргоотойгоор ажиллахдаа процессийг эхлүүлсэн хэрэглэгч биш файлыг эзэмшиж байгаа бүлэг дээр тулгуурласан зөвшөөрлүүдийг олгодог. Файл дээр setgid зөвшөөрлийг тохируулахдаа дараах жишээн дээрх шиг chmod тушаалыг өмнөө хоёртой (2) өгнө: - &prompt.root; chmod 2755 suidexample.sh + &prompt.root; chmod 2755 sgidexample.sh Шинэ тохиргоог өмнөх шигээ харж болох бөгөөд s нь одоо бүлгийн зөвшөөрлийн тохиргоонд зориулагдсан талбарт байгааг анхаараарай: - -rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 suidexample.sh + -rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh Эдгээр жишээнүүд дээр бүрхүүлийн скрипт нь хэдийгээр ажиллах боломжтой файл боловч өөр EUID буюу хүчинтэй хэрэглэгчийн ID-аар ажиллахгүй. Энэ нь яагаад гэвэл бүрхүүлийн скрипт нь &man.setuid.2; системийн дуудлагуудад хандаж чадахгүйтэй холбоотой юм. Бидний хэлэлцсэн эхний хоёр тусгай зөвшөөрлийн битүүд нь (setuid болон setgid зөвшөөрлийн битүүд) дээшлүүлсэн зөвшөөрлүүдийг зөвшөөрч системийн аюулгүй байдлыг доошлуулж болох юм. Системийн аюулгүй байдлыг чангатгаж чадах гурав дахь тусгай зөвшөөрлийн бит байдаг нь sticky bit буюу наалдамхай бит юм. sticky bit нь санд тавигдсан үед файл устгалтыг зөвхөн файлыг эзэмшигчид зөвшөөрдөг. Энэ зөвшөөрлийн цуглуулга нь /tmp зэрэг нийтийн сангаас файлыг эзэмшдэггүй хэрэглэгч уг файлыг устгахаас хамгаалахад ашиг тустай байдаг. Энэ зөвшөөрлийг ашиглахын тулд зөвшөөрлийн урд нэгийг (1) тавьж өгнө. Жишээ нь: &prompt.root; chmod 1777 /tmp Одоо үр дүнг ls тушаал ашиглан харах боломжтой: &prompt.root; ls -al / | grep tmp drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp sticky bit буюу наалдамхай бит зөвшөөрөл нь цуглуулгын хамгийн сүүлд байгаа t-ээс ялгаатай юм. Сангийн бүтэц сангийн зохион байгуулалт FreeBSD ийн сангийн бүтэц нь уг системийг ойлгоход тун чухал үүрэг гүйцэтгэнэ. Хамгийн чухал бөгөөд үндсэн ойлголт бол root буюу хамгийн дээд эх сан / юм. Энэ сан нь систем эхлэх үед хамгийн түрүүнд танигдах ёстой бөгөөд олон хэрэглэгчид зориулсан үйлдлийн системийг бэлдэхэд чухал үүрэгтэй. Энэ дээд эх сан нь олон хэрэглэгчийн ажиллагаанд шилжих үед холбогдох бусад файлын системүүдийн холболтын цэгүүдийг бас агуулж байдаг. Холболтын цэг нь үндсэн файл систем уруу (ихэвчлэн эх root файл систем) нэмэлт файлын системүүдийг холбож нэмдэг цэг юм. Энэ тухай цаашид -д тайлбарласан байгаа. Үндсэн холбох цэгүүд нь /usr, /var, /tmp, /mnt, мөн /cdrom сангуудыг агуулж байдаг. Эдгээр сангууд нь голдуу /etc/fstab файлд заагдсан байдаг. /etc/fstab файл нь төрөл бүрийн файл системүүдийг системд ойлгуулах гэж бичсэн хүснэгт бичлэг. /etc/fstab файлд байгаа ихэнх файл системүүд компьютер эхэлж ачаалагдах үед автоматаар &man.rc.8; гүйцэтгэгддэг бичлэгээс таниулагддаг. Гэхдээ хэрэв гэсэн сонголтыг агуулсан бол автоматаар таниулагддаггүй. Дэлгэрэнгүй мэдээлэл хэсэгт буй. Файл системийн бүтцийн тухай бүрэн мэдээллийг &man.hier.7;-с харж болно. Одоохондоо байнга хэрэглэгддэг сангуудыг товч тайлбарлахад хангалттай. Сан Тодорхойлолт / Файл системийн Root буюу хамгийн дээд эх сан. /bin/ Ганц болон олон хэрэглэгчийн орчны үндсэн хэрэгслийн сан. /boot/ Үйлдлийн систем эхлэж ачаалагдах үеийн програмууд болон тохируулга файлууд. /boot/defaults/ Анхдагч ачаалах үеийн тохируулгын файлууд; дэлгэрэнгүйг &man.loader.conf.5; хуудаснаас харна уу. /dev/ Төхөөрөмжүүд байдаг сан; &man.intro.4; хуудаснаас харна уу. /etc/ Системийн тохируулгын файлууд болон гүйцэтгэх бичлэгүүд. /etc/defaults/ Анхдагч системийн тохируулгын файлууд; дэлгэрэнгүйг &man.rc.8; хуудаснаас хараарай. /etc/mail/ &man.sendmail.8; мэтийн захиа илгээгчдийн тохируулгын файлууд. /etc/namedb/ named-н тохируулгын файл; &man.named.8; хуудаснаас дэлгэрэнгүйг харна уу. /etc/periodic/ &man.cron.8;-г ашиглаж өдрөөр, сараар, эсвэл жилээр гэх мэт давтамжаар ажиллаж чаддаг бичлэгүүд ; дэлгэрэнгүйг &man.periodic.8; хуудаснаас харна уу. /etc/ppp/ ppp тохируулга файлууд; &man.ppp.8;-с харна уу. /mnt/ Администратор голдуу түр зуур бусад файл систем эсвэл төхөөрөмжийг таниулахад хэрэглэдэг хоосон сан. /proc/ Процесийн файл систем; &man.procfs.5; болон &man.mount.procfs.8;-с харна уу. /rescue/ Эвдэрч гэмтсэн үед сэргээхэд хэрэглэгддэг програмууд &man.rescue.8;-с харна уу. /root/ root хэрэглэгчийн гэрийн сан. /sbin/ Ганц болон олон хэрэглэгчийн орчинд хэрэглэж болохоор системийн програм ба администраторын үндсэн хэрэгслүүд. /tmp/ Түр зуурын файлууд. /tmp сан доторх файлууд нь систем шинээр ачаалагдах үед хадгалагдалгүйгээр устгагдана. Санах ойгоос ажилладаг файл системүүд голцуу /tmp санд таниулагдаж байрлуулагддаг. Энэ үйлдэл нь &man.rc.conf.5;-тай холбоотой tmpmfs-төрлийг ашиглаж автоматжуулагдаж болдог (эсвэл /etc/fstab дотор буй оруулгууд бүгдээрээ; &man.mdmfs.8;-с харна уу). /usr/ Програм болон хэрэглэгчийн хэрэглэдэг үндсэн хэрэгслүүд. /usr/bin/ Үндсэн хэрэгслүүд, програмын багажууд, мөн програмууд. /usr/include/ Стандарт C-ийн include файлууд. /usr/lib/ Програмын шахаж бэлдсэн багцууд. /usr/libdata/ Төрөл бүрийн хэрэгслийн өгөгдлийн файлууд. /usr/libexec/ Системийн далд чөтгөр буюу дэмон болон системийн хэрэгслүүд (бусад програмаас дуудагдаж ажилладаг). /usr/local/ Дотоод гүйцэтгэгддэг болон програмын сангууд гэх мэт програмууд байдаг. Мөн FreeBSD-н портуудын анхны байрлуулах газар болж өгдөг. /usr/local -ийн доторх нь, &man.hier.7;-аар /usr сангийн дотор байгааг байрлуулсан шиг зохион байгуулагдах хэрэгтэй. Гэхдээ энэнд хамаарахгүй сангууд нь man гэж /usr/local/share сан дотор биш /usr/local дотор байрладаг сан, мөн share/doc/port дотор байдаг портуудын бичиг баримт байдаг сан юм. /usr/obj/ Архитектураасаа хамаараад /usr/src санг хөрвүүлэх үед бүтээгддэг сан.. /usr/ports FreeBSD Портын цуглуулга (сонгомол). /usr/sbin/ Системийн дэмон болон системийн хэрэгслүүд (хэрэглэгчдээр гүйцэтгэгдэнэ). /usr/share/ Архитектуртаа хамаатай файлууд. /usr/src/ BSD болон/эсвэл дотоод эх файлууд. /usr/X11R6/ X11R6 цогцолборын гүйцэтгэж болдог програмууд, програмын сан зэргүүд (сонгомол). /var/ Олон зорилгоор хэрэглэгддэг бүртгэл бичлэг, түр зуурын, дараалал зэргийн файлууд. Санах ойд тулгуурлаж ажилладаг зарим файлын системүүд /var дотор танигдаж үүсгэгддэг. Энэ үйлдэл нь &man.rc.conf.5;-тай холбоотой varmfs-төрлийг ашиглаж автоматжуулагдаж болдог (эсвэл /etc/fstab дотор буй оруулгууд бүгдээрээ; &man.mdmfs.8;-с харна уу). /var/log/ Системийн төрөл бүрийн бүртгэл бичлэгийн файлууд. /var/mail/ Хэрэглэгчийн ирсэн захиаг хадгалах файлууд. /var/spool/ Төрөл бүрийн хэвлэгч болон захианы системийн дарааллыг удирдах сангууд. /var/tmp/ Түр зуурын файлууд. Энэ санд буй файлууд нь голдуу системийг эхлэх үед зориулагдахаар нөөцлөгдсөн байдаг. Гэхдээ, хэрэв /var нь санах ойд тулгуурласан файлын систем бол өмнө хэлсэн зүйл хүчингүй. /var/yp NIS maps. Диск зохион байгуулалт FreeBSD нь файл олохын тулд хэрэглэдэг хамгийн жижиг хэрэгсэл бол файлын нэр юм. Файлын нэрний том болон бага үсэгнүүд нь бас ялгаатай. Энэ нь юу гэсэн үг вэ гэвэл readme.txt болон README.TXT гэсэн хоёр файл нь хоорондоо ялгаатай файл гэсэн үг. FreeBSD нь файлын төрлийг програм, бичиг баримт, эсвэл бусад төрлийн файл байна гэж ялгахын тулд (.txt) гэх мэтийн өргөтгөл хэрэглэдэггүй. Файлууд сан дотор хадгалагддаг. Сан нь зуу зуун файл агуулж болох бөгөөд эсвэл хоосон байж болно. Сан нь сангаа агуулж бас болох ба ингэж сангийн угсарсан модлог бүтэц үүсгэж болно. Ингэвэл та файлуудаа илүү амархан зохицуулах болно. Файл ба сангууд нь / тэмдгийн араас шаардлагатай бол сангуудын нэрийг бичиж өгөгдсөн нэрээрээ хандагдана. Хэрэв танд foo нэртэй сан нь bar санг агуулдаг бөгөөд уг сан дотор readme.txt файл байгаа бол, файлын хандах бүтэн нэр буюу зам нь foo/bar/readme.txt гэж бичигдэнэ. Сан болон файлууд нь файл системд хадгалагддаг. Файл систем болгон хамгийн эхний дээд хэсэгт заавал нэг сан агуулдаг бөгөөд, түүнийг уг файл системийн root сан буюу дээд эх сан гэж нэрлэдэг. Тэгээд энэ эх сан нь цаашаагаа өөр сангуудыг агуулж явдаг. Энэ хүртэл таны уншсан зүйлүүд нь таны бусад мэддэг үйлдлийн системтэй ижил байж магадгүй. Гэхдээ жаахан ялгаанууд бий. Жишээлбэл &ms-dos; үйлдлийн систем нь файл болон санг тусгаарлахдаа \ тэмдэг хэрэглэдэг байхад &macos; үйлдлийн систем нь : тэмдгийг хэрэглэдэг. FreeBSD дискэнд үсэглэж нэр өгдөггүй бөгөөд үсгээр нэр өгөгдсөн файлын замыг хэрэглэдэггүй. Та FreeBSD дээр c:/foo/bar/readme.txt гэж бичиж болохгүй. Харин түүний оронд нэг файл системийг нэг root файл систем гэж ангилдаг. Уг root буюу эх файл системийн эх сан нь / гэж хандагдана. Бусад өөр файл системүүд энэ root буюу эх файл систем дотор холбогддог. Та FreeBSD систем дээрээ хэдэн ч дисктэй байсан, сан болгонууд нь нэг дискний хэсэг мэт харагддаг. Жишээлбэл A, B, мөн C гэсэн гурван файл систем танд байна гэж бодъё. Файл систем бүр нь өөртөө хоёр сан агуулсан тус тусын эх сантай гэж үзье. Тэдгээр сангууд нь дараах нэртэй байг. A1, A2 (гэх мэтчилэн B1, B2 мөн C1, C2). A-г эх сан гэж үзнэ. Хэрэв та ls тушаалаар энэ сангийн дотор байгааг харвал, A1 ба A2 гэсэн хоёр санг та харах болно. Энэ сангийн модлог загвар нь ингэж харагдаж байна: / | +--- A1 | `--- A2 Хэрэв файл систем өөр файл системд холбогдохоор бол, холбогдож байгаа системийнхээ нэг сан дор холбогдоно. Тэгвэл одоо B файл системийг A1 санд холбоно гэж үзье. Тэгвэл B-ийн эх сан нь A1-ээр орлуулагдаж, B доторх файлууд дараах маягаар харагдана: / | +--- A1 | | | +--- B1 | | | `--- B2 | `--- A2 Хэрэв B1 эсвэл B2 сан доторх файлууд шаардлага гаран хандагдахаар бол /A1/B1 эсвэл /A1/B2 гэсэн зам хэрэглэгдэж бичигдэнэ. Хэрэв /A1 дотор файлууд байсан бол тэдгээрийг түр зуур нуудаг. B файл систем A системээс салгагдсан үед л тэр файлууд харагдана. Хэрэв B файл систем A2 дор холбогдсон бол дараах маягаар харагдана: / | +--- A1 | `--- A2 | +--- B1 | `--- B2 мөн файл уруу хандах зам нь /A2/B1 болон /A2/B2 гэж тус тусдаа хандагдах болно. Файл системүүд нэг нэгнийхээ дээр холбогдож болдог. Сүүлийн жишээгээ үргэлжлүүлээд C файл системийг B файл систем доторх B1 сангийн дээд хэсэгт холбож өгвөл дараах зохион байгуулалт үүсэж байна: / | +--- A1 | `--- A2 | +--- B1 | | | +--- C1 | | | `--- C2 | `--- B2 Эсвэл C файл систем A файл систем дотор A1 санд холбогдож болно: / | +--- A1 | | | +--- C1 | | | `--- C2 | `--- A2 | +--- B1 | `--- B2 Хэрэв та &ms-dos; системийг гадарладаг бол энэ нь join тушаалтай төсөөтэй боловч яг адилхан биш. Угтаа бол энэ нь тийм их анхаарлаа хандуулаад байхаар зүйл биш. Ердийн үед та FreeBSD суулгах үедээ нэг файл систем үүсгээд хаана холбохыг нь шийдэж холбоод, шинэ диск нэмэхгүй л бол түүнийгээ хэзээ ч өөрчлөх шаардлага гардаггүй. Өөр файл систем үүсгэлгүйгээр нэг бүхэл эх файл систем үүсгэж болдог. Ийм үед зарим сул талууд гарч ирдэг бөгөөд нэг л давуу тал үүснэ. Олон файл системүүдийн давуу талууд Олон төрлийн файл системүүд нь олон төрлийн холбох нөхцөлтэй. Жишээлбэл, сайн төлөвлөсний дараагаар, эх файл систем нь зөвхөн уншигдахаар холбогдож, ингэснээр санамсаргүй юм уу алдаа ослын шалтгаанаар чухал файлуудыг устгахаас сэргийлж болно. Хэрэглэгчдээр бичигдэж болдог файл систем, жишээ нь /home мэтийн бусад системээс тусгаарлаж nosuid төрлийн гэж холбож болно; энэ сонголт нь файл систем дээр буй гүйцэтгэж болдог файлд suid/guid бит утга тавигдахаас сэргийлж аюулгүй байдлыг хангаж өгдөг. FreeBSD файл систем ямар зорилгоор хэрэглэгдэхээс нь хамаараад файл систем дээр файлын зохион байгуулалтыг автоматаар хийдэг. Тийм болохоор байнга бичигдэж байдаг олон жижигхэн файлуудын байгаа файл систем дээр цөөхөн бичигддэг том файл агуулсан файл системийг бодвол олон бичигдэхэд зориулж арай өөр файлын зохион байгуулалт хийгддэг. Ганц том эх файл системд ийм зохион байгуулалт хийх боломжгүй. FreeBSD-н файл систем нь цахилгаан тэжээлээс огцом салгагдсан үед ч дискний алдаа үүсгэдэггүй найдвартай байдаг. Гэвч маш ноцтой үед цахилгаан тэжээлээс огцом салгагдахад файл системийн бүтэц эвдэрч болзошгүй юм. Өгөгдлүүдээ олон файл системд хувааж байрлуулах нь дараа нь эвдрэлээс буцааж сэргээхэд амар байдаг. Нэг файл системтэй байх үеийн давуу тал Энэ файл систем нь тогтсон хэмжээтэй байдаг. Хэрэв та FreeBSD-ийг суулгах үедээ тодорхой зааж өгсөн файл систем үүсгээд, сүүлд нь түүнийгээ өргөжүүлэхийг хүсвэл, энэ нь тийм амархан биелэхгүй. Та эхлээд байгаа файл системийнхээ файлуудыг нөөцөлж хадгалаад дараа нь файл системдээ шинэ хэмжээ өгч өргөтгөөд дараа нь нөөцөөсөө файлуудаа буцааж сэргээж хадгалах болно. FreeBSD-н &man.growfs.8; тушаал нь дээрх хүндрэлийг алга болгож, файлыг нөөцлөх шаардлагагүйгээр шууд файл системийг өргөтгөж болдог болсон. Дискний хуваалт дотор файл систем оршиж байдаг. &os; нь юниксээс уламжилсан болохоор диск хуваалтын ойлголт нь ердийн хэрэглээтэй ижилхэн биш (жишээлбэл, &ms-dos; диск зохион байгуулалт). Дискний хуваагдал бүр a үсэгнээс эхлээд h хүртэл үсгээр тэмдэглэгддэг. Хуваагдал бүр зөвхөн ганцхан файл систем агуулах ёстой. Ийм болохоор файл систем нь агуулж байгаа диск хуваалтынхаа үсгээр илэрхийлэгдэх бөгөөд хэрэв өөр файл системд холбогдвол, холбосон сан нь уг файл системийг илэрхийлнэ. FreeBSD мөн swap -д зориулж дискэнд зай бэлддэг. Swap хэмжээ нь FreeBSD-н виртуал санах ой юм. Ингэснээр таны компьютер байгаа бодит хэмжээнээсээ илүү санах ой хэрэглэж байгаа мэт ажилладаг. Хэрэв зарим програм FreeBSD дээр ажиллаад санах ойноос хэтрэх хүндрэл гарвал, хэрэглэгдэхгүй байгаа хэсгийг swap зай руу зөөж, шаардлагатай үед буцааж санах ой руу зөөх зарчмаар хэрэглэгддэг. Зарим дискний хуваалт нь тогтсон журамтай байдаг. Хуваалт Тогтсон журам a Ихэнхдээ root файл системийг агуулж байдаг b Ихэнхдээ swap хэмжээг агуулдаг c Ихэнх үед агуулж буй зүсмэлийнхээ хэмжээтэй ижил хэмжээтэй байдаг. Энэ нь ямар нэгэн хэрэгслүүдийг (жишээлбэл, дискний эвдэрсэн хэсгийг шалгагч) c хуваалт дээрх зүсмэл дээр бүхэлд нь ажиллаж болох зөвшөөрөл өгдөг. Ердийн үед та үүн дээр файл систем үүсгэх шаардлага байхгүй. d Урьд нь d хуваалт онцгой үүрэгтэй байсан боловч одоо тийм биш, харин ердийн хуваалт шиг хэрэглэгдэж болно. FreeBSD дээр файл систем агуулж байгаа хуваалтыг зүсмэл гэж нэрлэдэг. Хуваалтын ерөнхий нэр нь FreeBSD дээр зүсмэл гэж яригдах бөгөөд FreeBSD-ийн &unix; гаралд цаад утга учир нь бий. Зүсмэл нь 1 -ээс эхлээд 4 хүртэлх тоогоор дугаарлагдана. зүсмэл хуваалт аюултай зориулалт Зүсмэлийн дугаар нь төхөөрөмжийн нэрний араас s үсгээр эхэлж бичигддэг. Тэгэхээр da0s1 гэдэг нь, эхний SCSI диск дээрх эхний зүсмэлийг илэрхийлж байна. Диск дээр физик чанараараа зөвхөн дөрвөн ширхэг зүсмэл байрлуулж болно. Харин логик зүсмэлийг та физик зүсмэл дотор дурын хэмжээтэй үүсгэж болно. Ингэж өргөтгөж нэмсэн зүсмэлүүд нь 5 гэсэн дугаараар эхэлж цаашаагаа тоологддог. Тэгэхээр ad0s5 гэдэг нь эхний IDE диск дээрх эхний өргөтгөсөн зүсмэлийг хэлж байна. Ингэж өргөтгөсөн зүсмэлүүд нь файл систем агуулж, систем дээр ердийн зүсмэл мэт харагдаж ажиллана. Зүсмэлүүд нь физик диск дээр аюултай зориулалтаар буюу өөрөөp хэлбэл хүчээр байрлуулагддаг. Харин бусад дискнүүд нь a -с эхлээд h хүртэл нэрлэсэн хуваалт агуулж болдог. Эдгээр үсэгнүүд нь төхөөрөмжийн ард залгагдаж бичигддэг ба da0a гэдэг нь эхний da диск дээр байгаа a хуваалтыг илэрхийлж байна. ad1s3e бол хоёр дахь IDE диск дээр байгаа гурав дахь зүсмэлийн тав дахь хуваалтыг илэрхийлж байна. Эцэст нь хэлэхэд, диск болгон системд танигдах ёстой. Дискний нэр нь дискний төрлийг илэрхийлсэн үсгээр эхлээд тэгээд араас нь хэд дэх диск вэ гэдгийг нь илэрхийлсэн дугаартай байдаг. Зүсмэлээс ялгарах зүйл нь, дискний дугаар 0 -ээс эхэлдэг. Ерөнхий хэрэглээний жишээг хүснэгтээс харна уу. Хуваалт уруу хандах үед FreeBSD уг хуваалтыг агуулсан зүсмэл болон дискийг тодорхойлохыг шаарддаг. Тэгээд зүсмэл рүү хандах үед зүсмэлийг агуулсан дискний нэрийг шаардах болно. Тэгэхээр та дискний нэр, s, зүсмэлийн дугаар, тэгээд хуваалтын үсэг гэсэн дарааллаар нэрлэх нь байна. Жишээнүүдийг -д харуулав. Танд ойлгоход тань дөхөм болгож жишээн дээр дискний зохион байгуулалтын тогтсон загварыг харуулж байна. FreeBSD суулгахын тулд та эхлээд дискний зүсмэлийг тохируулна, дараа нь зүсмэл дотор FreeBSD-н хэрэглэх хуваалт үүсгээд, дараа нь хуваалт бүрд файл систем (эсвэл swap зайг) үүсгэж эцэст нь хаана холбогдохыг нь (mount) зааж өгдөг. Диск төхөөрөмжийн нэрнүүд Нэр Утга ad ATAPI (IDE) disk da SCSI direct access disk acd ATAPI (IDE) CDROM cd SCSI CDROM fd Floppy disk
Диск, Зүсмэл, Хуваалтын нэрлэх жишээ Нэр Утга ad0s1a Эхний IDE диск (ad0) дээрх эхний зүсмэлийн (s1) эхний хуваалт (a). da1s2e Хоёр дахь SCSI диск (da1) дээрх хоёр дахь (s2) зүсмэлийн тав дахь (e) хуваалт. Дискний тогтсон загвар Дараах загвар нь системд буй IDE диск FreeBSD дээр хэрхэн харагдаж байгааг харуулж байна. Дискний хэмжээг 4 ГБ-н хэмжээтэй гэж үзээд хоёр ширхэг 2 ГБ зүсмэл байна (нэг зүсмэл дээр нь &ms-dos; хуваалт байгаа). Эхний зүсмэл нь &ms-dos;-н C: диск агуулсан, харин хоёр дахь зүсмэл дээр FreeBSD суугдсан. Энэ жишээн дээр FreeBSD нь гурван өгөгдлийн хуваалт мөн swap хуваалт хэрэглэж байна. Гурван хуваалт нь тус тусдаа файл систем агуулж байгаа. a хуваалт root файл системд зориулагдаж, e хуваалт /var санд, мөн f хуваалт /usr санд тус тус зориулагдсан. .-----------------. --. | | | | DOS / Windows | | : : > First slice, ad0s1 : : | | | | :=================: ==: --. | | | Partition a, mounted as / | | | > referred to as ad0s2a | | | | | :-----------------: ==: | | | | Partition b, used as swap | | | > referred to as ad0s2b | | | | | :-----------------: ==: | Partition c, no | | | Partition e, used as /var > file system, all | | > referred to as ad0s2e | of FreeBSD slice, | | | | ad0s2c :-----------------: ==: | | | | | : : | Partition f, used as /usr | : : > referred to as ad0s2f | : : | | | | | | | | --' | `-----------------' --'
Файл системийг холбох болон салгах Файл систем нь / гэсэн эхээс эхлэн модлог хэлбэрээр маш сайн харагддаг. /dev, /usr, мөн бусад сангууд нь root буюу эх сангаасаа салбарласан салаа мөчир бөгөөд цаашаа уг мөчир нь бас /usr/local гэж салаалах зэргээр өргөжиж салаалж болдог. root файл систем Эдгээр сангуудын заримыг нь өөр файл системд байрлуулах маш олон шалтгаан бий. /var сан нь жишээлбэл log/, spool/, гэх зэрэг янз бүрийн түр зуурын файлуудыг агуулдаг бөгөөд түргэн дүүрэх магадлалтай. Эх сан буюу root файл систем түргэн дүүрнэ гэдэг бол тийм ч сайн юм биш. Тийм болохоор /var санг / сангаас тусад нь өөр газар байрлуулах нь тун хэрэгтэй. Тодорхой хэдэн сангуудыг тусад нь өөр файл систем дээр байрлуулах хүндтэй шалтгаан бол, хэрвээ уг сангууд нь өөр физик диск дээр, тусдаа виртуал диск дээр, Сүлжээний файл систем дээр, эсвэл CDROM дээр байх явдал юм. <filename>fstab</filename> файл файл систем fstab ашиглаж диск холбогдох /etc/fstab файлд жагсаагдсан файл системүүд нь системийн ачаалах явцад автоматаар холбогддог (гэхдээ хэрэв тэдгээр нь сонголт хэрэглээгүй үед). /etc/fstab нь дараах маягийн жагсаалтыг агуулж байдаг: төхөөрөмж /холбох-цэг файл-системийн-төрөл сонголтууд dumpfreq passno төхөөрөмж Төхөөрөмжийн нэр (заавал байх ёстой). хуудсанд тайлбарласан байгаа. mount-point буюу холбох цэг Файл системийг байрлуулах сангийн нэр (заавал байх ёстой). файл-системийн-төрөл &man.mount.8; хуудсанд тайлбарласан байгаа тул алгасав. FreeBSD-н анхдагч файл систем бол ufs. сонголтууд Уншиж бичигдэх файл системийг заасан эсвэл зөвхөн уншигдах файл системд зориулсан сонголт байж болох бөгөөд цаашаагаа мөн нэмэлт сонголтууд агуулж болно. Ердийн сонголт бол бөгөөд ингэснээр систем эхлэх үед уг файл систем холбогддоггүй. Бусад сонголтууд &man.mount.8; гарын авлагад тодорхой бичигдсэн байгаа. dumpfreq Энэ сонголт нь &man.dump.8; хэрэгслээр хэрэглэгддэг бөгөөд аль файл системд нөөц хадгалалт хийх вэ гэдгийг тодорхойлж өгдөг. Хэрэв энэ сонголтыг бичээгүй бол хоосон утгыг агуулж байдаг. passno Энэ сонголтыг ашиглан ямар дарааллаар файл системүүдийг шалгах вэ гэдгийг зааж өгдөг. Шалгалгүйгээр алгасна гэсэн файл системүүд нь passno талбардаа 0 утгатай байх ёстой. root буюу эх файл системийн (энэ файл систем нь хамгийн түрүүнд шалгагддаг) passno талбарын утга нь 1 байдаг бөгөөд бусад системийн passno нь нэгээс их байх ёстой. Хэрэв нэгээс илүү олон файл системүүд passno талбартаа ижил утгатай бол &man.fsck.8; нь тэдгээр файл системийг хэрэв боломжтой зэрэг шалгахыг оролдох болно. /etc/fstab файлын бүтэц болон тохируулдаг сонголтуудын тухай дэлгэрэнгүй мэдээллийг &man.fstab.5; гарын авлагаас харна уу. <command>mount</command> тушаал файл систем mounting буюу файл систем холбох &man.mount.8; тушаал нь файл системийг холбоход хэрэглэгддэг цорын ганц тушаал юм. Таны хамгийн өргөн хэрэглэх хэлбэр бол: &prompt.root; mount төхөөрөмж-буюу-диск холбох-цэг &man.mount.8;-н гарын авлагад зааснаар бол маш олон сонголт байдаг бөгөөд өргөн хэрэглэгддэг нь: Холбох тохируулгууд /etc/fstab файлд жагсааж бичсэн бүх файл системийг холбоно. Гэхдээ noauto гэж тэмдэглэснийг, гэж туг хатгасныг, эсвэл өмнө нь холбогдчихсон файл системүүдийг холбохгүй. Дуудаж ажиллуулж байгаа файл системээсээ бусдад нь дурын үйлдлээ хийнэ. Энэ сонголтыг тугтай хамт хэрэглэж &man.mount.8;-г юу хийж байгааг нь харж болдог. Бохир файл систем (аюултай), эсвэл файл системийн унших-бичигдэх төлвөөс зөвхөн-унших төлөв рүү шилжүүлэн бичих эрхийг хасаж холбох үед хүчээр холбодог. Файл системийг зөвхөн-унших төлвөөр холбоно. Энэ нь сонголтийг утгатай (5.2-с өмнөх үед хэрэглэдэг байсан ) хэрэглэсэнтэй ижил. fstype Өгөгдсөн файл системйиг өгөгдсөн төрлөөр холбоно. Эсвэл сонголт өгөгдсөн бол зөвхөн өгөгдсөн төрлөөр холбоно. ufs нь анхдагч файл систем юм. Файл системд холболтын сонголтыг шинэчилнэ. Болж байгаа үйл явцыг харуулж мэдэгдэнэ. Файл системийг унших-бичих төлвөөр холбоно. сонголт нь дараах зүйлүүдийг таслалаар тусгаарлаж хэрэглэж болно: noexec Энэ нь файл систем дээр хоёрлосон файл буюу ачаалагдаж ажиллаж болдог файл ажиллахыг үл зөвшөөрнө. Энэ нь мөн аюулгүй байдлын зорилгоор хэрэгтэй. nosuid Файл систем дээр setuid эсвэл setgid тугуудыг бүү хэрэглэ. Мөн аюулгүй байдлын шалтгаанаар. <command>umount</command> тушаал файл систем файл систем салгах &man.umount.8; тушаал нь ардаа холбосон цэг, төхөөрөмжийн нэр зэргийг авдаг бөгөөд мөн сонголт эсвэл бас сонголтуудыг авч болдог. Бүх хэлбэрүүд нь сонголтыг хүчээр салгах үед болон сонголтыг явцын мэдээллийг харахад хэрэглэдэг. сонголт нь тийм сайн санаа биш гэдгийг анхааруулмаар байна. Хүчээр файл системийг салгах нь файл эсвэл системийн эвдрэлд хүргэж болзошгүй. болон сонголтууд нь холбогдсон бүх файл системийг салгахад хэрэглэгддэг. Эсвэл мөн сонголтоор өөрчлөгдсөн файл системүүдийг салгахад хэрэглэнэ. Гэхдээ сонголт нь root файл системийг салгах гэж оролддоггүй. Процесс буюу програмын явц FreeBSD бол олон үйлдэл зэрэг хийх чадвартай систем. Энэ нь олон програм нэг дор зэрэг ажиллана гэсэн үг. Програмын тухайн үед ажиллаж байгааг нь процесс буюу програмын явц гэдэг. Таны ажиллуулсан тушаал болгон шинэ процесс эхлүүлдэг бөгөөд систем дээр бүхэлдээ тэр чигээрээ процессууд үргэлж ажиллаж системийн ажиллагааг бүрэлдүүлж байдаг. Програмын явц бүр процесс ID, эсвэл PID гэсэн дугаар агуулж байдаг бөгөөд файлтай бас ижилхэн өөрийн гэсэн эзэмшигч болон бүлэгт харъяалагдаж байдаг. Эзэмшигч ба бүлгийн мэдээлэл нь уг процесс файлд хандах эрхийг нь хэрэглэж файлтай хэрхэн хандах вэ гэдгийг тодорхойлж өгдөг. Ихэнх процесс нь мөн эцэг процесстой байдаг. Эцэг процесс нь тэдгээр процессийг эхлүүлж өгдөг. Жишээлбэл, хэрэв та тушаалуудыг бүрхүүлд бичиж гүйцэтгэвэл, бүрхүүл ч процесс, тушаалууд ч процесс болдог бөгөөд таны бичсэн тушаал болгон процесс болдог. Ийм маягаар ажиллуулаад байвал бүрхүүл нь тэдгээр процессуудын эцэг нь болно. Үүнээс өөр онцгой процесс байдаг ба түүнийг &man.init.8; процесс гэж нэрлэдэг. init бол хамгийн эхний процесс байдаг бөгөөд үүний PID дугаар үргэлж 1 байдаг. FreeBSD эхлэх үед init процесс автоматаар эхэлдэг. Системд гүйцэтгэгдэж байгаа процессуудыг хардаг хоёр тушаал бол &man.ps.1; ба &man.top.1; хоёр юм. ps тушаал нь одоо ажиллаж байгаа процессуудыг PID дугаартай нь харуулж, мөн хичнээн санах ойн хэмжээ хэрэглэж байгаа, ямар тушаалаар гүйцэтгэгдэж байгаа зэргийг нь харуулдаг. top тушаал нь ажиллаж байгаа бүх процессуудыг харуулдаг бөгөөд хэдэн секунд тутамд шинэчлэгдэж байдаг. Ингэснээр таны компьютер тухайн үед юу хийж байгааг харж болно. Анхдагч горимондоо, ps тушаал нь зөвхөн таны эзэмшиж байгаа процессуудыг харуулдаг. Жишээлбэл: &prompt.user; ps PID TT STAT TIME COMMAND 298 p0 Ss 0:01.10 tcsh 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) 37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) 48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi 48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) 72210 p0 R+ 0:00.00 ps 390 p1 Is 0:01.14 tcsh 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y 6688 p3 IWs 0:00.00 tcsh 10735 p4 IWs 0:00.00 tcsh 20256 p5 IWs 0:00.00 tcsh 262 v0 IWs 0:00.00 -tcsh (tcsh) 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish Дээрх жишээнд харуулснаар, &man.ps.1; тушаалын гаралт нь хэд хэдэн баганаар харуулагдаж байна. PID бол өмнө ярьсны дагуу процессийн ID дугаар. PID дугаарууд нь 1 гэж эхлээд 99999 хүртэл дугаарлагддаг бөгөөд хэтрээд ирэхээрээ эхнээсээ эхэлж тоологддог (PID нь ашиглагдаж байгаа бол дахин олгогддоггүй). TT багана нь, уг програмын ажиллаж байгаа tty буюу терминалыг нь харуулдаг бөгөөд одоохондоо хэрэгсэх шаардлага байхгүй. STAT нь програмын төлвийг харуулдаг бөгөөд мөн одоохондоо хэрэгсэхгүй байж болно. TIME нь процессор дээр хэр удаан ажиллаж байгааг нь заадаг бөгөөд гэхдээ энэ нь програм эхэлснээс хойш тооцож эхэлсэн цаг биш. Ихэнх програм нь процессор дээр гүйцэтгэх гэж хэсэг хугацаа зарцуулж хүлээдэг. Эцэст нь, COMMAND нь тухайн програмыг ажиллуулсан тушаалыг харуулдаг. Харуулах мэдээллээ өөрчилж болдог хэд хэдэн нэмэлт сонголт &man.ps.1; тушаалд бий. Байнга хэрэглэгддэг сонголтуудын багц бол auxww юм. сонголт нь зөвхөн өөрийн эзэмшдэг процесс биш харин ажиллаж байгаа бүх процессийг харуулдаг. сонголт нь процессийг эзэмшиж байгаа хэрэглэгчийн нэрийг харуулдаг бөгөөд мөн хэрэглэж байгаа санах ойг нь харуулдаг. сонголт нь далд ажиллаж байгаа буюу дэмон эсэхийг нь харуулдаг. сонголт нь процессуудыг ажиллуулсан тушаалын бүтэн нэрийг нь харуулдаг. Бусад үед, хэрэв тушаалын нэр нь дэлгэцэнд багтахгүй урт байх тохиолдолд хасаж харуулдаг. &man.top.1; тушаалын гаралт нь өмнөх жишээтэй ижилхэн. Жишээ болгож нэг гаралтыг харцгаая: &prompt.user; top last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 47 processes: 1 running, 46 sleeping CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Swap: 256M Total, 38M Used, 217M Free, 15% Inuse PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt ... Тушаалын гаралт хоёр хэсэгт хуваагдсан байна. Толгой хэсэг (эхний таван мөр) нь сүүлд ажиллаж байгаа PID дугаарыг, системийн ачаалалтын дунджууд (энэ нь системийг хэр завгүй байгааг илтгэдэг), системийн асаалттай байгаа хугацаа (унтраалгүй хэр удсан эсэхийг) мөн одоогийн цаг зэргийг харуулдаг. Бусад илэрхийллүүд нь, хичнээн процессууд ажиллаж байгаа (энэ тохиолдолд 47 ), хичнээн санах ойн хэмжээ болон swap хэмжээ хэрэглэгдэж байгаа, мөн хичнээн хугацааг процессорын бусад төлөв байдалд зарцуулсан зэргийг илэрхийлж байна. Доорх баганууд нь &man.ps.1; тушаалтай ойролцоо мэдэгдлүүдийг харуулж байна. Эхлээд PID дугаар дараа нь хэрэглэгчийн нэр, процессороос хэрэглэсэн хугацаа, ажиллуулсан тушаал гэх мэт. &man.top.1; тушаал нь анхдагч тохируулгаараа, процессийн хэрэглэж байгаа санах ойн хэмжээг харуулдаг. Тэр хэсэг нь хоёр баганад харуулагддаг бөгөөд эхнийх нь нийт хэмжээ дараагийх нь тухайн үеийнх нь хэмжээ юм. Нийт хэмжээ гэдэг нь програм ажиллахад хэд хэрэгтэйг хэлдэг бөгөөд тухайн үеийнх нь хэмжээ нь одоогоор хэдийг хэрэглэж байгааг заадаг. Энэ жишээн дээр &netscape; програм бараг 30 МБ хэмжээг RAM санах ойд шаардлагатай гэсэн боловч одоогоор 9 МБ хэмжээ хэрэглэж байна гэж заасан байна. &man.top.1; нь энэ харуулалтыг хоёр секунд тутам шинэчилдэг бөгөөд үүнийг тохируулгаар өөрчилж болно. Далд чөтгөр буюу дэмонууд, дохионууд, мөн процессуудыг зогсоох нь Та хэрэв ямар нэг текст засварлагч дээр ажиллаж байхдаа файл нээх, хаах, хадгалах гэх мэт уг програмыг сайн хянаж чаддаг. Та яагаад тэгж чадаж байна вэ гэвэл, уг програм нь терминал дээр холбогдон ажиллаж танд тийм боломж олгож байгаа билээ. Зарим програм тэгэхэд үргэлж хүн гарнаас оруулалт хийх шаардлагагүй зориулалтаар бүтээгдсэн байдаг бөгөөд хамгийн эхний боломж гарангуут терминалаас салангид ажилладаг. Жишээлбэл вэб серверүүд өдөржин хүмүүсээс ирсэн хүсэлтэд хариулт өгч байдаг бөгөөд ердийн үед танаас оруулга шаарддаггүй. Ийм төрлийн бас нэг програм бол захиа илгээгч програм юм. Бид ийм програмыг далд чөтгөр буюу дэмон гэж нэрлэдэг. Дэмонууд нь Грекийн домогт байдаг сайн муугийн аль нь ч биш бөгөөд жижигхэн мөртлөө хүмүүст хэрэгтэй юм хийж байдаг сүнсийг хэлдэг. Вэб сервер болон захианы серверүүд үүнтэй ижил хүмүүст тустай юм хийдэг. Тийм болохоор BSD нь спорт шаахайтай, жижигхэн, сэрээ барьсан чөтгөрийг олон жилээр дуртайяа өөрийнхөө билэг тэмдэг болгож байгаа билээ. Далд ажиллаж байгаа буюу дэмон болж ажиллаж байгаа програмын нэрний ард d үсэг залгаж бичдэг зарчим бий. BIND програмын бүтэн нэр нь Berkeley Internet Name Daemon бөгөөд үндсэн далд ажилладаг програмын нэр нь named, мөн Apache вэб серверийн далд ажилладаг програмын нэр нь httpd, хэвлэх дарааллыг далд ажиллаж зохицуулж байдаг програмын нэр нь lpd гэх мэт нэртэй байдаг. Энэ нь ерөнхийдөө ингэж зарчим гаргасан болохоос хатуу тогтоосон дүрэм биш; жишээлбэл захиа илгээгч үндсэн програм Sendmail-н далд ажилладаг програмыг та maild гэж төсөөлж байгаа бол эндүүрэх бөгөөд харин sendmail гэж нэрлэдэг. Заримдаа та эдгээр дэмон процессуудтай холбогдож харилцах хэрэг гарна. Ингэх нэг арга нь түүн рүү (эсвэл бусад ажиллаж байгаа процесс уруу) дохио гэгддэг зүйл илгээх явдал юм. Маш олон төрлийн илгээж болох дохионууд байдаг — зарим дохионууд онцгой зориулалттай нийтэд нь хэрэгждэг, зарим нь тухайн програмдаа зориулж өөр өөрөөр хөрвүүлэгддэг бөгөөд програмын заавар дээр ямар дохиог яаж хөрвүүлэн ойлгох вэ гэдгийг заасан байдаг. Та өөрийнхөө эзэмшиж байгаа процесс уруугаа дохио илгээж болно. Хэрэв та бусдын эзэмшдэг процесс уруу &man.kill.1; эсвэл &man.kill.2; гэх зэрэг дохио илгээвэл таны эрх дутаж хэрэгждэггүй. Гэхдээ ийм эрхээр дутагддаггүй хэрэглэгч бол root хэрэглэгч бөгөөд хүн болгоны процесс уруу дохио илгээж чаддаг. Мөн FreeBSD-ээс програм уруу зарим тохиолдолд дохио илгээдэг. Жишээлбэл, хэрэв муу зохиогдсон нэг програм санах ойг зориулсан хэмжээнээсээ илүү хэрэглээд эхэлбэл FreeBSD уг програм уруу Хэсгийн буруу хэрэглээ дохио илгээдэг (SIGSEGV). Мөн хэрэв ямар нэгэн програм нь &man.alarm.3; гэдэг системийн сануулах програмыг ашигласан бол тухайн хугацаа нь хэтрэх үед Сэрүүлэг дохио уг програмд ирэх (SIGALRM) зэрэг олон дохио бий. Процесийг зогсоох хоёр дохио байдаг, SIGTERM ба SIGKILL хоёр. SIGTERM нь арай эелдэг аргаар процессийг зогсоодог; процесс нь эхлээд дохиог хүлээж аваад өөрийг нь хаах гэж байгаад мэдээд нээлттэй байгаа бүртгэл бичлэг файлуудаа хаагаад тэгээд хийж байгаа ерөнхий үйлдлээ зогсоодог. Зарим тохиолдолд уг процесс нь таслагдаж болохооргүй үйлдэл хийж байх үедээ SIGTERM дохиог хэрэгсэхгүй байдал үүсдэг. SIGKILL дохиог ямар ч процесс хэрэгсэхгүй байж чаддаггүй. Өөрөөр хэлбэл энэ нь Чиний юу хийж байх нь надад хамаагүй, одоо шууд зогсоо гэсэн дохио юм. Хэрэв та SIGKILL дохиог процесс уруу илгээвэл FreeBSD уг процессийг зогсоодог Бас тэр чигээрээ үнэн биш—учир нь зарим таслагдаж болдоггүй нөхцлүүд байдаг. Жишээлбэл, хэрэв сүлжээнд байгаа компьютерийн нэг файлаас унших үйлдэл хийж байгаа процесс нь, хэрэв холбогдсон компьютер нь тодорхойгүй шалтгаанаар холбогдохгүй болох үед (цахилгаан тэжээлээс салгагдах, эсвэл сүлжээ эвдрэх), уг процесс нь тасрахгүй нөхцөлд байдаг. Магадгүй хэсэг хугацааны дараа хүлээх хугацаа нь дуусна. Ингэж хүлээх хугацаа нь дууссаны дараа л уг процесс зогсох болно. . Таны хэрэглэж болохоор бусад дохионууд нь SIGHUP, SIGUSR1, мөн SIGUSR2. Эдгээр дохио нь ерөнхий зориулалтаар хэрэглэгддэг бөгөөд эдгээр дохиог хүлээж авсан програмууд тус тусдаа өөр өөр хариу үйлдэл хийдэг. Жишээлбэл, та вэб серверийнхээ тохируулгын файлд өөрчлөлт хийгээд уг серверийг тохируулгын файлаа дахин шинээр уншуулахыг хүссэн гэж бодъё. Та httpd дэмоноо зогсоогоод дахин шинээр эхлүүлж болох боловч ажиллаж байгаа вэб серверийг зогсоож болохгүй нөхцөл байж болно. Ихэнх дэмонууд нь SIGHUP дохиог хүлээж авбал өөрийнхөө тохируулгынхаа файлыг уншина гэж тохируулагдсан байдаг. Тэгэхээр httpd дэмоноо зогсоогоод шинээр ачаалж байхын оронд SIGHUP дохиог илгээхэд хангалттай. Учир нь энэ дохионд тэгж хариулна гэсэн тогтоосон арга зам байхгүй тул дэмон болгон өөр өөр үйлчлэл үзүүлдгийг ойлгож тухайн дэмоны заавар бичгийг нь судлах хэрэгтэй. дохио илгээхдээ &man.kill.1; тушаалыг ашигладаг. Процесс уруу дохио илгээх Энэ жишээ нь &man.inetd.8; уруу хэрхэн дохио илгээхийг харуулах болно. inetd -н тохируулгын файл /etc/inetd.conf гэж байрласан бөгөөд inetd-ийг тохируулгын файлаа дахин уншуулахын тулд SIGHUP дохиог илгээх болно. Илгээх процессийн процесс ID дугаарыг мэдэх хэрэгтэй. Ингэхийн тулд &man.ps.1; ба &man.grep.1; тушаалуудыг ашиглана. &man.grep.1; тушаал нь өмнөх тушаалынхаа гаралтаас хайлт хийхэд хэрэглэгддэг бөгөөд хайх мөрөө зааж өгдөг. Энэ тушаал нь энгийн хэрэглэгчээс гүйцэтгэгдэж болох бөгөөд харин &man.inetd.8; програм нь root хэрэглэгчээр гүйцэтгэгдсэн тул &man.ps.1; тушаалыг сонголттой цуг гүйцэтгэх ёстой. &prompt.user; ps -ax | grep inetd 198 ?? IWs 0:00.00 inetd -wW За тэгэхээр, &man.inetd.8;-ийн PID дугаар нь 198 гэж энэ тохиолдолд хэлж байна. Зарим тохиолдолд grep inetd гэсэн тушаал нь өөрөө энэ гаралтад байж байдаг. Учир нь, &man.ps.1; програм нь уг тушаалыг ажиллуулж байгаа процессийг олсон үед тэгж гаргаж харуулдаг. &man.kill.1; тушаалыг хэрэглэж дохио илгээнэ. &man.inetd.8; нь root хэрэглэгчээр гүйцэтгэгдэж байгаа болохоор, та эхлээд &man.su.1; тушаалыг ашиглан root хэрэглэгч болох хэрэгтэй. &prompt.user; su Password: &prompt.root; /bin/kill -s HUP 198 Ихэнх &unix; системийн тушаалуудын адил, &man.kill.1; тушаал нь хэрэв амжилттай хэрэгжвэл ямар нэгэн төлвийн мэдээлэл харуулдаггүй. Хэрэв та өөрийнхөө эзэмшдэггүй процесс уруу дохио илгээвэл kill: PID: Operation not permitted буюу энэ үйлдлийг хийх эрх байхгүй байна гэсэн мэдэгдэл гарч ирнэ. Хэрэв та PID дугаараа буруу бичих, эсвэл буруу процесс уруу дохио илгээвэл, азгүй тохиолдолд уг дохио нь тухайн процесс уруу илгээгдэх бөгөөд, уг процесс нь азаар байхгүй байгаа тохиолдолд kill: PID: No such process буюу тийм процесс алга байна гэсэн мэдэгдэл гарч ирнэ. Яагаад <command>/bin/kill</command> тушаалыг хэрэглэх хэрэгтэй вэ? Ихэнх shells буюу бүрхүүлүүд kill тушаалыг өөртөө агуулсан байдаг бөгөөд /bin/kill тушаалыг бичихийн оронд шууд бүрхүүлд буй тушаалыг нь гүйцэтгэх нь шулуухан байдаг. Энэ нь амарчилсан ашигтай арга боловч бүрхүүл болгон өөрсдийн илгээх дохионы өөр өөр нэртэй байдгийг мэдэх хэрэгтэй. Тийм болохоор бүрхүүл болгоны дохионы бичлэгийг судлахын оронд шууд /bin/kill ... тушаалыг хэрэглэх нь зөв арга юм. Бусад дохио илгээх үйлдлүүд нь үүнтэй тун ижил бөгөөд TERM эсвэл KILL дохионуудын оронд шаардлагатай дохиогоо бичих хэрэгтэй. Санаанд орсон тоотой дохио болгоныг устгана гэдэг бол буруу санаа юм. &man.init.8; процесс ялангуяа 1 гэсэн процесс ID байх нь онцгой тохиолдол. Тийм болохоор /bin/kill -s KILL 1 гэвэл системийг шууд унтраана. &man.kill.1; тушаалыг гүйцэтгэхээсээ өмнө Return товч дарахынхаа өмнө үргэлж ямар процесс уруу ямар дохио илгээж байгаагаа давхар шалгах хэрэгтэй. Shell буюу бүрхүүл бүрхүүл тушаал өгөх орчин FreeBSD дээр маш олон ажил тушаал бичиж оруулдаг shell буюу бүрхүүл хэмээх орчинд хийгддэг. Бүрхүүлийн гол үүрэг нь гарнаас оруулсан тушаалыг гүйцэтгэх юм. Өдөр болгон гүйцэтгэхэд шаардагддаг файл зохицуулах, тушаал оруулагч мөрийг засварлах, тушаалын багц, орчны хувьсагч зэрэг туслах тушаалуудыг олон бүрхүүлүүд агуулж байдаг. FreeBSD нь sh буюу Bourne Shell, мөн tcsh буюу сайжруулсан C-shell зэрэг багц бүрхүүлүүдтэй хамт ирдэг. zsh болон bash зэрэг маш олон бүрхүүлүүд FreeBSD-ийн портын цуглуулганд ирдэг. Та ямар бүрхүүл хэрэглэдэг вэ? Энэ бол тухайн хүний дур сонирхолтой хамаатай. Хэрэв та C програмын хэл дээр програм бичдэг бол C-тэй адилхан бичигддэг tcsh төрлийн бүрхүүлд дуртай болж болох юм. Хэрэв та Linux системээс ирсэн юм уу эсвэл &unix;-ийн тушаалуудтай дөнгөж танилцаж байгаа шинэ хүн бол bash бүрхүүлээр эхлэх нь амар байж болох юм. Хамгийн гол нь бүрхүүл болгон өөрийн гэсэн онцгой шинж чанартай болохоор өөрийнхөө хүсэл зорилгод тааруулж бүрхүүлээ сонгож дадах нь чухал. Бүрхүүлийн хамгийн энгийн чадвар бол файлын нэрийн автомат гүйцэтгэл юм. Тушаал юм уу файлын эхний хэдхэн үсгийг бичээд гарын Tab товчийг дарахад уг үсгээр эхэлсэн файлын нэрийг танд гүйцээж бичиж өгдөг. Энд нэг жишээ авч үзье. Танд foobar болон foo.bar гэсэн хоёр файл байгаа гэж бодъё. Та foo.bar файлыг устгахыг хүсэв. Тэгвэл та компьютерийнхаа гаран дээр ингэж бичих болно: rm fo[Tab].[Tab]. Бүрхүүл танд ингэж харуулна rm foo[BEEP].bar. [BEEP] гэдэг нь консолоос гаргаж байгаа хонхны дуу бөгөөд ингэж эхэлсэн файлын нэр нэгээс олон байгааг танд мэдэгдэж байгаа юм. foobar болон foo.bar хоёр хоёулаа fo гэж эхэлж байгаа ч гэсэн foo гэж танд дүүргэж өгдөг. Хэрэв та . гэж бичээд Tab дахин дарвал бүрхүүл танд уг хүссэн файлын тань нэрийг гүйцээж өгдөг. орчны хувьсагчид Бүрхүүлийн бас нэг шинж чанар бол орчны хувьсагчийн хэрэглээ юм. Орчны хувьсагч гэдэг нь бүрхүүлийн орчинд хадгалагддаг, нэрэнд утга өгсөн хослол байдаг. Энэ бүрхүүлийн орчин нь уг бүрхүүлээс гүйцэтгэгдэж байгаа бүх програм болон програмын тохируулгад харагдаж байдаг. Байнга хэрэглэгддэг ерөнхий орчны хувьсагчдыг дор жагсааж тайлбарлав: environment variables Хувьсагч Тодорхойлолт USER Холбогдсон байгаа тухайн хэрэглэгчийн нэр. PATH Ачаалагдаж болдог хоёртын файлуудыг агуулдаг сангуудыг таслалаар тусгаарлаж бичсэн жагсаалт. DISPLAY Хэрэв холбогдох боломжтой бол, X11 дэлгэцийн сүлжээгээр холбогдох цэг. SHELL Хэрэглэж байгаа shell буюу бүрхүүл. TERM Хэрэглэгчийн терминалын төрлийн нэр. Терминалын шинж чанарыг тодорхойлоход хэрэглэгддэг. TERMCAP Төрөл бүрийн терминалуудад алгасах ёстой кодуудын өгөгдлийн бааз. OSTYPE Үйлдлийн системийн төрөл. жишээ нь, FreeBSD. MACHTYPE Системийн ажиллаж байгаа процессорын архитектур. EDITOR Хэрэглэгчийн эрхэмлэж хэрэглэгддэг текст засварлагч. PAGER Хэрэглэгчийн эрхэмлэж хэрэглэдэг пэйжер. MANPATH Таслалаар тусгаарлаж жагсаасан, гарын авлагын хуудсуудыг агуулсан хайх сангууд. Bourne shells Бүрхүүл болгонд орчны хувьсагчаа өөр өөр тохируулдаг. Жишээлбэл, C-маягийн бүрхүүл tcsh болон csh дээр, та setenv тушаалыг ашиглаж орчны хувьсагчийг зааж өгдөг. Bourne төрлийн бүрхүүлүүд болох sh болон bash дээр, та export тушаалыг ашиглаж орчны хувьсагчийг зааж өгнө. Жишээ нь, орчны хувьсагч EDITOR-г өөрчлөх юм уу зааж өгөхийн тулд csh юм уу эсвэл tcsh бүрхүүл дээр EDITOR хувьсагчид /usr/local/bin/emacs утгыг өгөхийн тулд: &prompt.user; setenv EDITOR /usr/local/bin/emacs Bourne бүрхүүлүүд дээр: &prompt.user; export EDITOR="/usr/local/bin/emacs" Ихэнх бүрхүүлийн орчны хувьсагчийн утгыг харахын тулд хувьсагчийн нэрний урд $ тэмдгийг хэрэглэж харна. Жишээ нь, echo $TERM гэсэн тушаал нь $TERM хувьсагчид ямар утга байгааг консол дээр харуулна. Учир нь, бүрхүүл $TERM дотор буй утгыг echo тушаалд дамжуулж өгснөөр консол дээр харуулагддаг. Бүрхүүл маш олон тэмдэгтийг тусгай зориулалтаар өгөгдлийг илэрхийлэхдээ хэрэглэдэг бөгөөд тэдгээр тэмдэгтийг мета-тэмдэгтүүд гэж нэрлэдэг. Байнга хэрэглэгддэг тэмдэгтийн нэг нь * юм. Энэ тэмдэгт нь файлын нэрэнд байгаа тэмдэгтүүдийг хэд ч байсан хамаагүй орохыг илэрхийлдэг. Тэдгээр мета-тэмдэгтүүд нь файлын нэрийг орлуулахад байнга хэрэглэгддэг. Жишээлбэл, echo * гэсэн тушаал нь ls тушаалтай ижилхэн үүрэг гүйцэтгэх бөгөөд, яагаад гэвэл бүрхүүл нь * тэмдэгтэд тохирох бүх файлуудыг авч echo тушаал руу дамжуулж харуулдаг. Бүрхүүл дээр мета-тэмдэгтүүдийг хэрэв тухайн онцгой тохиолдлоор нь биш харин зүгээр тэмдэгт хэлбэрээр нь хэрэглэхийг хүсвэл, уг тэмдэгтийн урд ташуу зураасыг (\) бичиж өгдөг. echo $TERM гэсэн тушаал нь ямар терминал заагдсан байгааг харуулна. Харин echo \$TERM тушаал нь ердөө $TERM гэж харуулна. Өөрийнхөө бүрхүүлийг солих Бүрхүүлээ буюу shell-ээ солих хамгийн амархан арга бол chsh тушаалыг хэрэглэх юм. chsh тушаал нь таныг EDITOR орчны хувьсагчид заагдсан засварлагч уруу оруулдаг бөгөөд хэрэв энэ хувьсагчид утга заагдаагүй байвал шууд vi засварлагчийг ажиллуулдаг. Тэгээд та Shell: мөрөнд буй утгыг өөрчилж бүрхүүлээ өөрчилнө. Та мөн chsh тушаалыг сонголттой хэрэглэж болох бөгөөд ингэсэн үед нэмэлт засварлагч нээлгүйгээр шууд бүрхүүлийг өөрчилдөг. Жишээ нь та өөрийнхөө бүрхүүлийг bash бүрхүүлээр солихыг хүсвэл дараа тушаалыг өгөх болно: &prompt.user; chsh -s /usr/local/bin/bash Таны хэрэглэхийг хүсэж байгаа бүрхүүл тань /etc/shells файл дотор заавал байх ёстой. Хэрэв та портын цуглуулгаас бүрхүүл суулгасан бол энэ нь автоматаар хийгдчихдэг. Харин та гар аргаар ямар нэг бүрхүүл суулгавал энэ файлд өөрөө нэмэх хэрэгтэй. Жишээ нь та bash бүрхүүлийг гар аргаар суулгаад /usr/local/bin байршилд байрлуулсан бол дараах тушаалыг өгөх хэрэгтэй: &prompt.root; echo "/usr/local/bin/bash" >> /etc/shells Тэгээд дараа нь chsh тушаалыг хэрэглэх хэрэгтэй. Текст засварлагчид текст засварлагчид засварлагчид FreeBSD дээр текст файлуудыг засварлаж маш олон тохиргоонуудыг хийдэг. Тийм болохоор та текст засварлагч дээр гаршиж сурах нь чухал. FreeBSD нь үндсэн хэдэн засварлагчтай хамт ирдэг бөгөөд портын цуглуулга дээрээ бол олон зуун засварлагчтай. ee засварлагчид ee Хамгийн амархан бөгөөд сурахад хялбар засварлагч бол ee бөгөөд easy editor буюу хялбар засварлагч гэдгийг товчилсон нэр юм. ee-г эхлүүлэхийн тулд тушаал бичих мөрөнд ee файлын-нэр гэж бичих бөгөөд файлын-нэр нь засварлагдах файлын нэр. Жишээ нь, /etc/rc.conf файлыг засварлахын тулд ee /etc/rc.conf гэж бичнэ. ee засварлагч дотроо дээд хэсэгт нь програмыг хэрэглэх заавар нь бичээстэй байдаг. ^ гэсэн тэмдэг нь гарын Ctrl товчийг илэрхийлдэг бөгөөд ^e гэдэг нь Ctrle гэсэн гарын товчлол юм. ee програмаас гарахын тулд Esc товч дараад leave editor буюу засварлагчаас гарна гэдгийг сонгох хэрэгтэй. Хэрэв файлд өөрчлөлт орсон бол гарахаас өмнө хадгалах эсэхийг лавлаж асуух болно. vi засварлагчид vi emacs editors emacs Мөн FreeBSD нь vi гэсэн хүчирхэг засварлагчийг системийн үндсэн хэсэгтэй цуг зөөвөрлөдөг бөгөөд бас Emacs болон vim зэрэг зaсварлагчдыг FreeBSD Портын цуглуулгадаа багтаасан байдаг (editors/emacs болон editors/vim). Эдгээр засварлагчид нь ажиллах хүчин чадвараараа илүү боловч сурахад арай илүү төвөгтэй байдаг. Гэвч та текст файлыг засварлахад маш их хөдөлмөр гаргахаар бол vim эсвэл Emacs програмуудыг сурснаар таны цаг болон хөдөлмөрийг цаашид улам илүү хөнгөвчлөх болно. Төхөөрөмж ба төхөөрөмжийн цэгүүд Төхөөрөмж гэдэг ойлголт нь голдуу системд буй төхөөрөмж болох диск, хэвлэгч, график карт, мөн гар зэрэг ордог. FreeBSD эхэлж ачаалах үедээ, гол чухал таньсан төхөөрөмжүүдээ харуулдаг. Ингэж эхлэхдээ харуулсан бичлэгийг та дахин харахыг хүсвэл /var/run/dmesg.boot файлыг хараарай. Жишээ нь, acd0 гэдэг нь эхний IDE CDROM төхөөрөмж байхад, kbd0 гэдэг нь гарыг илэрхийлж байдаг. &unix; үйлдлийн систем нь эдгээр төхөөрөмж уруу хандахдаа төхөөрөмжийн цэг гэж нэрлэгдэх тусгай файл уруу ханддаг. Эдгээр төхөөрөмжийн цэгүүд нь /dev санд байдаг. Төхөөрөмжийн цэг үүсгэх Хэрэв системд шинэ төхөөрөмж нэмэгдвэл, эсвэл нэмэлт төхөөрөмжид зориулсан шаардлага гарвал шинэ төхөөрөмжийн цэг үүсгэх ёстой. <literal>DEVFS</literal> (DEVice File System буюу төхөөрөмжийн файл систем) Төхөөрөмжийн файл систем буюу DEVFS нь ерөнхий файлын системийн нэрийн талбарын цөм дахь төхөөрөмжийн нэрийн талбарт хандах боломжийг өгдөг. Төхөөрөмжийн цэгийг үүсгэх эсвэл өөрчлөх зэрэг үйлдлийг DEVFS нь бидэнд хийж өгч амар болгож өгдөг. &man.devfs.5; гарын авлагаас нэмэлт мэдээллийг харна уу. Хоёртын хэлбэрүүд &os; яагаад &man.elf.5; хэлбэр хэрэглэдгийг ойлгохын тулд, та ачаалагдаж ажилладаг файлын төрлөөс &unix; дээр ноёлдог гурван хэлбэрийг мэдэх ёстой: &man.a.out.5; &unix;-н хамгийн хуучин бөгөөд сонгодог ачаалагддаг файлын хэлбэр. Энэ нь эхэн хэсэгтээ өөрийнхөө хэлбэрийг таниулах зориулалттай шидэт дугаар агуулж байдаг (&man.a.out.5; хуудаснаас дэлгэрэнгүй мэдээлэл авна уу). Ачаалагдсан үедээ санах ойд гурван хэсэгт хуваагддаг: .text, .data, мөн .bss бөгөөд дээрээс нь хэрэглэгдэх обьектуудыг агуулсан хүснэгт мөн мөрийн хүснэгтийг агуулж байдаг. COFF SVR3 обьект хэлбэр. Толгой хэсэгтээ тодорхой зориулалттай хүснэгт агуулж байдаг. Тийм болохоор зөвхөн .text, .data, болон .bss хэсгүүдээс гадна нэмэлт зүйлс агуулж чадна. &man.elf.5; COFF-н дараагийн үе. Энэ нь олон хэсэг агуулахаас гадна 32-бит эсвэл 64-битийн утга агуулах чадвартай. Нэг муу тал бий: ELF нь тухайн системийн архитектурт зөвхөн ганцхан ABI байгаа гэж авч үздэг. SYSV ертөнц (хамгийн багадаа гурван ABI агуулж байдаг: SVR4, Solaris, SCO) байсаар байхад ингэж авч үзэх нь буруу юм. FreeBSD нь энэ хүндрэлийг, ABI-н мэдээлэл агуулсан ачаалагддаг ELF файлуудыг зохицуулдаг branding хэрэгслийг ашиглаж сайжруулахыг боддог. Нэмэлт мэдээллийг &man.brandelf.1; хуудаснаас харна уу. FreeBSD нь хуучны сонгодог отгоос салбарлаж гарсан тул &man.a.out.5; хэлбэрийг хэрэглэж байсан бөгөөд энэ хэлбэрээ 3.X салбар гарах хүртэл маш олон BSD хувилбартаа ашиглаж байжээ. Хэдийгээр FreeBSD дээр өмнө нь ELF хоёртын хэлбэрийг хөрвүүлж мөн ажиллуулж (цөм дээр ч гэсэн) болдог байсан ч, FreeBSD нь анхнаасаа ELF хэлбэрийг анхдагч хэлбэрээ болгохыг татгалзсан билээ. Яагаад? Учир нь, Линукс систем нь хуваалцдаг кодын сан буюу Shared-Libraries -д зориулсан үсэрч ажилладаг хүснэгт, мөн түүнийг хөгжүүлэгчид болон байгууллагад хүндрэлтэй байдаг шалтгаанаар a.out хэлбэрээс зайлсхийж ELF хэлбэр рүү шилжих гэж нүсэр хүнд хөдөлмөр зарсан юм. ELF хэлбэр нь хуваалцдаг кодын сан буюу Shared-Libraries хүндрэлийг давах боломж олгосон хэрэгслүүдийг санал болгосон бөгөөд тэгээд ч хөгжлийн явцад нэг алхам урд нь явж байгааг бодож мөн нэг хэлбэрээс нөгөө хэлбэрт шилжүүлэх үйл явцад гарах хүнд зардал байсан ч шилжүүлэхээр шийдсэн юм. FreeBSD-н кодын санг хуваалцах зарчим нь Sun-н &sunos; загвартай ижил бөгөөд хэрэглэхэд тун хялбар. Тэгэхээр, яагаад ийм олон хэлбэр байдаг юм бэ? Энэ асуултанд хариулахын тулд хуучны, энгийн ажиллах зарчимтай төхөөрөмж хэрэглэж байсан бүүдгэр өнгөрсөн цаг уруу буцацгаая. Энэ энгийн төхөөрөмж нь энгийн жижигхэн систем дээр л ажиллахыг хүснэ. a.out нь (PDP-11) төрлийн иймэрхүү энгийн систем дээр бүгдийг нь хангаж байлаа. Хүмүүс &unix; системийг ийм энгийн системээс үүсгэсэн болохоор хуучны загвар болох Motorola 68k, VAXen зэрэг системтэй зохицохын тулд a.out хэлбэрийг үлдээсэн юм. Тэгтэл дараа нь нэг сүрхий инженер хөвүүн, зохиогдсон төхөөрөмжийн зарим ажиллах сул талыг нөхөж процессорыг илүү хурдан ажиллуулах хөнгөхөн програм бичжээ. Энэ програм нь шинэ төрлийн архитектурт (тэр үедээ RISC гэж нэрлэгддэг байсан архитектур) зориулан ажиллахаар бичигдсэн болохоор a.out хэлбэр нь энэ төхөөрөмжид тохиромжгүй болон хангахуйц сайн биш болж ирэв. Тийм болохоор энэ шинэ төхөөрөмжтэй илүү үр дүнтэй ажиллахын тулд илүү олон хэлбэрүүд шинэ загварт зориулж зохиогдож байсан бөгөөд хуучин төрөлд бол энгийн a.out төрлийг санал болгож болох юм. COFF, ECOFF мөн өөр илүү хэд хэдэн хэлбэр нь алдаануудаа нөхөн дэс дараалан үүсгэгдсээр ELF хүртэл хөгжжээ. Мөн цаашлаад програмын хэмжээ хэдийгээр ихэссэн ч дискний (мөн санах ойн) хэмжээ харьцангуй бага байсан болохоор хуваалцаж болдог кодын сангийн Shared-Libraries санаа үүссэн юм. Мөн VM системүүд сайн хөгжиж эхлэв. Хэдийгээр эдгээр сайжруулалт болгон a.out хэлбэрийг хэрэглэж байсан ч, шинэ боломжууд үүсэх тоолонд энэ хэлбэрийг хэрэглэхгүй болж ирэх нь улам ихэссэн билээ. Мөн түүнчлэн, санах ойг хэмнэх үүднээс эхлэн ачаалсны дараа өөр тийшээ үсрэх юм уу эсвэл явцын дунд код нэмэгдэж болох загваруудыг хүмүүс сонирхож эхлэв. Програмын хэлүүд улам сайжирч хүмүүс програмын үндсэн хэсгийг автоматжуулсан код хүсэх болжээ. Энэ бүх боломжуудыг биелүүлэх гэж a.out хэлбэрийг маш их олон янзаар яргалсан бөгөөд хэсэгтээ л энэ нь ажилладаг байв. Нэг мэдэхэд a.out хэлбэр нь ихсэж буй бүх хүндрэлийг зохицуулж чадахааргүй бичлэгийн төвөгтэй болон хэрэглэхэд хэцүү байдалд хүрсэн байна. Хэдийгээр энэ хүндрэлүүдийг ELF хэлбэр нь давдаг боловч шилжих явц нь маш хүндрэлтэй байдаг. Тийм болохоор ELF хэлбэр руу шилжих төвөг нь a.out хэлбэрийг хэрэглэх төвгөөс их байвал ELF хэлбэр нь хүлээгдэхээс өөр аргагүй болжээ. Гэвч цаг хугацаа өнгөрсөөр, FreeBSD ба түүний уламжилж гарсан системийн хөрвүүлэх хэрэгсэл нь (ялангуяа ассемблер болон дуудагч буюу loader) хоёр замаар зэрэг хөгжсөөр байв. FreeBSD салаа нь кодын хуваалцдаг санг нэмж мөн зарим алдааг нь залруулсан байна. Үүнийг анх бичсэн GNU-н ард түмэн уг кодоо шинэчилж дахин бичээд янз бүрийн хэлбэрүүдийг нэмж болдог болгоод мөн хөрвүүлэгчээс хамааралгүй хөрвүүлэгддэг болгох зэрэг цааш нь хөгжүүлжээ. Хэдийгээр маш олон хүн FreeBSD дээр хөрвүүлэгчээс хамаарахгүй хөрвүүлэхийг хүссэн боловч FreeBSD-н as болон ld-д зориулсан хуучин кодноос болоод азгүйтжээ. GNU-н шинэ хэрэгслүүд нь (binutils) хөрвүүлэгчээс хамааралгүй, ELF, кодын хуваалцдаг сан, C++ өргөтгөл зэргүүдийг хөрвүүлж чаддаг болжээ. Мөн цаашлаад маш олон байгууллагууд ELF хэлбэртэй хоёртын програмуудыг гаргаж эхэлсэн тул тэдгээрийг хэрэглэхийн тулд FreeBSD уг хэлбэрийг дэмжих нь зөв гэж шийдсэн юм. ELF хэлбэр нь a.out хэлбэрийг бодвол илүү өргөн хүрээтэй бөгөөд үндсэн системийг илүү өргөжүүлдэг. ELF хэрэгслүүд нь маш сайн зохион байгуулагдсан бөгөөд хөрвүүлэгчээс хамаардаггүй болохоор хүмүүсийн хүсэлд яг тохирдог. ELF нь a.out хэлбэрийг бодвол жаахан удаан байж болох боловч үүнийг хэмжиж тодорхойлно гэдэг нь хэцүү билээ. Мөн энэ хоёрыг санах ойд хуудас зохицуулах, эхлэн ажиллах зарчим зэргийг нь харьцуулсан маш олон шинж чанарууд байдаг. Тэдгээр шинж чанарууд нь тийм ч чухал биш бөгөөд энэ нь зөвхөн ялгаа нь билээ. Одоо бол a.out хэлбэр нь GENERIC цөмөөс хасагдсан бөгөөд a.out хэлбэрийг ажиллуулдаг байсан цөм нь хуучны цөмд тооцогдоно. Нэмэлт мэдээлэл олж авах нь Гарын авлага гарын авлага Ихэнх дэлгэрэнгүй мэдээллүүд нь FreeBSD дээр гарын авлага хэлбэрээр оршиж байдаг. Систем дээр ажиллаж байгаа бараг бүх програмууд нь ажиллах болон авдаг шинж чанараа тодорхойлсон товч заавар буюу гарын авлагатай хамт ирдэг. Тийм гарын авлагыг man тушаалаар харна. man тушаалын хэрэглээ нь тун хялбар: &prompt.user; man тушаал тушаал нь судалж уншихыг хүссэн тушаалын нэр байх ёстой. Жишээлбэл ls тушаалын тухай мэдээлэл харахыг хүсвэл: &prompt.user; man ls Гарын авлага нь дотроо дараах хэсгүүдэд дугаарлагдаж хуваагддаг: Хэрэглэгчийн тушаал. Системийн дуудлага болон алдааны дугаар. C програмын хэлний санд байрлах функц нь. Төхөөрөмжийн драйвер. Файлын хэлбэр. Тоглоом болон бусад салбар. Төрөл бүрийн бусад мэдээлэл. Системээс санаа тавьж үйлдэх тушаал. Цөм хөгжүүлэгч. Зарим тохиолдолд гарын авлагын зарим бүлэг нь саяны хуваасан хэсэгт бүрд ижил байдаг. Жишээлбэл chmod тушаалыг хэрэглэгч нэг янзаар хэрэглэж байхад систем бас chmod() тушаалыг өөр зорилгоор хэрэглэдэг. Энэ тохиолдолд та системд аль сэдвээ сонгож байгаагаа ойлгуулахын тулд харгалзах дугаарыг нь өгөх ёстой: &prompt.user; man 1 chmod Энэ тохиолдолд chmod тушаалыг хэрэглэгч яаж дуудаж хэрэглэх тухай харуулна. Гарын авлагын тухайн хэсгийг нь харахын тулд голдуу хаалт дотор тухайн хэсгийн дугаарыг нь бичиж ханддаг. Тэгэхээр &man.chmod.1; гэвэл хэрэглэгчид хамаатай хэсэг нь, &man.chmod.2; гэвэл системд хамаатай хэсэг харуулагдана. Хэрэв та тушаалынхаа нэрийг мэдэж байвал энэ аргаар маш амархан хэрэглэх зааврыг уншиж чадахаар боллоо. Гэтэл та тушаалынхаа нэрийг мэдэхгүй тохиолдолд яах вэ? Энэ үед та man тушаалд тухайн хэрэгтэй тушаалын зааварт хайх түлхүүр үгийг сонголт ашиглан зааж өгч болдог. : &prompt.user; man -k mail Энэ тохиолдолд, заавартаа mail гэдэг үг агуулсан тушаалуудыг жагсааж танд харуулна. Энэ арга нь үндсэндээ apropos тушаалын үүрэгтэй ижил болно. За тэгэхээр, таны /usr/bin санд маш их олон тушаалууд байгааг та мэддэг мөртлөө ямар үйлдэл хийдгийг нь сайн мэдэхгүй тохиолдолд яах вэ? Хамгийн амархан арга бол: &prompt.user; cd /usr/bin &prompt.user; man -f * эсвэл &prompt.user; cd /usr/bin &prompt.user; whatis * энэ хоёр хоёулаа ижилхэн үйлдэл хийдэг. GNU Info файлууд Free Software Foundation FreeBSD нь Free Software Foundation (FSF) буюу Чөлөөт Програмын Сангаас бүтээсэн маш олон програмуудыг агуулж байдаг. Гарын авлага хуудаснаас гадна эдгээр програмууд нь мөн нэмэлт текст загвартай info файл агуулж байдаг бөгөөд уг төрлийн мэдээлэл нь info тушаалаар харуулагддаг. Хэрэв та emacs-г суулгасан бол emacs-н info горимд бас харж болно. &man.info.1; тушаалыг хэрэглэхийн тулд ердөө: &prompt.user; info тушаал Товч тайлбарыг нь харахын тулд h дарна. Тушаалын түргэн зааврыг харахын тулд ? гэж дараарай.
diff --git a/mn_MN.UTF-8/books/handbook/dtrace/chapter.sgml b/mn_MN.UTF-8/books/handbook/dtrace/chapter.sgml index 8e9b935a34..357ec37ee3 100644 --- a/mn_MN.UTF-8/books/handbook/dtrace/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/dtrace/chapter.sgml @@ -1,378 +1,378 @@ Том Рөүдс Бичсэн - DTrace + &dtrace; Ерөнхий агуулга - DTrace + &dtrace; - DTrace support - DTrace + &dtrace; support + &dtrace; - DTrace буюу Dynamic Tracing (Динамик Мөрдөлт) нь + &dtrace; буюу Dynamic Tracing (Динамик Мөрдөлт) нь үйлдвэрлэлд ашиглаж байгаа болон ашиглахын өмнөх системүүдэд үйл ажиллагааны саад тотгоруудыг олоход зориулагдсан &sun;-с хөгжүүлсэн хэрэгсэл юм. Энэ нь ямар ч тохиолдолд дибаг хийгч хэрэгсэл биш боловч үйл ажиллагаа болон бусад асуудлуудыг цаг тухайд нь олох системийн анализ хийхэд зориулагдсан хэрэгсэл юм. - DTrace нь системийн асуудлуудыг оношлоход зориулагдсан + &dtrace; нь системийн асуудлуудыг оношлоход зориулагдсан сэтгэл хөдлөм боломжуудтай гайхамшигтай профиль хийгч хэрэгсэл юм. Энэ нь өөрийн боломжуудыг ашиглахын тулд өмнө нь бичигдсэн скриптүүдийг ажиллуулж бас болдог. Хэрэглэгчид нь тусгай зориулалтаар өөрсдийн профиль - хийлтийг өөрчлөх боломжтой DTrace D хэлийг ашиглан бүр өөрсдийн + хийлтийг өөрчлөх боломжтой &dtrace; D хэлийг ашиглан бүр өөрсдийн хэрэгслүүдийг зохиож болох юм. Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно: - DTrace гэж юу болох ямар ямар боломжуудаар хангадаг талаар. + &dtrace; гэж юу болох ямар ямар боломжуудаар хангадаг талаар. - &solaris;-ийн DTrace шийдэл болон &os;-д байгаа хоёрын хоорондын + &solaris;-ийн &dtrace; шийдэл болон &os;-д байгаа хоёрын хоорондын ялгаанууд. - &os; дээр DTrace-ийг хэрхэн идэвхжүүлж ашиглах талаар. + &os; дээр &dtrace;-ийг хэрхэн идэвхжүүлж ашиглах талаар. Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй: &unix; болон &os;-ийн үндсүүдийг () ойлгох. Цөмийн тохиргоо/эмхэтгэлтийн () үндсийг мэддэг байх. Аюулгүй байдлын талаар болон энэ нь &os;-д хэрхэн хамааралтай байх талаар зарим ойлголттой байх (). &os; эхийг хэрхэн авч дахин бүтээх талаар ойлгох (). Энэ боломж нь туршилтын гэж тооцогддог. Зарим тохиргоонууд ажиллагааны хувьд дутуу, зарим хэсэг нь ерөөсөө ажиллахгүй байж болох юм. Цагийн явцад энэ боломж нь үйлдвэрлэлд ашиглагдахад бэлэн гэж тооцогдох бөгөөд энэ баримт нь тэр тохиолдолд таарахаар өөрчлөгдөх болно. Шийдлийн ялгаанууд - &os; дээрх DTrace нь &solaris;-д байдагтай маш төстэй + &os; дээрх &dtrace; нь &solaris;-д байдагтай маш төстэй боловч цааш үргэлжлүүлэхээсээ өмнө тайлбарлах ёстой ялгаанууд - байдаг. Хэрэглэгчдийн мэдрэх үндсэн ялгаа нь &os; дээр DTrace нь - тусгайлан идэвхжүүлэх ёстой байдаг. DTrace нь зөв ажиллахын + байдаг. Хэрэглэгчдийн мэдрэх үндсэн ялгаа нь &os; дээр &dtrace; нь + тусгайлан идэвхжүүлэх ёстой байдаг. &dtrace; нь зөв ажиллахын тулд идэвхжүүлсэн байх ёстой цөмийн тохиргоонууд болон модулиуд байдаг. Эдгээрийг дараа тайлбарлах болно. CTF өгөгдлийг цөмийн модуль болон цөмөөс өөрөөс нь дуудахад зориулсан дэмжлэгийг идэвхжүүлэх цөмийн DDB_CTF тохиргоо байдаг. CTF нь &solaris;-ийн Compact C Type буюу Шахмал C Төрөл бөгөөд DWARF болон venerable stab-уудтай (хүндтэй хатгалтууд) адил дибаг мэдээллийн багасгасан хэлбэрийг агуулдаг. Энэ CTF өгөгдөл нь ctfconvert болон ctfmerge гэсэн бүтээх хэрэгслүүдээр хоёртын файлуудад нэмэгддэг. ctfconvert хэрэгсэл нь эмхэтгэгчийн үүсгэсэн DWARF дибаг ELF хэсгүүдийг задлан ялгаж ctfmerge нь обьектуудын CTF ELF хэсгүүдийг ажилладаг файлууд юм уу эсвэл хуваалцсан сангууд руу нийлүүлдэг. Цөм болон &os; бүтээлтэд зориулж үүнийг хэрхэн идэвхжүүлэх талаар дэлгэрэнгүй тайлбар удахгүй бичигдэх болно. &solaris;-д байдгаас өөр хангагчид &os;-д байдаг. Хамгийн алдартай нь dtmalloc хангагч бөгөөд &os; цөмд malloc()-ийг төрлөөр нь мөрдөх боломжийг бүрдүүлдэг. - Зөвхөн root DTrace-ийг &os; дээр ашиглаж болно. + Зөвхөн root &dtrace;-ийг &os; дээр ашиглаж болно. Энэ нь аюулгүй байдлын ялгаатай холбоотой бөгөөд &os;-д байдаггүй хэдэн доод түвшний аюулгүй байдлын шалгалтууд &solaris;-д байдаг. Тийм болохоор /dev/dtrace/dtrace нь зөвхөн root хэрэглэгчээр хатуу хязгаарлагдсан байдаг. - Төгсгөлд нь DTrace програм хангамж нь &sun;-ий CDDL + Төгсгөлд нь &dtrace; програм хангамж нь &sun;-ий CDDL лицензийн доор байдаг. Common Development and Distribution License буюу Нийтлэг Хөгжүүлэлт ба Түгээлтийн Лиценз нь &os;-тэй цуг ирдэг бөгөөд /usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE юм уу эсвэл онлайн хэлбэрээр хаягаас харж болно. - Энэ лиценз нь DTrace тохиргоотой &os; цөм нь BSD + Энэ лиценз нь &dtrace; тохиргоотой &os; цөм нь BSD лицензтэй хэвээр гэсэн үг боловч модулиуд нь хоёртын хэлбэрээр түгээгдэх үед юм уу эсвэл хоёртын файлууд дуудагдсан үед CDDL нь хүчин төгөлдөр болдог. - DTrace дэмжлэгийг идэвхжүүлэх + &dtrace; дэмжлэгийг идэвхжүүлэх - DTrace-д зориулсан дэмжлэгийг идэвхжүүлэхийн + &dtrace;-д зориулсан дэмжлэгийг идэвхжүүлэхийн тулд дараах мөрүүдийг цөмийн тохиргооны файлд нэмнэ: options KDTRACE_HOOKS options DDB_CTF AMD64 архитектурын хэрэглэгчид өөрсдийн цөмийн тохиргооны файлдаа дараах мөрийг нэмэхийг хүсэх болно: options KDTRACE_FRAME Энэ тохиргоо нь FBT боломжид зориулсан - дэмжлэгийг хангадаг. DTrace нь энэ тохиргоогүйгээр ажилладаг боловч + дэмжлэгийг хангадаг. &dtrace; нь энэ тохиргоогүйгээр ажилладаг боловч функцийн хязгаарын мөрдөлтөд зориулсан дэмжлэг хязгаарлагдмал байх болно. Бүх эх CTF тохиргоонуудтай дахин бүтээгдэж суулгагдсан байх ёстой. Ингэхийн тул &os;-ийн эхийг доорх тушаалуудыг ашиглан дахин бүтээнэ: &prompt.root; cd /usr/src &prompt.root; make WITH_CTF=1 kernel Системийг дахин ачаалах хэрэгтэй. Дахин ачаалж шинэ цөмийг санах ойд дуудагдсаны дараа Korn бүрхүүлийн - дэмжлэгийг нэмэх хэрэгтэй. DTrace хэрэгслүүд нь ksh + дэмжлэгийг нэмэх хэрэгтэй. &dtrace; хэрэгслүүд нь ksh дээр бичигдсэн хэд хэдэн хэрэгслүүдтэй болохоор энэ нь хэрэгтэй юм. shells/ksh93-г суулгах хэрэгтэй. Эдгээр хэрэгслүүдийг shells/pdksh эсвэл shells/mksh дээр ажиллуулж бас болно. - Төгсгөлд нь одоогийн DTrace хэрэгслүүдийг олж авах хэрэгтэй. Одоогийн + Төгсгөлд нь одоогийн &dtrace; хэрэгслүүдийг олж авах хэрэгтэй. Одоогийн хувилбар нь хаягт байрладаг. Суулгах арга зам цуг байдаг боловч суулгалт нь багцалсан хэрэгслүүдийг ашиглахыг шаарддаггүй. - DTrace-г ашиглах + &dtrace;-г ашиглах - DTrace боломжийг ашиглахаас өмнө DTrace төхөөрөмж байх хэрэгтэй. + &dtrace; боломжийг ашиглахаас өмнө &dtrace; төхөөрөмж байх хэрэгтэй. Төхөөрөмжийг дуудахын тулд дараах тушаалыг ажиллуулна: &prompt.root; kldload dtraceall - DTrace дэмжлэг одоо боломжтой болсон байх ёстой. Бүх шалгалтыг + &dtrace; дэмжлэг одоо боломжтой болсон байх ёстой. Бүх шалгалтыг харахын тулд администратор дараах тушаалыг одоо ажиллуулж болно: &prompt.root; dtrace -l | more Дэлгэцийн буфферийг түргэн дүүргэх болохоор бүх гаралтыг more хэрэгсэл рүү дамжуулдаг. Энд хүрэхэд - DTrace-ийг ажиллаж байна гэж үзнэ. Одоо уг хэрэгслийг шалгаж үзэх + &dtrace;-ийг ажиллаж байна гэж үзнэ. Одоо уг хэрэгслийг шалгаж үзэх цаг боллоо. - Уг хэрэгсэл нь системийн мэдээллийг цуглуулахын тулд DTrace-тэй цуг + Уг хэрэгсэл нь системийн мэдээллийг цуглуулахын тулд &dtrace;-тэй цуг ажиллуулж болох ашиглахад бэлэн скриптүүдийн цуглуулга юм. Нээлттэй файлууд, санах ой,CPU-ийн хэрэглээ болон өөр олон зүйлсийг шалгах скриптүүд байдаг. Скриптүүдийг дараах тушаалаар задалж болно: &prompt.root; gunzip -c DTraceToolkit* | tar xvf - cd ашиглан тэр сан руу өөрчилж жижиг үсгээр бичигдсэн нэртэй бүх файлууд дээр ажиллуулах зөвшөөрлүүдийг 755 руу өөрчлөх хэрэгтэй. Эдгээр бүх скриптүүдийн агуулгад өөрчлөлт хийх хэрэгтэй болно. /usr/bin/ksh гэснийг /usr/local/bin/ksh болгох ёстой бөгөөд /usr/bin/sh-ийг /bin/sh болгон ашиглахаар, төгсгөлд нь /usr/bin/perl/usr/local/bin/perl болгон ашиглахаар болгож өөрчлөх хэрэгтэй. - &os; дээрх DTrace дэмжлэг нь бүрэн бус + &os; дээрх &dtrace; дэмжлэг нь бүрэн бус бөгөөд туршилтын гэдгийг уншигчид сануулах нь ухаалаг болох юм. Эдгээр скриптүүдийн олонхи нь ажиллахгүй бөгөөд тэдгээр нь хэтэрхий &solaris;-д тусгайлан зориулсан эсвэл одоо дэмжигдээгүй байгаа шалгалтуудыг ашигладаг. - Үүнийг бичиж байх үед DTrace хэрэгслийн зөвхөн хоёр скрипт + Үүнийг бичиж байх үед &dtrace; хэрэгслийн зөвхөн хоёр скрипт &os; дээр бүрэн дэмжигдсэн: эдгээр нь hotkernel болон procsystime скриптүүд юм. Эдгээр хоёрыг бид энэ бүлгийн дараагийн хэсгүүдэд авч үзэх болно. hotkernel нь аль функц цөмийн ихэнх хугацааг ашиглаж байгааг илрүүлэхээр хийгдсэн. Хэвийнээр ажиллуулахад энэ нь дараахтай төстэй гаралтыг харуулах болно: &prompt.root; ./hotkernel Sampling... Hit Ctrl-C to end. Системийн администратор процессийг зогсоохын тулд CtrlC товчлуурын хослолыг ашиглах ёстой. Зогсоосны дараа скрипт нь цөмийн функцуудын жагсаалт болон хугацааны мэдээллийг харуулах бөгөөд гаралтыг хугацааны ихэссэн дарааллаар эрэмбэлж харуулна: kernel`_thread_lock_flags 2 0.0% 0xc1097063 2 0.0% kernel`sched_userret 2 0.0% kernel`kern_select 2 0.0% kernel`generic_copyin 3 0.0% kernel`_mtx_assert 3 0.0% kernel`vm_fault 3 0.0% kernel`sopoll_generic 3 0.0% kernel`fixup_filename 4 0.0% kernel`_isitmyx 4 0.0% kernel`find_instance 4 0.0% kernel`_mtx_unlock_flags 5 0.0% kernel`syscall 5 0.0% kernel`DELAY 5 0.0% 0xc108a253 6 0.0% kernel`witness_lock 7 0.0% kernel`read_aux_data_no_wait 7 0.0% kernel`Xint0x80_syscall 7 0.0% kernel`witness_checkorder 7 0.0% kernel`sse2_pagezero 8 0.0% kernel`strncmp 9 0.0% kernel`spinlock_exit 10 0.0% kernel`_mtx_lock_flags 11 0.0% kernel`witness_unlock 15 0.0% kernel`sched_idletd 137 0.3% 0xc10981a5 42139 99.3% Энэ скрипт нь цөмийн модулиудтай бас ажилладаг. Энэ боломжийг ашиглахын тулд скриптийг өгөгдөлтэй ажиллуулах хэрэгтэй: &prompt.root; ./hotkernel -m Sampling... Hit Ctrl-C to end. ^C MODULE COUNT PCNT 0xc107882e 1 0.0% 0xc10e6aa4 1 0.0% 0xc1076983 1 0.0% 0xc109708a 1 0.0% 0xc1075a5d 1 0.0% 0xc1077325 1 0.0% 0xc108a245 1 0.0% 0xc107730d 1 0.0% 0xc1097063 2 0.0% 0xc108a253 73 0.0% kernel 874 0.4% 0xc10981a5 213781 99.6% procsystime скрипт нь өгөгдсөн PID эсвэл процессийн хувьд системийн дуудлагын цагийн хэрэглээг авч хэвлэн харуулдаг. Дараах жишээн дээр /bin/csh-ийн шинэ хуулбар ажиллуулсан. procsystime-ийг ажиллуулсан бөгөөд өөр нэг csh дээр цөөн хэдэн тушаалыг бичтэл энэ нь хүлээх горимд орсон. Энэ тестийн үр дүн энд байна: &prompt.root; ./procsystime -n csh Tracing... Hit Ctrl-C to end... ^C Elapsed Times for processes csh, SYSCALL TIME (ns) getpid 6131 sigreturn 8121 close 19127 fcntl 19959 dup 26955 setpgid 28070 stat 31899 setitimer 40938 wait4 62717 sigaction 67372 sigprocmask 119091 gettimeofday 183710 write 263242 execve 492547 ioctl 770073 vfork 3258923 sigsuspend 6985124 read 3988049784 Энд үзүүлснээр read() системийн дуудлага ихэнх цагийг, getpid() системийн дуудлага хамгийн бага хугацааг ашигласныг наносекундаар харуулж байна. D хэл - DTrace хэрэгсэл нь DTrace-ийн тусгай хэл дээр байдаг олон скриптүүдийг + &dtrace; хэрэгсэл нь &dtrace;-ийн тусгай хэл дээр байдаг олон скриптүүдийг агуулдаг. Энэ хэл нь &sun;-ийн баримтаар D хэл гэгддэг бөгөөд C++ хэлтэй тун төстэй юм. Энэ хэлний талаарх гүнзгий хэлэлцүүлэг нь энэ баримтаас хүрээнээс гадна юм. Энэ нь хаяг дээр дэлгэрэнгүй хэлэлцэгдсэн байдаг. diff --git a/mn_MN.UTF-8/books/handbook/mac/chapter.sgml b/mn_MN.UTF-8/books/handbook/mac/chapter.sgml index e56723336d..cd72f59c98 100644 --- a/mn_MN.UTF-8/books/handbook/mac/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/mac/chapter.sgml @@ -1,2128 +1,2123 @@ Том Рөүдс Бичсэн Цагаанхүүгийн Ганболд Орчуулсан Mandatory Access Control буюу Албадмал Хандалтын хяналт Ерөнхий агуулга MAC Албадмал Хандалтын хяналт MAC &os; 5.X нь &posix;.1e ноорог дээр тулгуурласан TrustedBSD төслийн аюулгүй байдлын шинэ өргөтгөлүүдийг танилцуулсан. Хамгийн чухал аюулгүй байдлын шинэ арга замуудын хоёр нь файлын системийн Access Control Lists буюу Хандалтын Хяналтын Жагсаалтууд (ACL-үүд) болон Mandatory Access Control (MAC) буюу Албадмал Хандалтын Хяналт боломжууд юм. Албадмал Хандалтын Хяналт нь аюулгүй байдлын шинэ бодлогуудыг бий болгож хандалтын хяналтын модулиудыг ачаалах боломжийг олгодог. Зарим нь тухайн үйлчилгээг хатуужуулж системийн нарийн дэд олонлогуудын хамгаалалтуудыг хангадаг. Бусад нь хаяглагдсан, олон талын аюулгүй байдлыг бүх субьект болон обьектуудын хувьд хангадаг байна. Тодорхойлолтын албадмал буюу зайлшгүй шаардлагатай гэж хэлсэн хэсэг нь хяналтуудын албадлагыг администраторууд болон систем хийдэг бөгөөд discretionary access control (DAC, &os; дээрх стандарт файл болон System V IPC зөвшөөрлүүд) буюу тусдаа байх хандалтын хяналтаар хийгддэг шиг хэрэглэгчээр өөрөөр нь хийлгэдэггүй гэсэн үг юм. Энэ бүлэг Mandatory Access Control Framework (MAC Framework) буюу Албадмал Хандалтын Хяналт Тогтолцоо болон залгагдаж болох аюулгүй байдлын бодлогын модулиудын олонлогт анхаарлаа төвлөрүүлж төрөл бүрийн аюулгүй байдлын арга замуудыг идэвхжүүлэх болно. Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно: Одоогоор &os;-д ямар ямар аюулгүй байдлын MAC бодлогын модулиуд орсон болон тэдгээртэй холбоотой арга замуудын талаар. Аюулгүй байдлын MAC бодлогын модулиуд юу шийддэг болон хаяглагдсан болон хаяглагдаагүй бодлогын хоорондын ялгааны талаар. Системийг хэрхэн үр ашигтайгаар MAC тогтолцоог ашиглахаар тохируулах талаар. MAC тогтолцоонд орсон аюулгүй байдлын өөр өөр бодлогын модулиудыг хэрхэн тохируулах талаар. MAC тогтолцоо болон үзүүлсэн жишээнүүдийг ашиглан илүү аюулгүй орчинг хэрхэн бий болгох талаар. Тогтолцоо зөв хийгдсэнийг шалгахын тулд MAC тохиргоог хэрхэн тест хийх талаар. Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй: &unix; болон &os;-ийн үндсүүдийг ойлгосон байх (). Цөмийн тохиргоо/эмхэтгэлийн () үндсүүдтэй танилцсан байх. Аюулгүй байдалтай танилцаж энэ нь &os;-д хэрхэн хамааралтай болохыг мэдэх (). Энд байгаа мэдээллийг буруу ашиглавал системд хандаж чадахгүй болгох, хэрэглэгчдийн доройтол эсвэл X11-ийн хангадаг боломжуудад хандаж чадахгүйд хүргэж болох юм. Хамгийн чухал нь MAC нь системийг бүр мөсөн аюулгүй болгоно гэж найдаж болохгүй юм. MAC тогтолцоо нь байгаа аюулгүй байдлын бодлогыг зөвхөн сайжруулдаг; аюулгүй байдлын сайн практикгүй, байнгын аюулгүй байдлын шалгалтгүйгээр систем хэзээ ч бүрэн аюулгүй байж чадахгүй. Мөн энэ бүлгийн хүрээнд байгаа жишээнүүд нь зөвхөн жишээнүүд гэдгийг тэмдэглэх ёстой юм. Ялангуяа эдгээр тухайлсан тохиргоонуудыг жинхэнэ систем дээр хэрэглэхийг зөвлөдөггүй. Төрөл бүрийн аюулгүй байдлын бодлогын модулиудыг бүтээх нь ихээхэн бодолт болон тест хийхийг шаарддаг. Бүгд хэрхэн яаж ажилладгийг бүрэн ойлгоогүй хүнийн хувьд бүхэл системийг дахин үзэж олон файлууд эсвэл сангуудыг дахин тохируулахад хүргэж болох юм. Юуг хэлэлцэхгүй вэ Энэ бүлэг нь MAC тогтолцоотой холбоотой өргөн хүрээний аюулгүй байдлын асуудлуудыг хамардаг. Шинэ MAC аюулгүй байдлын бодлогын модулиудыг хөгжүүлэх талаар хэлэлцэхгүй болно. MAC тогтолцоонд орсон хэд хэдэн аюулгүй байдлын бодлогын модулиуд нь тусгай онцлогуудтай бөгөөд эдгээр нь тест хийх болон шинэ модуль хөгжүүлэхэд зориулагдсан юм. Эдгээрт &man.mac.test.4;, &man.mac.stub.4; болон &man.mac.none.4; орно. Эдгээр аюулгүй байдлын бодлогын модулиудын талаар болон тэдгээрийн хангадаг төрөл бүрийн арга замуудын талаар дэлгэрэнгүй мэдээллийг гарын авлагын хуудаснуудаас лавлана уу. Энэ бүлэг дэх түлхүүр ухагдахуунууд Энэ бүлгийг уншихаасаа өмнө хэд хэдэн түлхүүр ухагдахуунуудыг тайлбарлах ёстой. Энэ нь учирч болох ямар нэг эндүүрлийг цэгцэлж шинэ ухагдахуунууд болон мэдээллийн огцом танилцуулгаас зайлсхийх болно гэж найдаж байна. compartment буюу тасалгаа: Тасалгаа нь хэрэглэгчдэд системийн тусгай бүрэлдэхүүн хэсгүүдэд хандах хандалтыг өгдөг хуваагдах эсвэл тусгаарлагдах програмууд болон өгөгдлийн олонлог юм. Мөн тасалгаа нь ажлын групп, хэлтэс, төсөл эсвэл сэдэв зэрэг бүлэглэлийг илэрхийлдэг. Тасалгаануудыг ашиглан мэдэх хэрэгтэй аюулгүй байдлын бодлогыг хийж гүйцэтгэх боломжтой байдаг. high water mark буюу өндөр түвшин: Өндөр түвшин бодлого нь өндөр түвшний мэдээлэлд хандах зорилгоор аюулгүй байдлын түвшнүүдийг дээшлүүлэхийг зөвшөөрдөг бодлого юм. Ихэнх тохиолдолд процесс дууссаны дараа анхдагч түвшин сэргээгддэг. Одоогоор &os; MAC тогтолцоо нь үүнд зориулсан бодлогогүй, гэхдээ бүрэн бүтэн байдлын үүднээс тодорхойлолт нь оржээ. integrity буюу бүрэн бүтэн байдал: Бүрэн бүтэн байдал нь түлхүүр ойлголт бөгөөд өгөгдөлд тавигдаж болох итгэмжлэлийн түвшин юм. Өгөгдлийн бүрэн бүтэн байдал дээшлэх тусам тэр өгөгдөлд итгэх чадвар бас дээшилдэг. label буюу хаяг/шошго: Хаяг/шошго нь файлууд, сангууд эсвэл систем дэх бусад зүйлсэд хамааруулж болох аюулгүй байдлын шинж чанар юм. Энэ нь итгэмжлэлийн тамга гэгдэж болно; хаяг/шошго файлд тавигдсан бол тэр файлын аюулгүй байдлын өмчүүдийг тайлбарлах бөгөөд зөвхөн ижил аюулгүй байдлын тохиргоотой файлууд, хэрэглэгчид, эх үүсвэрүүд гэх зэргээс хандалтыг зөвшөөрөх болно. Хаяг/шошгоны утгуудын утга санаа болон тайлбар нь бодлогын тохиргооноос хамаардаг: зарим бодлогууд нь хаяг/шошгыг обьектийн бүрэн бүтэн байдал эсвэл нууцгай байдал гэж ойлгодог бол бусад бодлогууд хаяг/шошгыг хандалт хийхийн тулд дүрмүүдийг агуулахад ашиглаж болох юм. level буюу түвшин: Аюулгүй байдлын шинж чанарын ихэсгэсэн эсвэл багасгасан тохиргоо. Түвшин ихсэх тусам түүний аюулгүй байдал бас дээшилнэ гэж үздэг. low water mark буюу доод түвшин: Доод түвшин нь тийм ч аюулгүй биш мэдээлэлд хандахын тулд аюулгүй байдлын түвшингүүдийг доошлуулахыг зөвшөөрдөг бодлого юм. Ихэнх тохиолдолд процесс дууссаны дараа хэрэглэгчийн анхдагч аюулгүй байдлын түвшин сэргээгддэг. &os;-д үүнийг ашигладаг цорын ганц аюулгүй байдлын бодлогын модуль бол &man.mac.lomac.4; юм. multilabel буюу олон хаяг/шошго: өмч нь ганц хэрэглэгчийн горимд &man.tunefs.8; хэрэгсэл, ачаалалтын үйлдлүүдийн үед эсвэл шинэ файлын систем үүсгэх үед &man.fstab.5; файл ашиглан тохируулж болох файлын системийн тохируулга юм. Энэ тохируулга нь өөр өөр обьектуудад өөр өөр MAC хаяг/шошгонуудыг хамааруулахыг администраторт зөвшөөрөх болно. Энэ тохируулга нь хаяглалтыг дэмждэг аюулгүй байдлын бодлогын модулиудад зөвхөн хамаардаг. object буюу обьект: Обьект буюу системийн обьект нь subject буюу субьектийн удирдлагын доор мэдээлэл дамжин урсдаг тэр мөн чанар юм. Үүнд сангууд, файлууд, талбарууд, дэлгэцүүд, гарууд, санах ой, соронзон хадгалалт, хэвлэгчид эсвэл бусад дурын хадгалалт/хөдлөх төхөөрөмж ордог. Үндсэндээ обьект нь өгөгдлийн чингэлэг эсвэл системийн эх үүсвэр юм; обьектод хандах нь өгөгдөлд хандана гэсэн үг юм. policy буюу бодлого: Зорилгод хэрхэн хүрэхийг тодорхойлох дүрмүүдийн цуглуулга юм. Бодлого нь ихэвчлэн зарим нэг зүйлүүдтэй хэрхэн ажиллахыг баримтжуулдаг. Энэ бүлэг нь сэдэв дахь бодлого гэсэн энэ нэр томъёог аюулгүй байдлын бодлого гэж үзэх болно; өөрөөр хэлбэл өгөгдөл болон мэдээллийн урсгалыг хянах дүрмүүдийн цуглуулга гэж үзэх бөгөөд тэр өгөгдөл болон мэдээлэлд хэн хандалттай байхыг тодорхойлох болно. sensitivity буюу мэдрэмтгий байдал: MLS-ийг хэлэлцэж байх үед ихэвчлэн хэрэглэдэг. Мэдрэмтгий байдлын түвшин нь өгөгдөл ямар чухал эсвэл нууцлаг байх ёстой болохыг тайлбарлахад хэрэглэгддэг нэр томъёо юм. Мэдрэмтгий байдлын түвшин ихсэх тусам нууцгай байдлын чухал ач холбогдол эсвэл өгөгдлийн итгэмжлэгдсэн байдал бас ихэсдэг. single label буюу ганц хаяг/шошго: Ганц хаяг/шошго нь өгөгдлийн урсгалд хандалтын хяналт хийхийн тулд бүхэл файлын систем ганц хаяг/шошгыг хэрэглэх үе юм. тохируулгыг тохируулаагүй ямар ч үед файлын систем үүнийг тохируулсан байхад бүх файлууд нь ижил хаяг/шошгоны тохиргоог дагах болно. subject буюу субьект: субьект нь хэрэглэгч, хэрэглэгчийн процессор, системийн процесс гэх мэт обьектуудийн хооронд мэдээллийг урсгах идэвхтэй мөн чанар юм. &os; дээр энэ нь бараг үргэлж хэрэглэгчийн өмнөөс процессод үйлчилж байгаа thread буюу урсгал байдаг. MAC-ийн тайлбар Энэ бүх шинэ ухагдахуунуудыг санаад MAC тогтолцоо хэрхэн системийн аюулгүй байдлыг ерөнхийд нь нэмэгдүүлдэгийг эргэцүүлье. MAC тогтолцооны хангадаг төрөл бүрийн аюулгүй байдлын модулиуд нь сүлжээ болон файлын системүүдийг хамгаалах, зарим портууд болон сокетуудад хэрэглэгчид хандахыг хаах гэх зэрэгт ашиглагдаж болно. Магадгүй бодлогын модулиудыг ашиглах хамгийн шилдэг арга нь хэд хэдэн аюулгүй байдлын бодлогын модулиудыг нэг зэрэг олон давхаргажсан аюулгүй байдлын орчны хувьд дуудаж тэдгээрийг холих явдал байж болох юм. Олон давхаргажсан аюулгүй байдлын орчинд олон бодлогын модулиуд нь аюулгүй байдлыг шалгаж ажиллаж байдаг. Энэ нь зөвхөн тусгай зориулалтаар ашиглаж байгаа системийн элементүүдийг ихэвчлэн хатуужуулдаг чангатгах бодлогоос өөр юм. Цорын ганц сул тал нь олон файлын системийн хаяг/шошгонууд, сүлжээний хандалтын хяналтыг хэрэглэгч бүр дээр тохируулах гэх мэт тохиолдлуудад удирдлагын хувьд илүү ажилтай байдаг явдал юм. Сул талууд нь тогтолцооны үйлчлэх нөлөөлөлтэй харьцуулахад бага зүйл юм. Жишээ нь тусгайлсан тохиргоонд ямар бодлогууд шаардлагатайг шилж сонгох чадвар нь ажиллагааны хувьд илүү ачааллыг багасгадаг. Хэрэгцээгүй бодлогуудын дэмжлэгийг багасгах нь системийн нийт ажиллагааг нэмэгдүүлэхээс гадна сонголтын уян хатан байдлыг санал болгодог. Сайн шийдэл нь аюулгүй байдлын ерөнхий шаардлагуудыг бодолцож энэ тогтолцооны санал болгодог төрөл бүрийн аюулгүй байдлын модулиудыг үр ашигтайгаар авч хэрэгжүүлдэг. Тиймээс MAC боломжуудыг ашигладаг систем нь хэрэглэгчийн хүссэнээрээ аюулгүй байдлын шинж чанаруудыг өөрчлөх боломжийг хамгийн багаар бодоход зөвшөөрөхгүй байж баталгаажуулах ёстой юм. Хэрэглэгчийн бүх хэрэгслүүд, програмууд болон скриптүүд нь сонгосон аюулгүй байдлын бодлогын модулиудын хандалтын дүрмүүдийн шахалтын доор ажиллах ёстой бөгөөд MAC хандалтын дүрмүүдийн ерөнхий хяналт нь системийн администраторын гарт байдаг байна. Аюулгүй байдлын бодлогын модулиудыг анхааралтай сонгох нь системийн администраторын цорын ганц үүрэг байдаг. Зарим орчнуудын хувьд сүлжээнд хандалтын хяналтыг хязгаарлах хэрэгтэй байдаг. Ийм тохиолдлуудад &man.mac.portacl.4;, &man.mac.ifoff.4; болон бүр &man.mac.biba.4; бодлогын модулиуд зөв эхлэл болж болох юм. Бусад тохиолдлуудад файлын системийн обьектуудын чанд нууцлал/итгэмжлэлийг шаардаж болох юм. Энэ зорилгоор &man.mac.bsdextended.4; болон &man.mac.mls.4; зэрэг бодлогын модулиуд байдаг. Сүлжээний тохиргоон дээр үндэслэн бодлогын шийдвэрүүдийг хийдэг. Магадгүй сүлжээ эсвэл Интернэтэд хандахын тулд &man.ssh.1;-ийн хангадаг боломжуудад зөвхөн зарим нэг хэрэглэгчдийг хандахыг зөвшөөрөх ёстой байж болох юм. Эдгээр тохиолдлуудад &man.mac.portacl.4; нь сонгох бодлогын модуль болох юм. Гэхдээ файлын системүүдийн хувьд юу хийх ёстой вэ? Зарим нэг сангуудад бусад бүлгүүдээс эсвэл тусгай хэрэглэгчдээс хандах бүх хандалтыг чангаруулах ёстой юу? Эсвэл тусгай файлууд уруу хийх хэрэглэгчийн эсвэл хэрэгслийн хандалтыг зарим обьектуудыг нууц гэж тохируулан бид хязгаарлах ёстой юу? Файлын системийн тохиолдолд обьектуудад хандах хандалт нь зарим хэрэглэгчдийн хувьд итгэмжлэгдсэн/нууц, бусдуудын хувьд үгүй байж болох юм. Жишээ нь хөгжүүлэх том багийг хэд хэдэн хөгжүүлэгчдээс тогтох жижиг бүлгүүдэд хувааж болох юм. B төсөл дэх хөгжүүлэгчдийн бичсэн обьектуудад A төсөл дэх хөгжүүлэгчид хандах ёсгүй. Бас тэд C төсөл дэх хөгжүүлэгчдийн үүсгэсэн обьектуудад хандах хэрэгтэй байж болох юм. Ийм тохиолдол харин ч байж болох юм. MAC тогтолцооны өөр өөр аюулгүй байдлын бодлогын модулиудыг ашиглан хэрэглэгчдийг эдгээр бүлгүүдэд хувааж мэдээллийн алдагдлаас айлгүйгээр тохирох талбаруудад хандалтыг өгч болох юм. Тиймээс аюулгүй байдлын бодлогын модуль бүр нь системийн ерөнхий аюулгүй байдлыг сайжруулах өвөрмөц аргатай байдаг. Модулийн сонголтыг хийхдээ аюулгүй байдлын бодлогын хувьд сайн бодож хийх хэрэгтэй. Ихэнх тохиолдлуудад ерөнхий бодлогыг дахин харж сайжруулан систем дээр дахин хэрэгжүүлэх хэрэгтэй байж болох юм. MAC тогтолцооны санал болгодог өөр өөр аюулгүй байдлын бодлогын модулиудыг ойлгох нь администраторуудад өөр өөрсдийн нөхцөлдөө тохируулан хамгийн шилдэг бодлогуудыг сонгоход туслах болно. &os;-ийн анхдагч цөм нь MAC тогтолцоонд зориулсан тохируулгагүй байдаг, тиймээс энэ бүлэгт байгаа жишээнүүд эсвэл мэдээллийг туршихаасаа өмнө дараах цөмийн тохируулгыг нэмэх ёстой: options MAC Тэгээд цөмийг дахин бүтээж суулгах шаардлагатай болно. MAC бодлогын модулиудын төрөл бүрийн гарын авлагын хуудаснууд нь тэдгээрийг цөмд оруулан бүтээсэн гэж мэдэгддэг боловч системийг сүлжээнээс гаргаж түгжих зэрэг олон боломжтой байдаг. MAC-ийг хэрэгжүүлэх нь галт ханыг хэрэгжүүлэхтэй бараг адил бөгөөд системээс бүр мөсөн гарч түгжигдэхээс сэргийлэхийн тулд анхааралтай байх ёстой. Өмнөх тохиргоондоо эргэж буцааж болдог байх чадварыг бодолцох ёстой бөгөөд MAC шийдлийг алсаас хийхдээ маш болгоомжтой хийх хэрэгтэй юм. MAC хаяг/шошгонуудыг ойлгох нь MAC хаяг/шошго нь системийн турш нэлэнхүйд нь субьектууд болон обьектуудад өгч болох аюулгүй байдлын шинж чанар юм. Хаяг/шошгыг тохируулах үед хэрэглэгч үүнийг яг юу болох, юу хийгдэхийг ойлгож чадаж байх ёстой. Обьект дээр байдаг шинж чанарууд нь бодлогын модуль дуудагдсан болон бодлогын модулиуд тэдгээрийн шинж чанаруудыг өөр аргаар ойлгуулдгаас хамаарна. Дутуу ойлгосноос эсвэл утга санаануудыг нь ойлгох чадваргүй байдлаас болоод буруу тохируулсан бол үр дүн нь тааж болшгүй байх бөгөөд магадгүй системийн хүсээгүй ажиллагаанд хүргэж болох юм. Обьект дээрх аюулгүй байдлын хаяг/шошго нь бодлогын гаргах аюулгүй байдлын хандалтын хяналтын шийдвэрийн хэсэг болон хэрэглэгддэг. Зарим бодлогуудад хаяг/шошго нь өөрөө шийдвэр гаргахад шаардлагатай бүх мэдээллийг агуулдаг; бусад загваруудад хаяг/шошгонууд нь илүү том дүрмийн олонлогийн хэсэг болон процесс хийгдэж болох юм. Гэх мэт олныг дурдаж болно. Жишээ нь файл дээр biba/low гэж хаяг/шошгыг тохируулах нь Biba аюулгүй байдлын бодлогын модулиар хангагдаж байдаг хаяг/шошгыг low гэсэн утгатайгаар илэрхийлж байна гэсэн үг юм. &os;-д хаяглалтын боломжийг дэмждэг цөөн бодлогын модулиуд нь урьдчилан тодорхойлсон тусгай гурван хаяг/шошгыг санал болгодог. Эдгээр нь low буюу доод, high буюу өндөр болон equal буюу тэнцүү гэсэн хаяг/шошгууд юм. Тэдгээр нь хандалтын хяналтыг бодлогын модуль бүртэй өөр өөрөөр хийдэг боловч low хаяг/шошго нь хамгийн доод тохиргоо болох ба equal хаяг/шошго нь субьект эсвэл обьектийг хаах эсвэл хамаарахгүй гэж тохируулах бөгөөд high хаяг/шошго нь Biba болон MLS бодлогын модулиудад байх хамгийн дээд тохиргоог хийх болно. Ганц хаяг/шошго бүхий файлын системийн орчинд обьектууд дээр зөвхөн нэг хаяг/шошго хэрэглэгдэх болно. Энэ нь хандалтын зөвшөөрлүүдийн нэг олонлогийг бүхэл бүтэн системийн дагуу ашиглах бөгөөд олон орчны хувьд энэ нь хангалттай байж болох юм. Файлын систем дэх обьектууд эсвэл субьектууд дээр олон хаяг/шошгонууд тавих цөөн тохиолдлууд байдаг. Ийм тохиолдолд тохируулгыг &man.tunefs.8; уруу дамжуулж өгч болох юм. Biba болон MLS-ийн хувьд тоон хаяг/шошгыг шаталсан хяналтын тодорхой түвшинг заахын тулд тохируулж болно. Энэ тоон түвшин нь мэдээллийг ангиллын өөр өөр бүлгүүдэд хуваах буюу эрэмбэлж тэр бүлэг эсвэл илүү өндөр бүлгийн түвшинд хандах хандалтыг зөвхөн зөвшөөрөхөд хэрэглэгддэг. Ихэнх тохиолдлуудад администратор нь файлын системийн дагуу хэрэглэхийн тулд зөвхөн ганц хаяг/шошгыг тохируулдаг. Хөөе хүлээгээрэй, энэ нь DAC-тай адил юм байна! MAC нь хяналтыг зөвхөн администраторт өгдөг гэж бодсон. Энэ өгүүлбэр нь зарим талаараа үнэн хэвээр байгаа, учир нь root хэрэглэгчид хяналт байгаа бөгөөд тэрээр хэрэглэгчдийг тохирох зэрэглэл/хандалтын түвшингүүдэд байрлуулахаар бодлогуудыг тохируулдаг. Харамсалтай нь бодлогын олон модулиуд нь root хэрэглэгчийг бас хязгаарлаж чадна. Обьектууд дээрх үндсэн хяналт нь тэгээд бүлэгт суллагдах боловч root нь тохиргоонуудыг ямар ч үед буцааж эсвэл өөрчилж болох юм. Энэ нь Biba болон MLS зэрэг бодлогуудын хамардаг шаталсан/цэвэрлэгээ загвар юм. Хаяг/шошгоны тохиргоо Хаяг/шошгоны бодлогын модулийн тохиргооны бараг л бүх зүйлсийг үндсэн системийн хэрэгслүүдийг ашиглан гүйцэтгэдэг. Эдгээр тушаалууд нь обьект эсвэл субьектийн тохиргоо эсвэл тохиргооны удирдлага болон шалгалтын хувьд энгийн интерфэйсээр хангадаг. Бүх тохиргоог &man.setfmac.8; болон &man.setpmac.8; хэрэгслүүдийг ашиглан хийнэ. setfmac тушаал нь системийн обьектууд дээр MAC хаяг/шошгонуудыг тохируулахад хэрэглэгддэг бол setpmac тушаал нь системийн субьектууд дээр хаяг/шошгонуудыг тохируулахад хэрэглэгддэг. Дараах тушаалыг ажиглаарай: &prompt.root; setfmac biba/high test Дээрх тушаалыг ажиллуулсны дараа хэрэв ямар ч алдаа гараагүй бол хүлээх мөр буцаагдах болно. Эдгээр тушаалууд нь хөдөлгөөнгүй биш байх цорын ганц үе нь алдаа гарах үе юм; &man.chmod.1; болон &man.chown.8; тушаалуудтай адил юм. Зарим тохиолдолд энэ алдаа нь Permission denied гэсэн байж болох бөгөөд энэ нь ихэвчлэн хязгаарласан обьект дээр хаяг/шошгыг тохируулах буюу засах үед гардаг.Өөр бусад нөхцлүүд бас өөр амжилтгүйтлүүдийг бий болгож болох юм. Жишээ нь хэрэглэгч обьектийг дахин хаяглахыг оролдоход файл нь түүний эзэмшээгүй файл байж болох юм. Энэ обьект нь байхгүй юм уу эсвэл зөвхөн уншигдахаар байж болох юм. Албадмал бодлого нь файлыг процесс дахин хаяглахыг зөвшөөрөхгүй, энэ нь магадгүй файлын өмч, процессийн өмч эсвэл санал болгосон шинэ хаяг/шошгоны утгын өмчөөс болсон байж болох юм. Жишээ нь: доод бүрэн бүтэн байдалд ажиллаж байгаа хэрэглэгч өндөр бүрэн бүтэн байдлын файлын хаяг/шошгыг өөрчлөхөөр оролджээ. Эсвэл магадгүй доод бүрэн бүтэн байдалд ажиллаж байгаа хэрэглэгч доод бүрэн бүтэн байдлын файлын хаяг/шошгыг дээд бүрэн бүтэн байдлын хаяг/шошго уруу өөрчлөхөөр оролджээ. Системийн администратор үүнийг давж гарахын тулд дараах тушаалуудыг ашиглаж болно: &prompt.root; setfmac biba/high test Permission denied &prompt.root; setpmac biba/low setfmac biba/high test &prompt.root; getfmac test test: biba/high Дээрхээс харахад ажиллуулсан процессод өөр хаяг/шошго зааж бодлогын модулийн тохиргоонуудыг өөрчлөхөд setpmac тушаалыг хэрэглэж болох юм байна. getpmac хэрэгсэл нь ихэвчлэн тухайн үед ажиллаж байгаа sendmail зэрэг процессуудад хэрэглэгддэг. Хэдийгээр энэ нь тушаалын оронд процессийн ID-г авдаг боловч логик нь туйлын төстэй юм. Хэрэв хэрэглэгчид өөрийн хандалтад байхгүй файлыг удирдахыг оролдвол дуудагдсан бодлогын модулиудын дүрмүүдээс болоод Operation not permitted алдаа mac_set_link функцээр харуулагдах болно. Нийтлэг хаяг/шошгоны төрлүүд &man.mac.biba.4;, &man.mac.mls.4; болон &man.mac.lomac.4; бодлогын модулиудын хувьд энгийн хаяг/шошгонуудыг зааж өгөх боломж олгогдсон байдаг. Эдгээр нь high буюу өндөр/дээд, equal буюу тэнцүү болон low буюу доод гэсэн хэлбэрийг авах бөгөөд эдгээр хаяг/шошгонуудын юу хангадаг талаар товч тайлбарыг доор дурдав: low хаяг/шошго нь обьект эсвэл субьектийн авч болох хамгийн доод хаяг/шошгоны тохиргоо гэгддэг. Үүнийг обьектууд эсвэл субьектууд дээр тохируулах нь өндөр гэж тэмдэглэгдсэн обьектууд эсвэл субьектууд уруу хандах тэдгээрийн хандалтыг хаах болно. equal хаяг/шошго нь бодлогоос чөлөөлөгдөх обьектууд дээр зөвхөн тавигдах ёстой. high хаяг/шошго нь обьект эсвэл субьектэд хамгийн их боломжит тохиргоог зөвшөөрдөг. Бодлогын модуль бүрийн хувьд тэдгээр тохиргоо бүр өөр өөр мэдээллийн урсгалын зааврыг хийх болно. Тохирох гарын авлагын хуудаснуудыг унших нь эдгээр ерөнхий хаяг/шошгоны тохиргоонуудын төрх байдлыг цаашид тайлбарлах болно. Хаяг/шошгоны илүү нарийн тохиргоо Тоон зэргээр илэрхийлсэн хаяг/шошгонууд нь comparison:compartment+compartment буюу харьцуулалт:тасалгаа+тасалгаа гэсэнд зориулагдаж хэрэглэгддэг, тиймээс дараах нь: biba/10:2+3+6(5:2+3-20:2+3+4+5+6) Ингэж тайлбарлагдаж болно: Biba Бодлогын Хаяг/Шошго/Зэрэг 10 :Тасалгаанууд 2, 3 болон 6: (зэрэг 5 ...) Энэ жишээн дээр эхний зэрэг нь эффектив тасалгаануудтай эффектив зэрэг гэж тооцогддог, хоёр дахь зэрэг нь доод зэрэг бөгөөд хамгийн сүүлийнх нь өндөр зэрэг юм. Ихэнх тохиргоонуудад эдгээр тохируулгуудыг ашигладаггүй, харин тэдгээрийг илүү нарийн тохиргоонд зориулж санал болгодог. Системийн обьектуудад хамааруулахад тэдгээр нь системийн субьектуудтай харьцуулах юм бол зөвхөн тухайн үеийн зэрэг/тасалгаануудтай байдаг. Системийн субьектууд нь систем болон сүлжээний интерфэйсүүдэд байгаа эрхүүдийн хүрээг тусгадаг. Сүлжээний интерфэйсүүд дээр хандалтын хяналтын хувьд хаяг/шошгонууд нь ашиглагддаг. Субьект болон обьект хослол дахь зэрэг болон тасалгаанууд нь давамгайлал гэгддэг харилцааг бүтээхэд хэрэглэгддэг. Энэ харилцаанд субьект нь обьектийг давамгайлдаг, эсвэл обьект нь субьектийг давамгайлдаг, эсвэл аль нэг нь нөгөөгөө давамгайлахгүй, эсвэл хоёулаа нэг нэгнийгээ давамгайлдаг. хоёулаа давамгайлах тохиолдол нь хоёр хаяг/шошго тэнцүү байхад тохиолддог. Biba-ийн мэдээллийн урсгалын мөн чанараас болоод төсөлд тохирох мэдэх хэрэгтэй тасалгаануудын олонлогийн эрхүүд танд байдаг. Гэхдээ обьектууд нь бас тасалгаануудын олонлогтой байна. Хэрэглэгчид нь өөрсдөө хязгаарлалтгүй байдаг тасалгаа дахь обьектуудад хандахын тулд su эсвэл setpmac тушаалуудыг ашиглан өөрсдийнхөө эрхүүдийг дэд эрхүүд болгож болох юм. Хэрэглэгчид болон хаяг/шошгоны тохиргоонууд Хэрэглэгчдийн өөрсдийнх нь файлууд болон процессууд систем дээр тодорхойлсон аюулгүй байдлын бодлоготой зөв харилцан ажилладаг байхын тулд хэрэглэгчид нь өөрсдөө хаяг/шошгонуудтай байх шаардлагатай байдаг. Үүнийг login.conf файлд нэвтрэлтийн ангиллуудыг ашиглан тохируулдаг. Хаяг/шошгонуудыг ашигладаг бодлогын модуль бүр хэрэглэгчийн ангиллын тохиргоог хийх болно. Бодлогын модуль бүрийн тохиргоог агуулах жишээ оруулгыг доор үзүүлэв: default:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\ :manpath=/usr/share/man /usr/local/man:\ :nologin=/usr/sbin/nologin:\ :cputime=1h30m:\ :datasize=8M:\ :vmemoryuse=100M:\ :stacksize=2M:\ :memorylocked=4M:\ :memoryuse=8M:\ :filesize=8M:\ :coredumpsize=8M:\ :openfiles=24:\ :maxproc=32:\ :priority=0:\ :requirehome:\ :passwordtime=91d:\ :umask=022:\ :ignoretime@:\ :label=partition/13,mls/5,biba/10(5-15),lomac/10[2]: label тохируулга нь хэрэглэгчийн ангиллын MAC-ийн үйлчлэх анхдагч хаяг/шошгыг тохируулахад хэрэглэгддэг. Хэрэглэгчид энэ утгыг өөрчлөх зөвшөөрөл хэзээ ч өгөгдөхгүй учраас энэ нь хэрэглэгчийн хувьд сонгох боломжгүй юм. Гэхдээ жинхэнэ тохиргоон дээр администратор нь бодлогын модуль бүрийг идэвхжүүлэхийг хэзээ ч хүсэхгүй. Энэ тохиргоонуудаас аль нэгийг нь хийж гүйцэтгэхээсээ өмнө энэ бүлгийн үлдсэнийг дахин шалгаж уншихыг зөвлөж байна. Хэрэглэгчид нь эхний нэвтрэлтийнхээ дараа өөрсдийн хаяг/шошгыг өөрчилж болох юм. Гэхдээ энэ өөрчлөлт нь бодлогын шахалтуудын эрхшээлд байдаг. Дээрх жишээ нь процессийн хамгийн бага бүрэн бүтэн байдлыг 5, түүний хамгийн их утга нь 15, гэхдээ анхдагч эффектив хаяг/шошго нь 10 гэж Biba бодлогод хэлж байна. Процесс нь магадгүй хэрэглэгч setpmac тушаалыг ажиллуулснаас болоод хаяг/шошгоо өөрчлөхөөр сонгох хүртэл 10 дээр ажиллах болно. setpmac тушаал нь нэвтрэлтийн үед хүрээг тохируулах Biba-ийн шахалтад байх болно. Бүх тохиолдлуудад login.conf-д өөрчлөлт хийсний дараа нэвтрэлтийн ангиллын боломжийн мэдээллийн баазыг cap_mkdb тушаал ашиглан дахин бүтээх ёстой бөгөөд энэ нь ойртож байгаа жишээ эсвэл хэлэлцүүлэг бүрт тусгагдах болно. Олон сайтууд нь хэд хэдэн өөр өөр хэрэглэгчийн ангиллуудыг шаарддаг ялангуяа асар их тооны хэрэглэгчидтэй байж болохыг тэмдэглэх хэрэгтэй юм. Маш сайн төлөвлөх хэрэгтэй бөгөөд удирдахад туйлын хэцүү болж болох юм. &os;-ийн ирээдүйн хувилбарууд нь хэрэглэгчдийг хаяг/шошгонуудад тааруулахдаа шинэ аргыг оруулах болно, гэхдээ энэ нь &os; 5.3-аас хойш хэсэг хугацаа өнгөртөл бэлэн болохгүй юм. Сүлжээний интерфэйсүүд болон хаяг/шошгоны тохиргоонууд Хаяг/шошгонууд нь сүлжээний дагуух өгөгдлийн урсгалыг хянахад туслах зорилгоор сүлжээний интерфэйсүүд дээр бас тавигдаж болно. Бүх тохиолдолд тэдгээр нь бодлогууд обьектуудад үйлчилдэг шигээр үйлчилдэг. biba дээрх өндөр тохиргоонуудтай хэрэглэгчдийг жишээ нь доод хаяг/шошготой сүлжээний интерфэйсүүдэд хандахыг зөвшөөрдөггүй. Сүлжээний интерфэйсүүд дээр MAC хаяг/шошгыг тохируулахдаа тохируулгыг ifconfig тушаал уруу өгч болох юм. Жишээ нь: &prompt.root; ifconfig bge0 maclabel biba/equal тушаал нь biba/equal-ийн MAC хаяг/шошгыг &man.bge.4; интерфэйс дээр тохируулах болно. biba/high(low-high)-тай төстэй тохиргоог ашиглаж байх үед бүх хаяг/шошгыг тэр чигээр нь хаалтанд ("") хийх ёстой, тэгэхгүй бол алдаа буцаагдах болно. Хаяглалтыг дэмждэг бодлогын модуль бүр тааруулах боломжтой хувьсагчтай байдаг бөгөөд тэдгээрийг сүлжээний интерфэйсүүд дээр MAC хаяг/шошгыг хаахдаа хэрэглэж болох юм. Хаяг/шошгыг буюу тэнцүү гэж тохируулах нь ижил нөлөөлөлтэй байх болно. Тэдгээр тааруулах боломжтой хувьсагчуудын хувьд sysctl-ийн тушаалын гаралт, бодлогын гарын авлагын хуудаснууд эсвэл бүр энэ бүлгийн үлдсэн хэсэг дэх мэдээллийг дахин үзээрэй. Ганц хаяг/шошго уу эсвэл олон хаяг/шошго уу? Анхдагчаар систем нь тохируулгыг ашиглах болно. Гэхдээ энэ нь администраторт юу гэж ойлгогдох вэ? Хэд хэдэн ялгаанууд байдаг бөгөөд тэдгээр нь системийн аюулгүй байдлын загварт уян хатан чанарын хувьд давуу болон сул талуудыг үзүүлдэг. нь зөвхөн нэг хаяг/шошгоны хувьд зөвшөөрөх бөгөөд жишээлбэл biba/high-ийг субьект эсвэл обьект бүрийн хувьд ашиглах юм. Энэ нь удирдлагын хувьд бага ажиллагааг өгдөг боловч хаяглалтыг дэмждэг бодлогуудын уян хатан чанарыг бууруулдаг. Олон администраторууд өөрсдийн аюулгүй байдлын бодлогодоо тохируулгыг ашиглахыг хүсэж болох юм. тохируулга нь субьект эсвэл обьект бүрийг хуваалтад зөвхөн нэг хаяг/шошгыг зөвшөөрөх стандарт тохируулгын оронд өөрийн гэсэн тусдаа MAC хаягтай байхыг зөвшөөрөх болно. болон хаяг/шошгоны тохируулгууд нь Biba, Lomac, MLS болон SEBSD зэрэг хаяглалтын боломжийг хийж гүйцэтгэдэг бодлогуудад зөвхөн шаардлагатай байдаг. Ихэнх тохиолдолд -ийг тохируулах ерөөсөө хэрэггүй байж болох юм. Дараах тохиолдол болон аюулгүй байдлын загварыг авч үзье: MAC тогтолцоо болон төрөл бүрийн бодлогуудын холимгийг ашигладаг &os; вэб сервер. Энэ машин нь зөвхөн нэг хаяг/шошго biba/high-ийг системийн бүх юмандаа шаарддаг. Энд ганц хаяг/шошго нь үргэлж нөлөөлөх болохоор файлын систем нь тохируулгыг шаардахгүй. Гэхдээ энэ машин нь вэб сервер болох бөгөөд бичих боломжоос хамгаалахын тулд вэб серверийг biba/low-д ажиллуулах ёстой. Biba бодлого болон энэ нь хэрхэн ажилладаг талаар сүүлд хэлэлцэх болно. Тэгэхээр хэрэв өмнөх тайлбар ойлгоход хэцүү байгаа бол зүгээр л цааш үргэлжлүүлэн уншаад буцаж эргэж ирээрэй. Сервер нь ажиллаж байх үеийн төлвийнхээ ихэнх үед biba/low тавигдсан тусдаа хуваалтыг ашиглаж болох юм. Энэ жишээн дээр нэлээн их зүйл байхгүй байгаа, жишээ нь өгөгдөл, тохиргоо болон хэрэглэгчийн тохиргоонууд дээр хязгаарлалтууд байхгүй; гэхдээ энэ нь зөвхөн дээр дурдсаныг батлах хурдхан жишээ юм. Хэрэв хаягладаггүй бодлогуудын аль нэг ашиглагдах бол тохируулга хэзээ ч шаардагдахгүй. Эдгээрт seeotheruids, portacl болон partition бодлогууд ордог. Хуваалтад тохируулгыг ашиглаж -ийн ажиллагаан дээр тулгуурласан аюулгүй байдлын загварыг байгуулах нь удирдлагын хувьд илүү ажиллагаанд хүргэж болох юм. Учир нь файлын систем дэх бүх зүйлс хаяг/шошготой болох юм. Эдгээр зүйлсэд сангууд, файлууд, болон бүр төхөөрөмжийн цэгүүд хүртэл орно. Дараах тушаал нь файлын системүүд дээр олон хаяг/шошготой байхаар -ийг тохируулна. Үүнийг зөвхөн ганц хэрэглэгчийн горимд хийж болно: &prompt.root; tunefs -l enable / Энэ нь swap файлын системийн хувьд шаардлагатай биш юм. Зарим хэрэглэгчид тугийг root хуваалт дээр тохируулахад асуудлуудтай тулгарсан байж болох юм. Хэрэв ийм тохиолдол бол энэ бүлгийн хэсгийг дахин үзнэ үү. Аюулгүй байдлын тохиргоог төлөвлөх нь Шинэ технологи хийгдэх болгонд төлөвлөлтийн үе шат үргэлж зөв зүйтэй санаа байдаг. Төлөвлөх шатуудын үеэр администратор ерөнхийд нь том дүр зургийг харах ёстой бөгөөд ядаж дараах зүйлүүдийг хараандаа байлгаж байх хэрэгтэй: Шийдлийн шаардлагууд; Шийдлийн зорилгууд; MAC суулгацуудын хувьд эдгээрт дараах зүйлс орно: Системүүд дээр байгаа мэдээлэл болон эх үүсвэрүүдийг хэрхэн ангилах. Мэдээлэл ба эх үүсвэрүүдийн ямар төрлүүдэд хандахыг хийгдэх ёстой хязгаарлалтуудын төрлийн хамтаар хязгаарлах. Энэ зорилгод хүрэхийн тулд аль MAC модуль эсвэл модулиуд шаардлагатай болох. Системийн эх үүсвэрүүд болон аюулгүй байдлын тохиргоонуудыг дахин тохируулж өөрчлөх боломж үргэлж байдаг бөгөөд системээс хайж файлууд болон хэрэглэгчийн бүртгэлүүдийг засах нь ихэвчлэн маш тохиромжгүй байдаг. Төлөвлөх нь ямар нэг асуудалгүй, үр ашигтай итгэгдсэн системийг бүтээхэд туслах юм. Тохиргоо бүхий итгэгдсэн системийн туршилт нь ихэвчлэн амин чухал байдаг бөгөөд MAC шийдлийг жинхэнэ ажиллах системүүд дээр ашиглахаас өмнө лавтай ашигтай байдаг билээ. MAC бүхий систем дээр сул тохируулж орхих нь амжилтгүй байдлыг тохируулж байна гэсэн үг юм. Өөр өөр орчнууд өөр тусгай хэрэгцээ болон шаардлагуудтай байж болох юм. Гүнзгий, бүрэн гүйцэд аюулгүй байдлын хувийн тохируулгыг үүсгэх нь систем ажиллагаанд орсны дараа өөрчлөлтүүдийн хэрэгцээг багасгах болно. Тиймээс дараа дараагийн хэсгүүд администраторуудад байдаг өөр өөр модулиудын талаар өгүүлэх бөгөөд тэдгээрийн хэрэглээ болон тохиргоог тайлбарлаж зарим тохиолдолд тэдгээр нь ямар нөхцөл байдлын үед хамгийн тохиромжтой байхыг харуулах болно. Жишээ нь вэб сервер нь &man.mac.biba.4; болон &man.mac.bsdextended.4; бодлогуудыг ашиглаж болох юм. Бусад тохиолдлуудад жишээ нь маш цөөн локал хэрэглэгчидтэй машины хувьд &man.mac.partition.4; магадгүй зөв сонголт болж болох юм. Модулийн тохиргоо MAC тогтолцоонд орсон модуль бүр дээр дурдсан шиг цөмд эмхэтгэгдэж эсвэл цөмийн ажиллах үеийн модуль хэлбэрээр дуудагдаж болно. Бидний зөвлөдөг арга бол модулийг эхний ачаалалтын үйлдлийн үеэр дуудагдахаар болгож модулийн нэрийг /boot/loader.conf файлд нэмэх явдал юм. Дараах хэсгүүд нь төрөл бүрийн MAC модулиудыг хэлэлцэж тэдгээрийн боломжуудыг тайлбарлах болно. Тэдгээрийг тусгай орчинд хийж гүйцэтгэхийг энэ бүлэг бас хамрах болно. Зарим модулиуд хаяглалтын хэрэглээг дэмждэг бөгөөд хаяглалт нь энийг зөвшөөрсөн, харин энийг зөвшөөрөөгүй гэх зэрэг хаяг/шошгыг хэрэгжүүлж хандалтыг хянадаг байна. Хаяг/шошгоны тохиргооны файл нь файлуудад хэрхэн хандаж болох, сүлжээний холболтыг хэрхэн солилцож болох гэх зэрэг олон асуудлуудыг хянадаг. Өмнөх хэсэг нь файл бүрийн эсвэл хуваалт бүрийн хандалтын хяналтыг идэвхжүүлэхийн тулд тугийг файлын системүүдэд хэрхэн тохируулах талаар үзүүлсэн. Ганц хаяг/шошго бүхий тохиргоо нь системийн дагуу зөвхөн нэг хаяг/шошгыг хэрэглэх бөгөөд ийм учраас tunefs-ийн тохируулга гэж нэрлэгдсэн юм. MAC seeotheruids модуль MAC See Other UIDs Policy буюу MAC-ийн бусад UID-уудыг харах бодлого Модулийн нэр: mac_seeotheruids.ko Цамийн тохиргооны мөр: options MAC_SEEOTHERUIDS Ачаалалтын тохируулга: mac_seeotheruids_load="YES" &man.mac.seeotheruids.4; модуль нь sysctl-ийн тааруулах боломжтой security.bsd.see_other_uids болон security.bsd.see_other_gids хувьсагчуудыг дуурайж өргөтгөдөг. Энэ тохируулга нь тохиргооноос өмнө ямар ч хаяг/шошгонуудыг тохируулахыг шаарддаггүй бөгөөд бусад модулиудтай хамааралгүйгээр ажиллаж чаддаг. Модулийг дуудаж ачаалсны дараа боломжуудыг хянахын тулд дараах sysctl-ийн тааруулах боломжтой хувьсагчуудыг ашиглаж болно: security.mac.seeotheruids.enabled нь модулийн боломжуудыг идэвхжүүлж анхдагч тохируулгуудыг ашиглана. Эдгээр анхдагч тохируулгууд нь бусад хэрэглэгчдийн эзэмшиж байгаа процессууд болон сокетуудыг харах боломжийг хэрэглэгчдийн хувьд хаах болно. security.mac.seeotheruids.specificgid_enabled нь зарим нэг бүлгүүдийг энэ бодлогоос чөлөөлж тэдгээрийг зөвшөөрөх болно. Энэ бодлогоос зарим нэг бүлгүүдийг чөлөөлөхийн тулд sysctl тушаалын security.mac.seeotheruids.specificgid=XXX хувьсагчийг ашиглана. Дээрх жишээн дээрх XXX-ийг чөлөөлөх бүлгийн тоон ID-аар солих хэрэгтэй. security.mac.seeotheruids.primarygroup_enabled нь тусгай анхдагч бүлгүүдийг энэ бодлогоос чөлөөлөхийн тулд ашигладаг. Энэ хувьсагчийг хэрэглэхэд security.mac.seeotheruids.specificgid_enabled хувьсагч тохируулагдаагүй байж болно. MAC bsdextended модуль MAC Файлын Системийн Галт Ханын Бодлого Модулийн нэр: mac_bsdextended.ko Цөмийн тохиргооны мөр: options MAC_BSDEXTENDED Ачаалалтын тохируулга: mac_bsdextended_load="YES" &man.mac.bsdextended.4; модуль файлын системийн галт ханыг идэвхжүүлдэг. Энэ модулийн бодлого нь стандарт файлын системийн зөвшөөрлүүдийн загварын өргөтгөл болж файлын систем дэх файлууд, хэрэгслүүд болон сангуудыг хамгаалахын тулд администраторт галт ханатай адил дүрмийн олонлогийг үүсгэх боломжийг олгодог. Файлын системийн обьектод хандахыг оролдоход дүрмүүдийн жагсаалтаас тохирох дүрэм таарах хүртэл эсвэл төгсгөл хүртэл шалгадаг. Энэ ажиллагааг &man.sysctl.8;-ийн хувьсагч security.mac.bsdextended.firstmatch_enabled параметрийг хэрэглэж өөрчилж болно. &os; дэх бусад галт ханын модулиудтай адилаар хандалтын хяналтын дүрмүүдийг агуулах файлыг үүсгэж &man.rc.conf.5;-ийн хувьсагчийн тусламжтайгаар ачаалах үед системээр уншуулж болно. Дүрмийн жагсаалтыг &man.ipfw.8;-ийн синтакстай төстэйгөөр бичигддэг &man.ugidfw.8; хэрэгслийг ашиглан оруулж болно. Илүү хэрэгслүүдийг &man.libugidfw.3; сан дахь функцуудыг ашиглан бичиж болно. Энэ модультай ажиллаж байхдаа маш болгоомжтой байх хэрэгтэй; учир нь буруу хэрэглээ файлын системийн зарим хэсэгт хандах боломжгүй болгож болох юм. Жишээнүүд &man.mac.bsdextended.4; модуль ачаалагдсаны дараа тухайн үед байгаа дүрмийн тохиргоог жагсаахад дараах тушаал ашиглагдаж болно: &prompt.root; ugidfw list 0 slots, 0 rules Яг бодож байсны дагуу ямар ч дүрмүүд тодорхойлогдоогүй байна. Энэ нь бүгд хандах боломжтой байна гэсэн үг юм. root-ийг орхиж бусад хэрэглэгчдийн бүх хандалтыг хаах дүрмийг үүсгэхийн тулд ердөө л дараах тушаалыг ажиллуулна: &prompt.root; ugidfw add subject not uid root new object not uid root mode n - - &os; 5.3-аас өмнөх хувилбаруудад - add параметр байдаггүй. Ийм тохиолдолд - set параметрийг ашиглах ёстой. - Тушаалын жишээг доорхоос харна уу. - Энэ нь бүх хэрэглэгчдийг ls зэрэг хамгийн энгийн тушаалуудыг ажиллуулахыг хаах учраас маш буруу санаа юм. Илүү эх оронч дүрмүүдийн жагсаалт иймэрхүү байж болно: &prompt.root; ugidfw set 2 subject uid user1 object uid user2 mode n &prompt.root; ugidfw set 3 subject uid user1 object gid user2 mode n Энэ нь user1 хэрэглэгчээс user2-ийн гэрийн сан уруу хандах сангийн жагсаалт үзүүлэх зэрэг дурын болон бүх хандалтыг хаах болно. user1-ийн оронд тохируулгыг дамжуулж болно. Энэ нь дээрхийн адил хандалтын хязгаарлалтуудыг зөвхөн нэг хэрэглэгчийн хувьд биш бүх хэрэглэгчийн хувьд тавих болно. root хэрэглэгчид эдгээр өөрчлөлтүүд нөлөөлөхгүй. Энэ нь файлын системийг бэхэлж батжуулахад туслахын тулд &man.mac.bsdextended.4; модулийг хэрхэн ашиглаж болох ерөнхий санааг харуулах ёстой. Илүү дэлгэрэнгүй мэдээллийг &man.mac.bsdextended.4; болон &man.ugidfw.8; гарын авлагын хуудаснуудаас үзнэ үү. MAC ifoff модуль MAC интерфэйс дуугай болгох бодлого Модулийн нэр: mac_ifoff.ko Цөмийн тохиргооны мөр: options MAC_IFOFF Ачаалалтын тохируулга: mac_ifoff_load="YES" &man.mac.ifoff.4; модуль нь сүлжээний интерфэйсүүдийг шууд идэвхгүй болгож системийн эхний ачаалалтын үеэр идэвхжүүлэхгүй байлгах зорилгоор байдаг. Энэ нь систем дээр ямар ч хаяг/шошгуудыг тохируулахыг шаарддаггүйгээс гадна бас бусад MAC модулиудаас хамааралгүй юм. Хяналтын ихэнх нь доор дурдсан sysctl-ийн тааруулж болох хувьсагчуудаар хийгддэг. security.mac.ifoff.lo_enabled нь loopback (&man.lo.4;) буюу буцах интерфэйс дээрх бүх урсгалыг нээнэ/хаана. security.mac.ifoff.bpfrecv_enabled нь Berkeley Packet Filter буюу Беркли Пакет шүүгч интерфэйс (&man.bpf.4;) дээрх бүх урсгалыг нээнэ/хаана. security.mac.ifoff.other_enabled нь бусад бүх интерфэйсүүд дээр бүх урсгалыг нээнэ/хаана. &man.mac.ifoff.4;-ийн хамгийн нийтлэг хэрэглээний нэг бол ачаалах дарааллын үеэр сүлжээний урсгалыг зөвшөөрөх ёсгүй орчинд сүлжээг монитор хийх явдал юм. Өөр нэг санал болгох хэрэглээ бол хамгаалагдсан сангуудад шинэ эсвэл өөрчлөгдсөн файлуудыг олсон тохиолдолд сүлжээний урсгалыг автоматаар хаахын тулд security/aide-г ашигладаг скриптийг бичих байж болох юм. MAC portacl модуль MAC Порт Хандалт Хяналтын Жагсаалтын Бодлого Модулийн нэр: mac_portacl.ko Цөмийн тохиргооны мөр: MAC_PORTACL Ачаалалтын тохируулга: mac_portacl_load="YES" &man.mac.portacl.4; модулийг төрөл бүрийн sysctl хувьсагчуудыг ашиглан локал TCP болон UDP портуудыг холбохыг хязгаарлахад хэрэглэдэг. Мөн чанартаа &man.mac.portacl.4; нь заагдсан эрх бүхий портуудыг өөрөөр хэлбэл 1024-оос бага портуудыг холбох боломжийг root биш хэрэглэгчдэд зөвшөөрдөг. Ачаалагдсаны дараа энэ модуль нь бүх сокетууд дээр MAC бодлогыг идэвхжүүлдэг. Дараах тааруулж болох хувьсагчууд байдаг: security.mac.portacl.enabled нь бодлогыг бүр мөсөн нээнэ/хаана. security.mac.portacl.port_high нь &man.mac.portacl.4;-ийн хамгаалалтыг нь идэвхжүүлдэг хамгийн дээд портын дугаарыг тохируулдаг. security.mac.portacl.suser_exempt нь тэгээс ялгаатай утгаар тохируулагдсан үедээ root хэрэглэгчийг энэ бодлогоос чөлөөлнө. security.mac.portacl.rules нь яг mac_portacl бодлогыг заадаг; доорхоос харна уу. mac_portacl бодлого нь security.mac.portacl.rules sysctl-д заагдсаны дагуу хэрэгцээнээсээ хамааран хэдэн ч дүрмүүдтэй байж болох rule[,rule,...] текст хэлбэрийн байдаг. Дүрэм бүр idtype:id:protocol:port гэсэн хэлбэрийн байдаг. idtype параметр нь uid эсвэл gid байж болох бөгөөд id параметрийг хэрэглэгчийн id эсвэл бүлгийн id гэж тайлбарладаг. protocol параметр нь tcp эсвэл udp гэж заагдан дүрмийг TCP эсвэл UDP-ийн алинд хамаарахыг тодорхойлоход хэрэглэгддэг. Сүүлийн port параметр нь заагдсан хэрэглэгч эсвэл бүлэгт холбохыг зөвшөөрөх портын дугаар юм. Дүрмийн олонлог нь цөмөөр шууд тайлбарлагддаг болохоор хэрэглэгчийн ID бүлгийн ID болон портын параметруудын хувьд зөвхөн тоон утгуудыг ашиглаж болно. Өөрөөр хэлбэл хэрэглэгч, бүлэг болон портын үйлчилгээний нэрсийг ашиглаж болохгүй. Анхдагчаар &unix; төст системүүд дээр 1024-өөс бага портуудыг зөвхөн эрх бүхий процессууд буюу өөрөөр хэлбэл root-ээр ажилладаг процессуудад ашиглахад/холбоход хэрэглэдэг. &man.mac.portacl.4;-ийн хувьд эрхгүй процессуудыг 1024-өөс бага портуудад холбохыг зөвшөөрөхдөө энэ стандарт &unix; хязгаарлалтыг хаасан байх ёстой. Үүнийг &man.sysctl.8;-ийн net.inet.ip.portrange.reservedlow болон net.inet.ip.portrange.reservedhigh хувьсагчуудыг тэг болгон хийж болно. Доор жишээнүүдийг үзнэ үү, эсвэл дэлгэрэнгүй мэдээллийг &man.mac.portacl.4; гарын авлагын хуудаснаас лавлана уу. Жишээнүүд Дараах жишээнүүд нь дээрх хэлэлцүүлгийг арай илүү тайлбарлах болно: &prompt.root; sysctl security.mac.portacl.port_high=1023 &prompt.root; sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0 Эхлээд бид &man.mac.portacl.4;-ийг стандарт эрх бүхий портуудыг хамарч ердийн &unix; холболтын хязгаарлалтуудыг хаахаар тохируулна. &prompt.root; sysctl security.mac.portacl.suser_exempt=1 root хэрэглэгчийг энэ бодлогоор хязгаарлахгүйн тулд security.mac.portacl.suser_exempt-г тэгээс ялгаатай утгаар тохируулна. &man.mac.portacl.4; модуль нь одоо &unix; төст системүүд анхдагч тохиргоотойгоор ажилладаг шигээр тохируулагдсан байна. &prompt.root; sysctl security.mac.portacl.rules=uid:80:tcp:80 UID 80 бүхий (ердийн тохиолдолд www хэрэглэгч) хэрэглэгчид 80 портыг холбохыг зөвшөөрнө. root эрхгүйгээр вэб сервер ажиллуулахыг www хэрэглэгчид зөвшөөрөхөд үүнийг ашиглаж болно. &prompt.root; sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995 UID 1001 бүхий хэрэглэгчид TCP 110 (pop3) болон 995 (pop3s) портуудыг холбохыг зөвшөөрнө. Энэ нь 110 болон 995 портуудаар холболтуудыг хүлээн авдаг сервер эхлүүлэхийг хэрэглэгчид зөвшөөрдөг. MAC хуваалтын модуль MAC Процессийн Хуваалтын Бодлого Модулийн нэр: mac_partition.ko Цөмийн тохиргооны мөр: options MAC_PARTITION Ачаалалтын тохируулга: mac_partition_load="YES" &man.mac.partition.4; бодлого нь процессуудыг тэдгээрийн MAC хаяг/шошго дээр үндэслэн тусгай хуваалтуудад оруулдаг. Үүнийг &man.jail.8;-ийн тусгай нэг төрөл гэж бодох хэрэгтэй, гэхдээ энэ нь тийм ч зохистой харьцуулалт биш юм. Ачаалах процессийн үеэр энэ бодлогыг дуудаж идэвхжүүлэхийн тулд &man.loader.conf.5; файлд нэмэгдэх ёстой нэг модуль нь энэ юм. Энэ бодлогын ихэнх тохиргоо нь доор тайлбарлагдах &man.setpmac.8; хэрэгслээр хийгддэг. Энэ бодлогод зориулагдсан дараах sysctl-ийн хувьсагч байдаг: security.mac.partition.enabled нь MAC процессийн хуваалтуудыг хэрэглэхийг идэвхжүүлдэг. Энэ бодлого идэвхтэй болоход хэрэглэгчдэд зөвхөн өөрийн процессуудыг болон нэг хуваалтад байгаа бусад хэрэглэгчдийн процессуудыг харахыг зөвшөөрөх бөгөөд гэхдээ энэ хуваалтын хүрээнээс гадна байгаа хэрэгслүүдтэй ажиллахыг зөвшөөрөхгүй байх болно. Жишээ нь дээрх insecure ангилалд байгаа хэрэглэгчийг top тушаал болон процесс үүсгэх ёстой бусад олон тушаалуудад хандахыг зөвшөөрөхгүй юм. Хэрэгслүүдийг хуваалтын хаяг/шошго уруу оруулах буюу тохируулахын тулд setpmac хэрэгслийг хэрэглэнэ: &prompt.root; setpmac partition/13 top Энэ нь top тушаалыг insecure ангилал дахь хэрэглэгчдийн хаяг/шошгоны олонлогт нэмэх болно. insecure ангиллын хэрэглэгчдийн үүсгэсэн бүх процессууд partition/13 хаяг/шошгод байхыг тэмдэглэх нь зүйтэй юм. Жишээнүүд Дараах тушаал нь хуваалтын хаяг/шошго болон процессийн жагсаалтыг танд харуулах болно: &prompt.root; ps Zax Дараагийн тушаал нь өөр хэрэглэгчийн процессийн хуваалтын хаяг/шошго болон тэр хэрэглэгчийн тухайн үед ажиллаж байгаа процессуудыг харахыг зөвшөөрөх болно: &prompt.root; ps -ZU trhodes &man.mac.seeotheruids.4; бодлого дуудагдаж ачаалагдаагүй бол root хаяг/шошго дахь процессуудыг хэрэглэгч харж чадна. Жинхэнэ ур дүй шаардсан шийдэл нь /etc/rc.conf файл дахь бүх үйлчилгээнүүдийг хааж тэдгээрт зөв хаяглалтыг тохируулж тэдгээрийг скриптээр эхлүүлдэг байж болох юм. Дараах бодлогууд нь санал болгосон гурван анхдагч хаяг/шошгоны оронд бүхэл тоон тохируулгуудыг дэмждэг. Эдгээр тохируулгууд болон тэдгээрийн хязгаарлалтууд нь модулийн гарын авлагын хуудаснуудад дэлгэрэнгүй тайлбарлагдсан байгаа. MAC олон түвшинт аюулгүй байдлын модуль MAC олон түвшинт аюулгүй байдлын бодлого Модулийн нэр: mac_mls.ko Цөмийн тохиргооны мөр: options MAC_MLS Ачаалалтын тохируулга: mac_mls_load="YES" &man.mac.mls.4; бодлого нь систем дэх субьектууд болон обьектуудын хоорондын хандалтыг мэдээллийн урсгалын чанд бодлогын тусламжтайгаар хянаж хэрэгжүүлдэг. MLS орчнуудад clearance буюу цэвэрлэгээ түвшин нь субьект болон обьектуудын хаяг/шошгонд тасалгаануудын цуг тохируулагддаг. Эдгээр цэвэрлэгээ буюу мэдрэхүйн түвшингүүд нь зургаан мянгаас их тоонд хүрч болох учир ямар ч администраторын хувьд субьект эсвэл обьект бүрийг нарийн тохируулах нь сүрдмээр ажил байдаг. Харин үүнийг хөнгөвчлөх гурван ширхэг хормын хаяг/шошго энэ бодлогод орсон байдаг. Эдгээр хаяг/шошгонууд нь mls/low, mls/equal болон mls/high юм. Эдгээр хаяг/шошгонууд нь гарын авлагын хуудсанд дэлгэрэнгүй тайлбарлагдсан болохоор энд зөвхөн товчхон тайлбарлая: mls/low хаяг/шошго нь доод тохиргоог агуулдаг бөгөөд энэ нь түүнийг бусад бүх обьектуудаар захируулахыг зөвшөөрдөг. mls/low-ээр хаяглагдсан болгон доод цэвэрлэгээний түвшинтэй байх бөгөөд өндөр түвшний мэдээлэлд хандах нь зөвшөөрөгдөөгүй байх болно. Мөн энэ хаяг/шошго нь цэвэрлэгээний өндөр түвшингийн обьектуудад бичих эсвэл тэдгээрт мэдээлэл дамжуулахаас сэргийлдэг. mls/equal хаяг/шошго энэ бодлогоос чөлөөлөгдөхөөр болсон обьектуудад тавигдах ёстой. mls/high хаяг/шошго нь цэвэрлэгээний боломжит хамгийн өндөр түвшин юм. Энэ хаяг/шошгыг заасан обьектууд систем дэх бусад бүх обьектуудаас давуу эрхтэй байх бөгөөд гэхдээ тэдгээр нь доод ангиллын обьектуудад мэдээлэл алдагдахыг зөвшөөрөхгүй байх болно. MLS дараах боломжуудыг олгодог: Шатлаагүй зэрэглэлүүдийн олонлогтой аюулгүй байдлын шаталсан түвшин; Тогтмол дүрмүүд: дээш уншихгүй, доош бичихгүй (субьект нь өөрөөсөө дээд түвшинд биш зөвхөн өөрийн түвшний болон доод түвшний обьектуудад унших хандалттай байж болно. Үүнтэй адилаар субьект нь өөрөөсөө доод түвшинд биш зөвхөн өөрийн түвшний болон дээд түвшний обьектуудад бичих хандалттай байж болно.); Нууцлаг байдал (өгөгдлийн зохисгүй ил болголтоос сэргийлэх); Мэдрэмжийн олон түвшингүүдэд өгөгдөлтэй зэрэгцээгээр ажиллах системүүдийн дизайны үндэс (нууц болон итгэмжлэгдсэн мэдээллийн хооронд мэдээлэл алдахгүйгээр). Тусгай төхөөрөмжүүд болон интерфэйсүүдийн хувьд дараах sysctl-ийн тааруулах боломжтой хувьсагчууд байдаг: security.mac.mls.enabled нь MLS бодлогыг нээх/хаахад хэрэглэгддэг. security.mac.mls.ptys_equal нь бүх &man.pty.4; төхөөрөмжүүдийг үүсгэлтийнх нь үеэр mls/equal гэж хаяглана. security.mac.mls.revocation_enabled нь обьектуудын хаяг/шошго доод зэргийнх уруу болж өөрчлөгдсөний дараа тэдгээрт хандах хандалтыг цуцлахад хэрэглэгддэг. security.mac.mls.max_compartments нь обьектуудад хамгийн их тооны тасалгааны түвшингүүдийг тохируулахад хэрэглэгддэг; үндсэндээ системд зөвшөөрөгдсөн тасалгааны хамгийн их дугаар байна. MLS хаяг/шошгонуудтай ажиллахын тулд &man.setfmac.8; байдаг. Обьектод хаяг/шошгыг олгохын тулд дараах тушаалыг ажиллуулна: &prompt.root; setfmac mls/5 test test файлын хувьд MLS хаяг/шошгыг авахын тулд дараах тушаалыг ажиллуулна: &prompt.root; getfmac test Энэ нь MLS бодлогын боломжуудын товч дүгнэлт юм. Өөр нэг хандлага нь MLS бодлогын мэдээллийг тохируулах мастер бодлогын файлыг /etc санд үүсгэж тэр файлыг setfmac тушаалд өгөх явдал юм. Энэ аргыг бүх бодлогуудыг авч үзсэнийхээ дараа тайлбарлах болно. Албадмал Мэдрэмжийг төлөвлөх нь Олон түвшинт аюулгүй байдлын бодлогын модулиар администратор эмзэг мэдээллийн урсгалыг хянахын тулд төлөвлөдөг. Анхдагчаар өөрийн блок дээш унших, блок доош бичих мөн чанараараа систем бүгдийг доод төлөвт болгодог. Бүгд хандах боломжтой байх бөгөөд администратор тохиргооны явцад аажмаар үүнийг мэдээллийн итгэмжлэгдсэн байдлыг нэмэгдүүлэн өөрчилдөг. Дээрх гурван үндсэн хаяг/шошгоноос гадна администратор хэрэглэгчид болон бүлгүүдийг шаардлагын дагуу тэдгээрийн хооронд мэдээллийн урсгалыг хаахаар бүлэглэж болно. Цэвэрлэгээний түвшингүүдэд мэдээллийг танигдсан үгсээр хайх нь амар байж болох бөгөөд жишээ нь Confidential, Secret, болон Top Secret гэх зэрэг ангиллууд байж болох юм. Зарим администраторууд төслийн түвшингүүд дээр үндэслэн өөр бүлгүүдийг үүсгэж болох юм. Ангиллын аргаас үл хамааран ийм хязгаарласан бодлогыг хийхээс өмнө сайн бодож гаргасан төлөвлөгөө байж байх ёстой. Энэ аюулгүй байдлын бодлогын модулийн хувьд зарим жишээ тохиолдлууд гэх юм бол e-commerce вэб сервер, компанийн чухал мэдээлэл болон санхүүгийн байгууллагын орчнуудыг агуулсан файл сервер байж болох юм. Хамгийн үнэмшилгүй газар бол зөвхөн хоёр, гуравхан хэрэглэгчтэй ажлын станц байх юм. + MAC Biba модуль MAC Biba Бүрэн Бүтэн байдлын бодлого Модулийн нэр: mac_biba.ko Цөмийн тохиргооны мөр: options MAC_BIBA Ачаалалтын тохируулга: mac_biba_load="YES" &man.mac.biba.4; модуль MAC Biba бодлогыг дууддаг. Энэ бодлого нь MLS бодлоготой адил ажилладаг бөгөөд ялгаатай нь мэдээллийн урсгалын дүрмүүд нь нэлээн эсрэгээр байдаг. Энэ нь эмзэг мэдээллийн буурсан урсгалаас сэргийлдэг гэдэг бол MLS бодлого нь эмзэг мэдээллийн өгссөн урсгалаас сэргийлдэг; тиймээс энэ хэсгийн ихэнх нь хоёр бодлогод хоёуланд нь хамаатай юм. Biba орчнуудад integrity буюу бүрэн бүтэн байдлын хаяг/шошго субьект эсвэл обьект бүр дээр тавигддаг. Эдгээр хаяг/шошгууд нь шаталсан зэргүүд болон шатлаагүй бүрэлдэхүүнүүдээс тогтдог. Обьект болон субьектийн зэрэг өсөх тусам бүрэн бүтэн байдал ч бас дээшилдэг. Дэмжигдсэн хаяг/шошгууд нь biba/low, biba/equal, болон biba/high бөгөөд доор тайлбарлав: biba/low хаяг/шошго нь обьект эсвэл субьектийн авч болох хамгийн доод бүрэн бүтэн байдал гэж үздэг. Үүнийг обьектууд эсвэл субьектууд дээр тавих нь илүү өндрөөр тэмдэглэгдсэн обьектууд эсвэл субьектууд уруу хийх тэдгээрийн бичих хандалтыг хаана. Гэхдээ тэдгээрт унших хандалт байх болно. biba/equal хаяг/шошго нь бодлогоос чөлөөлөгдөх обьектууд дээр зөвхөн тавигдах ёстой. biba/high хаяг/шошго нь доод хаяг/шошго дээр тавигдсан обьектуудад бичихийг зөвшөөрөх боловч тэр обьектийг уншихыг зөвшөөрдөггүй. Бүхэл системийн бүрэн бүтэн байдалд нөлөөлдөг обьектуудад энэ хаяг/шошгыг тавихыг зөвлөдөг. Biba дараах боломжуудыг олгодог: Шатлаагүй бүрэн бүтэн байдлын зэрэглэлүүдийн олонлог бүхий шаталсан бүрэн бүтэн байдлын түвшин; Тогтмол дүрмүүд: дээш бичихгүй, доош уншихгүй (MLS-ийн эсрэг). Субьект нь өөрөөсөө дээд түвшинд биш зөвхөн өөрийн түвшний болон доод түвшний обьектуудад бичих хандалттай байж болно. Үүнтэй адилаар субьект нь өөрөөсөө доод түвшинд биш зөвхөн өөрийн түвшний болон дээд түвшний обьектуудад унших хандалттай байж болно; Бүрэн бүтэн байдал (өгөгдлийн зохисгүй өөрчлөлтөөс сэргийлэх); Бүрэн бүтэн байдлын түвшингүүд (MLS-ийн мэдрэмжийн түвшингүүдийн оронд). Дараах sysctl-ийн тааруулах боломжтой хувьсагчуудыг Biba бодлоготой ажиллахын тулд хэрэглэж болно. security.mac.biba.enabled нь машин дээр Biba бодлогыг нээхэд/хаахад хэрэглэгдэж болно. security.mac.biba.ptys_equal нь Biba бодлогыг &man.pty.4; төхөөрөмжүүд дээр хаахад хэрэглэглэгдэж болно. security.mac.biba.revocation_enabled нь хаяг/шошго субьектийг захирахаар өөрчлөгдсөн бол обьектод хийх хандалтыг цуцлах болно. Системийн обьектууд дахь Biba бодлогын тохиргоонд хандахын тулд setfmac болон getfmac тушаалуудыг ашиглана: &prompt.root; setfmac biba/low test &prompt.root; getfmac test test: biba/low Албадмал бүрэн бүтэн байдлыг төлөвлөх нь Бүрэн бүтэн байдал нь мэдрэмтгий байдлаас өөр бөгөөд мэдээллийг итгэгдээгүй талуудаар хэзээ ч удирдуулахгүй байлгаж баталгаажуулдаг. Үүнд субьектууд болон обьектууд, тэдгээрийн хооронд дамжих мэдээлэл ордог. Энэ нь хэрэглэгчдэд зөвхөн өөрчилж чадах боломж болон бүр зарим тохиолдолд тэдэнд хэрэгтэй мэдээлэлд хандах боломжийг олгодог. &man.mac.biba.4; аюулгүй байдлын бодлогын модуль нь аль файлууд болон програмуудыг хэрэглэгч эсвэл хэрэглэгчид харах ёстойг заахыг администраторт зөвшөөрч програмууд болон файлууд нь аюул заналаас ангид бөгөөд тэр хэрэглэгч, эсвэл хэрэглэгчдийн бүлгийн хувьд системээр итгэгдсэн гэдгийг баталгаажуулж дууддаг. Эхний төлөвлөлтийн үеэр администратор зэргүүд, түвшингүүд болон бүсүүдэд хэрэглэгчдийг хуваахад бэлдэх ёстой. Хэрэглэгчдийн хувьд зөвхөн өгөгдлөөс гадна бас програмууд болон хэрэгслүүдэд тэдгээрийг эхлэхээс өмнө болон тэдгээрийг эхлүүлсний дараа тэдгээрт хандах хандалт хаагдсан байх болно. Энэ бодлогын модуль идэвхжүүлэгдсэний дараа систем өндөр хаяг/шошго уруу анхдагчаар шилжих бөгөөд хэрэглэгчдийн хувьд өөр зэргүүд болон түвшингүүдийг тохируулах нь администраторын хэрэг юм. Цэвэрлэгээний түвшингүүдийг дээр тайлбарласны дагуу ашиглахын оронд сайн төлөвлөх арга нь сэдвүүдийг оруулж болох юм. Жишээ нь эх кодын архив, эх код эмхэтгэгч болон бусад хөгжүүлэлтийн хэрэгслүүдэд өөрчлөх хандалтыг зөвхөн хөгжүүлэгчдэд зөвшөөрөх байж болно. Тэгээд бусад хэрэглэгчдийг тест хийгчид, дизайн хийгчид эсвэл зүгээр л энгийн хэрэглэгчид зэрэг өөр зэрэглэлд бүлэглэж зөвхөн унших хандалтыг зөвшөөрөх юм. Цаанаасаа хийгдсэн аюулгүй байдлын хяналтаас болоод доод түвшний бүрэн бүтэн байдлын субьект нь дээд түвшний бүрэн бүтэн байдлын субьект уруу бичиж чаддаггүй; дээд түвшний бүрэн бүтэн байдлын субьект нь доод түвшний бүрэн бүтэн байдлын обьектийг ажиглаж эсвэл уншиж чаддаггүй. Хамгийн доод боломжит зэрэгт хаяг/шошгыг тохируулах нь субьектуудыг түүнд хандах боломжгүй болгож болох юм. Энэ аюулгүй байдлын бодлогын модулийн зарим хэтийн орчнуудад хүчилсэн вэб сервэр, хөгжүүлэлтийн болон тестийн машин, болон эх кодын архив зэрэг орж болох юм. Тийм ч ашигтай бус шийдэлд персонал ажлын станц, чиглүүлэгч маягаар ашиглагдаж байгаа машин эсвэл сүлжээний галт хана зэрэг байж болох юм. MAC LOMAC модуль MAC LOMAC Модулийн нэр: mac_lomac.ko Цөмийн тохиргооны файл: options MAC_LOMAC Ачаалалтын тохируулга: mac_lomac_load="YES" MAC Biba бодлогоос ондоо нь &man.mac.lomac.4; бодлого нь бүрэн бүтэн байдлын дүрмүүдийг эвдэхгүйн тулд бүрэн бүтэн байдлын түвшинг заавал багасгасны дараа бүрэн бүтэн байдлын хувьд доор орших обьект уруу хандахыг зөвшөөрдөг. Low-watermark integrity policy буюу доод түвшний бүрэн бүтэн байдлын MAC хувилбарыг хуучин &man.lomac.4;-ийн шийдэлтэй эндүүрч болохгүй бөгөөд энэ хувилбар нь Biba-тай бараг л төстэй ажилладаг боловч ялгаатай тал нь субьектийн бууруулалтыг туслах зэргийн тасалгааны тусламжтай дэмжихийн тулд хөвөгч хаяг/шошгуудыг ашигладаг явдал юм. Энэ хоёр дахь тасалгаа нь [auxgrade] хэлбэрийг авдаг. lomac бодлогыг туслах зэргээр зааж өгөх үед энэ нь иймэрхүү харагдах ёстой: lomac/10[2]. Энд байгаа хоёр (2) гэсэн тоо нь туслах зэрэг юм. MAC LOMAC бодлого нь бүрэн бүтэн байдлын хаяг/шошгоор бүх системийн обьектуудыг хаа сайгүй хаяглах явдалд тулгуурладаг бөгөөд субьектуудад бүрэн бүтэн байдлын хувьд доор орших обьектуудаас уншихыг зөвшөөрч дараа нь өндөр бүрэн бүтэн байдал бүхий обьектуудад ирээдүйд хийгдэж болзошгүй бичилтүүдээс урьдчилан сэргийлэхийн тулд субьект дээрх хаяг/шошгыг доошлуулж бууруулдаг. Энэ нь дээр хэлэлцэгдсэн [auxgrade] тохируулга болохоор уг бодлого нь илүү сайн нийцтэй байдлыг хангаж Biba-аас бага эхний тохиргоог шаардаж болох юм. Жишээнүүд Biba болон MLS бодлогуудын нэгэн адил setfmac болон setpmac хэрэгслүүд системийн обьектууд дээр хаяг/шошгонууд байрлуулахад хэрэглэгдэж болно: &prompt.root; setfmac /usr/home/trhodes lomac/high[low] &prompt.root; getfmac /usr/home/trhodes lomac/high[low] Энд байгаа туслах зэрэг нь low буюу доор гэж байгааг анзаараарай, энэ нь зөвхөн MAC LOMAC бодлогын хангадаг боломж юм. MAC Шорон дахь Nagios MAC Шорон дахь Nagios Дараах нь зөв тохируулсан бодлогуудын хамтаар төрөл бүрийн MAC модулиудыг ашиглан аюулгүй орчинг үүсгэхийг харуулах болно. Энэ нь зөвхөн тест бөгөөд хүн бүгдийн аюулгүй байдлын асуудалд бүрэн хариулт болно гэж тооцох ёсгүй юм. Бодлогыг зөвхөн шийдэж түүнийг орхигдуулах нь хэзээ ч ажиллахгүй бөгөөд жинхэнэ ажиллаж байгаа үйлдвэрлэлийн орчинд сүйрлийн болж болох юм. Энэ процессийг эхлүүлэхээсээ өмнө multilabel тохируулга файлын систем бүр дээр энэ бүлгийн эхэнд дурдсаны дагуу тавигдах ёстой. Ингэж хийхгүй бол алдаа гарах болно. Энд байхдаа net-mngt/nagios-plugins, net-mngt/nagios, болон www/apache13 портууд бүгд суулгагдаж тохируулагдаж зөв ажиллаж байгаа эсэхийг шалгаарай. Хэрэглэгчийн insecure ангилал үүсгэнэ Дараах хэрэглэгчийн ангиллыг /etc/login.conf файлд нэмж: insecure:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin :manpath=/usr/share/man /usr/local/man:\ :nologin=/usr/sbin/nologin:\ :cputime=1h30m:\ :datasize=8M:\ :vmemoryuse=100M:\ :stacksize=2M:\ :memorylocked=4M:\ :memoryuse=8M:\ :filesize=8M:\ :coredumpsize=8M:\ :openfiles=24:\ :maxproc=32:\ :priority=0:\ :requirehome:\ :passwordtime=91d:\ :umask=022:\ :ignoretime@:\ :label=biba/10(10-10): мөн дараах мөрийг анхдагч хэрэглэгчийн ангилалд нэмж процедурыг эхэлнэ: :label=biba/high: Энэ хийгдсэний дараа мэдээллийн баазыг дахин бүтээхийн тулд дараах тушаалыг ажиллуулах ёстой: &prompt.root; cap_mkdb /etc/login.conf Ачаалалтын тохиргоо Дахин ачаалах гэсний хэрэггүй, шаардлагатай модулиудыг систем эхлүүлэхэд дуудахын тулд дараах мөрүүдийг /boot/loader.conf файлд нэмнэ: mac_biba_load="YES" mac_seeotheruids_load="YES" Хэрэглэгчдийг тохируулна root хэрэглэгчийг анхдагч ангилалд доор дурдсаныг ашиглан тохируулна: &prompt.root; pw usermod root -L default root эсвэл системийн хэрэглэгчид биш бүх хэрэглэгчийн бүртгэлүүд одоо нэвтрэлийн ангилал шаардах болно. Нэвтрэлтийн ангилал шаардлагатай, түүнгүй бол хэрэглэгчид &man.vi.1; зэрэг нийтлэг тушаалд хандах боломжгүй болно. Дараах sh скрипт үүнийг хийх болно: &prompt.root; for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \ /etc/passwd`; do pw usermod $x -L default; done; nagios болон www хэрэглэгчдийг insecure ангилалд оруулна: &prompt.root; pw usermod nagios -L insecure &prompt.root; pw usermod www -L insecure Contexts буюу Сэдвийн файл үүсгэнэ Сэдвийн файл нь одоо үүсгэгдсэн байх ёстой; дараах жишээ файлыг /etc/policy.contexts-д байрлуулах ёстой. # This is the default BIBA policy for this system. # System: /var/run biba/equal /var/run/* biba/equal /dev biba/equal /dev/* biba/equal /var biba/equal /var/spool biba/equal /var/spool/* biba/equal /var/log biba/equal /var/log/* biba/equal /tmp biba/equal /tmp/* biba/equal /var/tmp biba/equal /var/tmp/* biba/equal /var/spool/mqueue biba/equal /var/spool/clientmqueue biba/equal # For Nagios: /usr/local/etc/nagios /usr/local/etc/nagios/* biba/10 /var/spool/nagios biba/10 /var/spool/nagios/* biba/10 # For apache /usr/local/etc/apache biba/10 /usr/local/etc/apache/* biba/10 Энэ бодлого нь мэдээллийн урсгалд хязгаарлалтуудыг тавьж аюулгүй байдлыг хангадаг. Энэ тусгайлсан тохиргооны хувьд хэрэглэгчид, root болон бусад хэрэглэгчид Nagios програмд хандахаар хэзээ ч зөвшөөрөгдсөн байх ёсгүй. Nagios-ийн тохиргооны файлууд болон процессууд нь бүр мөсөн өөртөө багтсан буюу шоронд хийгдсэн байх болно. Одоо энэ файлыг өөрийн систем уруу уншуулахдаа дараах тушаалыг ажиллуулна: &prompt.root; setfsmac -ef /etc/policy.contexts / &prompt.root; setfsmac -ef /etc/policy.contexts / Дээрх файлын системийн байршил орчноосоо хамааран өөр байж болно; гэхдээ үүнийг файлын систем бүр дээр ажиллуулах ёстой. /etc/mac.conf файл гол хэсэгт дараах өөрчлөлтүүдийг шаарддаг: default_labels file ?biba default_labels ifnet ?biba default_labels process ?biba default_labels socket ?biba Сүлжээг идэвхжүүлнэ Дараах мөрийг /boot/loader.conf-д нэмнэ: security.mac.biba.trust_all_interfaces=1 Тэгээд дараа нь доор дурдсаныг rc.conf файлд хадгалагдсан сүлжээний картны тохиргоонд нэмнэ. Хэрэв анхдагч Интернэтийн тохиргоо DHCP-ээр хийгдсэн бол системийг ачаалах болгоны дараа үүнийг гараараа тохируулах хэрэгтэй болох юм: maclabel biba/equal Тохиргоог тест хийх нь MAC Тохиргоог тест хийх нь Вэб сервер болон Nagios нь системийг эхлүүлэхэд ажиллахааргүй байгаа эсэхийг шалгаад дахин ачаална. root хэрэглэгч Nagios-ийн тохиргооны сан дахь ямар ч файлд хандаж чадах ёсгүйг баталгаажуулна. Хэрэв root нь /var/spool/nagios-д &man.ls.1;-ийг ажиллуулж чадаж байвал ямар нэг юм буруу байна гэсэн үг. Зөв бол permission denied алдаа буцаагдах ёстой. Хэрэв бүгд зүгээр юм шиг санагдвал Nagios, Apache, болон Sendmail-ийг одоо аюулгүй байдлын бодлогод тааруулж ажиллуулж болно. Үүнийг дараах тушаал хийх болно: &prompt.root; cd /etc/mail && make stop && \ setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \ setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart Бүгд зөв ажиллаж байгаа эсэхийг баталгаажуулж дахин шалгаарай. Хэрэв үгүй бол бүртгэлийн файлуудаас алдааны мэдэгдлүүд байгаа эсэхийг шалгана. &man.sysctl.8; хэрэгсэл ашиглаж &man.mac.biba.4; аюулгүй байдлын бодлогын модулийн үйлчлэлийг хааж бүгдийг эхнээс нь эхлэхийг оролдоорой. root хэрэглэгч аюулгүй байдлын үйлчлэлийг өөрчилж тохиргооны файлыг айлгүйгээр засварлаж чадна. Дараах тушаал нь шинээр үүсгэсэн бүрхүүлийн хувьд аюулгүй байдлын бодлогыг доод зэрэг уруу орж буурахыг зөвшөөрөх болно: &prompt.root; setpmac biba/10 csh Үүнийг болгохгүй байлгахын тулд &man.login.conf.5;-оор хэрэглэгчийг хүрээнд оруулна. Хэрэв &man.setpmac.8; тушаалыг тасалгааных нь хүрээнээс гадна ажиллуулах гэж оролдвол алдаа буцаагдах бөгөөд тушаал ажиллахгүй байх болно. Энэ тохиолдолд root-ийг biba/high(high-high) болгож тохируулна. Хэрэглэгчийг түгжих Энэ жишээ нь харьцангуй жижиг, тавиас бага хэрэглэгчтэй хадгалалтын системийг авч үздэг. Хэрэглэгчид нь нэвтрэлтийн боломжуудтай байх бөгөөд тэдэнд зөвхөн өгөгдөл биш бас хандалтын эх үүсвэрүүдийг хадгалахыг зөвшөөрнө. Энэ тохиолдолд &man.mac.bsdextended.4; нь &man.mac.seeotheruids.4;-тэй холилдон оршиж болох бөгөөд системийн обьектуудад хандахыг хаагаад зогсохгүй бас хэрэглэгчийн процессийг нуух хандалтыг бас хаадаг. - Дараах мөрүүдийг /boot/loader.conf + Дараах мөрийг /boot/loader.conf файлд нэмж эхэлнэ: mac_seeotheruids_enabled="YES" &man.mac.bsdextended.4; аюулгүй байдлын бодлогын модулийг дараах rc.conf хувьсагчийг хэрэглэн идэвхтэй болгож болно: ugidfw_enable="YES" /etc/rc.bsdextended файлд хадгалагдах анхдагч дүрмүүд нь системийг эхлүүлэхэд дуудагдана. Гэхдээ анхдагч оруулгууд нь өөрчлөлтүүд шаардаж болох юм. Энэ машин нь зөвхөн хэрэглэгчдэд үйлчлэхээр зориулагдсан болохоор сүүлийн хоёроос бусдыг хааж тайлбар болгон үлдээж болох юм. Сүүлийн хоёр нь анхдагчаар хэрэглэгчийн эзэмших системийн обьектуудыг дуудуулах болно. Шаардлагатай хэрэглэгчдийг энэ машин уруу нэмээд дахин ачаална. Тест хийх зорилгоор хоёр консол дээр өөр хэрэглэгчээр нэвтрэхийг оролдоорой. Бусад хэрэглэгчдийн процессууд харж болохоор байгаа эсэхийг харахын тулд ps aux тушаалыг ажиллуулна. &man.ls.1;-ийг нөгөө хэрэглэгчийн гэрийн сан дээр ажиллуулахыг оролдоорой, энэ нь амжилтгүй болох болно. Супер хэрэглэгчийн хандалтыг хаахын тулд ашигладаг тусгай sysctl-уудыг өөрчлөхөөс бусад тохиолдолд root хэрэглэгчээр тест битгий хийгээрэй. Шинэ хэрэглэгч нэмэгдэхэд тэдгээрийн &man.mac.bsdextended.4; дүрмүүд дүрмийн олонлогийн жагсаалтад байхгүй байна. Дүрмийн олонлогийг хурдан шинэчлэхийн тулд &man.kldunload.8; болон &man.kldload.8; хэрэгслүүдийг ашиглан аюулгүй байдлын бодлогын модулийг буулгаж дараа нь түүнийг дахин ачаалж хийнэ. MAC Тогтолцооны алдааг олж засварлах MAC алдааг олж засварлах Хөгжүүлэлтийн явцад цөөн хэрэглэгчид энгийн тохируулга дээр асуудлууд гарснаа мэдээлсэн. Эдгээр асуудлуудын заримыг доор жагсаав: <option>multilabel</option> тохируулгыг <filename>/</filename> дээр идэвхжүүлж болохгүй байна туг миний root (/) хуваалтан дээр идэвхтэй болохгүй байна! 50 хэрэглэгч тутмын нэг нь ийм асуудалтай байдаг бололтой, харин бид энэ асуудалтай эхний тохиргооны үеэр тулгарсан. bug буюу "цох" гэж нэрлэгдэх үүний цаадах ажиглалт нь үүнийг буруу баримтжуулалт эсвэл баримтын буруу тайлбарлалтын үр дүн гэж намайг итгэхэд хүргэсэн. Энэ яагаад болсноос үл хамааран үүнийг шийдэхийн тулд дараах алхмуудыг хийж болох юм: /etc/fstab-ийг засварлаж root хуваалтыг зөвхөн унших зорилгоор гэж тохируулна. Ганц хэрэглэгчийн горимд дахин ачаална. tunefs тушаалыг / дээр ажиллуулна. Системийг энгийн горимд дахин ачаална. mount / тушаалыг ажиллуулж тохируулгыг болгож /etc/fstab файлд өөрчлөн системийг дахин ачаална. root файлын систем дээр тохируулга зөв тохируулагдсаныг баталгаажуулж mount тушаалын гаралтыг дахин шалгаарай. <acronym>MAC</acronym>-ийн дараа X11 серверийг эхлүүлж чадахгүй байна MAC-ийн тусламжтай аюулгүй орчинг үүсгэсний дараа би X-ийг дахиж эхлүүлж чадахаа больчихлоо! Энэ нь MAC хуваалтын бодлого эсвэл MAC хаяглалтын бодлогуудын аль нэгний буруу хаяглалтаас болсон байж болох юм. Дибаг хийхийн тулд доор дурдсаныг оролдоод үзээрэй: Алдааны мэдэгдлийг шалгана; хэрэв хэрэглэгч insecure ангилалд байгаа бол хуваалтын бодлого гэмтэн байж болох юм. Хэрэглэгчийн ангиллыг default буюу анхдагч ангилал уруу тохируулж мэдээллийн баазыг cap_mkdb тушаалын тусламжтай дахин бүтээх хэрэгтэй. Хэрэв энэ нь асуудлыг арилгаж чадахгүй байгаа бол хоёрдугаар алхам уруу ор. Хаяг/шошгоны бодлогуудыг давхар шалгаарай. Асуудалтай байгаа хэрэглэгч, X11 програм болон /dev оруулгуудын хувьд бодлогууд зөв заагдсан эсэхийг баталгаажуулаарай. Хэрэв эдгээрийн аль нь ч асуудлыг тань шийдэхгүй бол TrustedBSD вэб сайтад байрлах TrustedBSD-ийн хэлэлцүүлгийн жагсаалтууд эсвэл &a.questions; захидлын жагсаалт уруу алдааны мэдэгдэл болон өөрийн орчны тухай мэдээллийг илгээгээрэй. Error: &man..secure.path.3; cannot stat <filename>.login_conf</filename> - Намайг root-ээс систем дээрх өөр хэрэглэгч уруу - шилжихийг оролдох үед + Намайг root хэрэглэгчээс систем дээрх + өөр хэрэглэгч уруу шилжихийг оролдох үед _secure_path: unable to state .login_conf гэсэн алдаа гараад байна. Энэ мэдэгдэл нь тэр болох гэж байгаа хэрэглэгчийн хаяг/шошгоны тохиргооноос хэрэглэгчийн өөрийнх нь тохиргоо өндөр байгааг ихэвчлэн үзүүлдэг. Жишээ нь систем дээрх хэрэглэгч joe анхдагч гэсэн хаяг/шошготой байна гэж бодъё. хаяг/шошготой root хэрэглэгч joe-ийн гэр санг харж чадахгүй. Энэ нь root хэрэглэгч su тушаал ашиглан joe болсон ч гэсэн болохгүй байна. Энэ тохиолдолд Biba бүрэн бүтэн байдлын загвар нь root хэрэглэгчийг бүрэн бүтэн байдлын доод түвшин тохируулагдсан обьектуудыг харахыг зөвшөөрөхгүй байх болно. <username>root</username> хэрэглэгчийн нэр эвдэрсэн байна! Энгийн эсвэл бүр ганц хэрэглэгчийн горимд root хэрэглэгч танигддаггүй. whoami тушаал 0 (тэг) буцаах бөгөөд su тушаал who are you? гэсэн алдааны мэдэгдлийг буцаадаг. Юу болоод байгаа юм бол оо? Энэ нь хаяглах бодлого &man.sysctl.8;-оор хаагдсан эсвэл бодлогын модулийг буулгаснаас болдог. Хэрэв бодлого хаагдсан эсвэл түр зуур хаагдсан бол тохируулгыг арилган нэвтрэлтийн боломжуудын мэдээллийн баазыг дахин тохируулах хэрэгтэй. Бүх тохируулгууд арилсан эсэхийг баталгаажуулж login.conf файлаа дахин шалгаж мэдээллийн баазаа cap_mkdb тушаалаар дахин бүтээх хэрэгтэй. Энэ нь master.passwd файлд эсвэл мэдээллийн баазад хандах хандалтыг бодлого хязгаарласнаас болоод бас гарч болох юм. Системд ашиглагдаж байгаа ерөнхий бодлоготой зөрчилдөх хаяг/шошгоны доор администратор файлыг өөрчлөхөд ихэвчлэн ингэдэг. Ийм тохиолдлуудад хэрэглэгчийн мэдээллийг систем унших бөгөөд файл нь шинэ хаяг/шошго удамшин авсан болохоор хандалт хаалттай байх болно. Бодлогыг &man.sysctl.8;-ий тусламжтай хаах хэрэгтэй. Ингэхэд бүх зүйлс хэвийндээ эргэн орох болно. diff --git a/mn_MN.UTF-8/books/handbook/preface/preface.sgml b/mn_MN.UTF-8/books/handbook/preface/preface.sgml index 70a6838bdf..7556c6f81c 100644 --- a/mn_MN.UTF-8/books/handbook/preface/preface.sgml +++ b/mn_MN.UTF-8/books/handbook/preface/preface.sgml @@ -1,645 +1,645 @@ Өмнөх үг Энэ номын зориулалт FreeBSD-ийн шинэ хэрэглэгч нь энэ номын эхний хэсэг хэрэглэгчид FreeBSD-ийн суулгалтын процесс дундуур хөтөлж &unix;-ийн угт байдаг ойлголтууд болон ёс заншлыг аажим танилцуулдаг болохыг олж мэдэх болно. Энэ хэсэг дээр ажиллах нь шинээр олж мэдэх хүсэл эрмэлзлээс арай илүү хүсэл болон танилцуулсан шинэ ойлголтуудыг хүлээн авах чадварыг шаарддаг. Гарын авлагын хоёр дахь хамаагүй том хэсэг хүрэх үед FreeBSD системийн администраторуудын сонирхлыг татах бүх сэдвүүдийг хамарсан нэвтэрхий лавлахыг та олох болно. Эдгээр бүлгүүдийн зарим нь таныг урьдчилан уншихыг зөвлөж болох бөгөөд энэ нь бүлэг бүрийн эхэнд ерөнхий агуулгад тэмдэглэгдсэн байдаг. Мэдээллийн нэмэлт эхүүдийн жагсаалтыг хэсгээс үзнэ үү. Хоёр дахь хэвлэлээс хойшх өөрчлөлтүүд Энэ гурав дахь хэвлэлт нь FreeBSD баримтжуулах төслийн гишүүдийн хоёр жил илүүтэй хугацаанд хийж гүйцэтгэсэн ажлын оргил юм. Энэ шинэ хэвлэлтэд орсон гол өөрчлөлтүүдийг доор дурдав: Тохиргоо ба тааруулалт нь ACPI тэжээл болон эх үүсвэрийн удирдлага, cron системийн хэрэгсэл болон цөмийн илүү олон тааруулах тохируулгуудын тухай шинэ мэдээллээр өргөжсөн. Аюулгүй байдал нь виртуал хувийн сүлжээнүүд (VPN-үүд), файлын системийн хандалт хяналтын жагсаалт (ACL-үүд) болон аюулгүй байдлын зөвлөгөөнүүдийн тухай шинэ мэдээллээр өргөжсөн. Mandatory Access Control буюу Албадмал Хандалтын хяналт нь энэ хэвлэл дэх шинэ бүлэг юм. Энэ нь MAC гэж юу болох, FreeBSD системийг аюулгүй болгоход энэ аргыг хэрхэн ашиглах талаар тайлбарладаг. Хадгалалт нь USB хадгалалтын төхөөрөмжүүд, файлын системийн хормын хувилбарууд, файлын системийн хувь/ноогдлууд, файл болон сүлжээн дээр тулгуурласан файлын системүүд болон шифрлэгдсэн дискний хуваалтуудын тухай шинэ мэдээллээр өргөжсөн. Vinum нь энэ хэвлэл дэх шинэ бүлэг юм. Энэ нь Vinum-ийг хэрхэн ашиглах, төхөөрөмжийн хувьд хамааралгүй логик дискнүүдийн боломжийг хангадаг логик эзлэхүүн менежер болон програм хангамжийн RAID-0, RAID-1 болон RAID-5-г тайлбарладаг. Алдааг олж засварлах хэсэг PPP ба SLIP-д нэмэгдсэн. Цахим шуудан нь өөр тээвэрлэх агентуудыг ашиглах, SMTP нэвтрэлт танилт, UUCP, fetchmail, procmail, болон бусад дэвшилтэт сэдвүүдийн тухай шинэ мэдээллээр өргөжсөн. Сүлжээний серверүүд нь энэ хэвлэлд бүгд шинээр орсон. Энэ бүлэг нь Apache HTTP Server, ftpd-г тохируулах болон µsoft; &windows; клиентүүдийн хувьд Samba серверийг тохируулах тухай мэдээллийг агуулдаг. Сүлжээний нэмэлт ойлголтууд дахь зарим хэсгүүд нь танилцуулгыг сайжруулахын тулд ийшээгээ зөөгдсөн. Сүлжээний нэмэлт ойлголтууд нь FreeBSD дээр &bluetooth; төхөөрөмжүүдийг ашиглах, утасгүй сүлжээнүүд болон Асинхрон Дамжуулах Горим (ATM) сүлжээг тохируулах тухай шинэ мэдээллээр өргөжсөн. Номонд ашиглагдсан техникийн ухагдахуунуудын тодорхойлолтуудад зориулагдсан төв байршлыг бий болгон нэр томъёо хэсэг нэмэгдсэн. Номонд байгаа хүснэгтүүд болон зургуудад хэд хэдэн гоо зүйн сайжруулалтууд хийгдсэн. Эхний хэвлэлээс хойшх өөрчлөлтүүд Хоёр дахь хэвлэлт нь FreeBSD баримтжуулах төслийн гишүүдийн хоёр жил илүүтэй хугацаанд хийж гүйцэтгэсэн ажлын оргил юм. Энэ хэвлэлтэд орсон гол өөрчлөлтүүдийг доор дурдав: Бүрэн хэмжээний үгсийн жагсаалт нэмэгдсэн. Бүх ASCII зурагнууд график диаграмуудаар солигдсон. Бүлэг ямар мэдээлэл агуулсан болох, уншигч юу мэдэхийг харуулсан товч мэдээллийг өгөхийн тулд бүлэг болгонд стандарт ерөнхий агуулга нэмэгдсэн. Агуулга логикийн хувьд гурван хэсэгт дахин зохион байгуулагдсан: Эхлэл, Системийн удирдлага, болон Хавсралтууд. (FreeBSD-г суулгах нь) шинэ хэрэглэгчдэд текстийг хялбар авах боломжийг бүрдүүлэх олон дэлгэцийн агшнуудтайгаар бүрэн хэмжээгээр дахин бичигдсэн. (&unix;-ийн үндэс) процессууд, дэмонууд болон дохионуудын тухай нэмэлт мэдээллийг агуулж өргөжсөн. (Програм суулгах) хоёртын багцын удирдлагын тухай нэмэлт мэдээллийг агуулж өргөжсөн. (X Цонхот систем) нь орчин үеийн ширээний технологиуд болох KDE болон GNOME-г &xfree86; 4.X дээр ашиглах тал дээр онцлон анхаарч бүрэн хэмжээгээр дахин бичигдсэн. (FreeBSD-ийн ачаалах процесс) нь өргөжсөн. (Хадгалалт) өмнө нь тусдаа байсан Дискнүүд болон Нөөцлөлтүүд гэсэн хоёр бүлгээс бичигдсэн. Сэдвүүдийг нэг бүлэг болгон танилцуулах нь хялбар болохыг бид мэдэрсэн. RAID-ийн тухай хэсэг (тоног төхөөрөмж болон програм хангамж) бас нэмэгдсэн. (Цуваа холболтууд) FreeBSD 4.X/5.X-ийн хувьд бүрэн хэмжээгээр дахин зохион байгуулагдаж шинэчлэгдсэн. (PPP ба SLIP) нэлээн хэмжээгээр шинэчлэгдсэн. Олон хэсэг -д (Сүлжээний тухай нэмэлт ойлголтууд) нэмэгдсэн. (Цахим шуудан) sendmail-г тохируулах тухай илүү мэдээллийг агуулж өргөжсөн. (&linux;-ийн хоёртын нийлэмж) &oracle; болон &sap.r3;-г суулгах тухай мэдээллийг агуулж өргөжсөн. Дараах шинэ сэдвүүдийг энэ хоёр дахь хэвлэлд хэлэлцсэн: Тохиргоо ба тааруулалт (). Мультимедиа () Энэ номын зохион байгуулалт Энэ ном нь таван логикийн хувьд тусдаа хэсгүүдэд хуваагдана. Эхний хэсэг Эхлэл нь FreeBSD-ийн суулгалт болон үндсэн хэрэглээг тайлбарлах болно. Эдгээр бүлгүүдийг дарааллаар нь магадгүй мэддэг сэдвүүдийг тайлбарлах бүлгүүдийг орхин уншина гэдэгт уншигч авхай нарт итгэдэг. Хоёр дахь хэсэг Нийтлэг асуудлууд нь FreeBSD-ийн зарим нэг байнга ашиглагддаг боломжуудыг тайлбарладаг. Энэ хэсэг болон дараачийн хэсгүүдийг дараалал хамаарахгүйгээр уншиж болно. Бүлэг бүр нь бүлэг юу тайлбарладаг болон уншигч юуг аль хэдийн мэдсэн байх ёстойг тайлбарласан хураангуй агуулгаас эхэлдэг. Энэ нь уншигчид өөрийн сонирхсон бүлгээ олоход туслах зорилготой юм. Гурав дахь хэсэг Системийн удирдлага нь удирдлагын сэдвүүдийг хөнддөг. Дөрөв дэх хэсэг Сүлжээний холболт нь сүлжээ болон серверийн сэдвүүдийг хамардаг. Тав дахь хэсэг нь лавлагаа мэдээллийн тухай хавсралтуудыг агуулдаг. Танилцуулга FreeBSD-г шинэ хэрэглэгчид танилцуулна. Энэ нь FreeBSD төслийн түүх, түүний зорилгууд болон хөгжүүлэлтийн загварыг тайлбарладаг. Суулгалт Хэрэглэгчийг суулгалтын процесс дундуур хөтөлнө. Цуваа консолоор суулгах зэрэг илүү нарийн суулгалтын сэдвүүдийг бас тайлбарлана. , &unix;-ийн үндэс FreeBSD үйлдлийн системийн үндсэн тушаалууд болон ажиллагааг тайлбарладаг. Хэрэв та &linux; эсвэл &unix;-ийн өөр төрлийг мэддэг бол та энэ бүлгийг алгасаж болох юм. Програм суулгах нь FreeBSD-ийн шинэ санаачлага портын цуглуулга болон стандарт хоёртын багцуудын тусламжтай гуравдагч програм хангамжуудын суулгалтыг тайлбарладаг. X Цонхот систем X Цонхот системийг ерөнхийд нь болон FreeBSD-г ялангуяа X11 дээр ашиглах талаар тайлбарлах болно. KDE болон GNOME зэрэг ширээний түгээмэл орчнуудыг бас тайлбарладаг. Ширээний програмууд Вэб хөтчүүд болон бүтээмжийн цуглуулгууд зэрэг зарим нэгэн ширээний програмуудыг дурдах бөгөөд тэдгээрийг FreeBSD дээр хэрхэн суулгах талаар тайлбарлах болно. Мультимедиа Дуу болон дүрс тоглуулалтын дэмжлэгийг өөрийн систем дээр хэрхэн тохируулахыг үзүүлнэ. Бас зарим жишээ аудио болон видео програмуудыг тайлбарладаг. FreeBSD цөмийг тохируулах нь Танд яагаад шинэ цөм хэрэгтэй болж болохыг тайлбарлаж цөмийг тохируулах, бүтээх болон суулгах тухай дэлгэрэнгүй заавруудыг өгнө. Хэвлэлт Сурталчилгаа хуудаснууд, хэвлэгчийн бүртгэл болон эхний тохиргоо зэрэг мэдээллийг оруулаад хэвлэгчдийг FreeBSD дээр удирдах талаар тайлбарладаг. , &linux;-ийн хоёртын нийлэмж FreeBSD-ийн &linux;-тэй нийцтэй боломжуудыг тайлбарладаг. Бас &oracle;, &sap.r3;, болон &mathematica; зэрэг &linux;-ийн олон түгээмэл програмуудыг суулгах дэлгэрэнгүй заавруудыг өгдөг. Тохиргоо ба тааруулалт FreeBSD-г хамгийн оновчтой ажиллагаанд зориулж тааруулахад туслах системийн администраторуудад зориулсан параметрүүдийг тайлбарладаг. Бас FreeBSD-д ашиглагдах төрөл бүрийн тохиргооны файлуудыг тайлбарлаж тэдгээрийг хаанаас олохыг хэлж өгдөг. Эхлүүлэх процесс FreeBSD-ийн эхлүүлэх процессийг тайлбарлаж тохиргооны сонголтуудын тусламжтай энэ процессийг хэрхэн хянах талаар дурддаг. Хэрэглэгчид ба үндсэн бүртгэл зохицуулалт Хэрэглэгчийн бүртгэлүүдийг үүсгэх болон удирдахыг тайлбарладаг. Бас хэрэглэгчид дээр эх үүсвэрийн хязгаарлалтуудыг тохируулах болон бусад бүртгэл удирдах ажлуудын талаар тайлбарладаг. Аюулгүй байдал Kerberos, IPsec, болон OpenSSH зэргийг оролцуулаад таны FreeBSD системийг аюулгүй болгоход туслах олон хэрэгслүүдийг тайлбарладаг. Jails буюу Шоронгууд Шоронгийн тогтолцоо болон &os;-ийн уламжлалт chroot дэмжлэг дээр нэмэгдсэн шоронгийн сайжруулалтуудыг тайлбарладаг. Mandatory Access Control буюу Албадмал Хандалтын хяналт Mandatory Access Control (MAC) буюу Албадмал Хандалтын хяналт гэж юу болохыг тайлбарладаг бөгөөд FreeBSD системийг аюулгүй болгоход энэ арга замыг хэрхэн ашиглах талаар хэлэлцдэг. Аюулгүй байдлын үйл явцад аудит хийх нь &os;-ийн үйл явцын аудит гэж юу болох, түүнийг хэрхэн суулгах, тохируулах болон аудит мөрнүүд хэрхэн шалгагдаж эсвэл монитор хийгддэг талаар тайлбарладаг. Хадгалалт Хадгалалтын зөөвөрлөгч болон файлын системүүдийг FreeBSD-ээр хэрхэн удирдахыг тайлбарладаг. Үүнд физик дискнүүд, RAID массивууд, оптик болон соронзон хальсан зөөвөрлөгч, санах ой дээр тулгуурласан дискнүүд болон сүлжээний файлын системүүд ордог. GEOM FreeBSD дээрх GEOM тогтолцоо гэж юу болох, төрөл бүрийн дэмжигдсэн RAID түвшнүүдийг хэрхэн тохируулах талаар тайлбарладаг. Файлын системийн дэмлэг &sun;-ий Z файлын систем зэрэг &os; дээрх төрөлхийн биш файлын системүүдийн дэмжлэгийн талаар тайлбарладаг. Vinum Төхөөрөмжөөс хамааралгүй логик дискнүүд болон програм хангамжийн RAID-0, RAID-1 болон RAID-5 зэргийн боломжийг олгодог логик эзлэхүүн менежер Vinum-ийг хэрхэн ашиглах талаар тайлбарладаг. Виртуалчлал Виртуалчлалын системүүд юу санал болгодог болон тэдгээрийг &os;-тэй хэрхэн ашиглаж болохыг тайлбарладаг. Локалчлал Англи хэлнээс бусад хэлнүүд дээр FreeBSD-г хэрхэн ашиглах талаар тайлбарладаг. Систем болон програмын түвшингийн локалчлалыг дурддаг. Амжилт ололтын тэргүүнд FreeBSD-STABLE, FreeBSD-CURRENT болон FreeBSD-ийн хувилбаруудын ялгаануудыг тайлбарладаг. Хөгжүүлэлтийн системийг дагахад ямар хэрэглэгчдэд ашигтайг тайлбарлаж тэр процессийг дурддаг. - DTrace + &dtrace; - &os; дээр &sun;-ий DTrace хэрэгслийг хэрхэн тохируулж хэрэглэх талаар + &os; дээр &sun;-ий &dtrace; хэрэгслийг хэрхэн тохируулж хэрэглэх талаар тайлбарладаг. Динамикаар дагаж мөрдөх нь ажиллаж байх явцад системийн шинжилгээ хийж гүйцэтгэн үйл ажиллагааны асуудлуудыг олоход тусалж чадна. &os;-г шинэчлэх нь &os; системийг шинэчлэхэд хэрэглэж болох системийн сүүлийн үеийн хэрэгслүүдийг тайлбарладаг. Эдгээр нь үндсэн системд зориулсан &man.freebsd-update.8; ба портын цуглуулгад зориулсан &man.portsnap.8; юм. Цуваа холбоонууд Терминалууд болон модемуудыг өөрийн FreeBSD системд гадагш залгах болон дуудлага хүлээн авах холболтуудад зориулж хэрхэн холбох талаар тайлбарладаг. PPP ба SLIP FreeBSD дээр PPP, SLIP, эсвэл Ethernet дээгүүрх PPP-г хэрхэн ашиглаж алсын системд холбогдохыг тайлбарладаг. Цахим шуудан Цахим захидлын серверийн бүрэлдэхүүн хэсгүүдийг тайлбарлаж хамгийн түгээмэл захидлын програм хангамж болох sendmail-д зориулсан хялбар тохиргооны сэдвүүдийн талаар өгүүлдэг. Сүлжээний серверүүд Таны FreeBSD машиныг сүлжээний файлын систем сервер, домэйн нэрний сервер, сүлжээний мэдээллийн систем сервер эсвэл цаг тааруулах сервер болгон хэрхэн тохируулах тухай дэлгэрэнгүй зааврууд болон жишээ тохиргооны файлуудыг дурддаг. Галт хананууд Програм хангамж дээр суурилсан галт ханануудын цаадах философийг тайлбарлаж FreeBSD-д зориулсан төрөл бүрийн галт ханануудын тохиргооны тухай дэлгэрэнгүй мэдээллийг өгүүлдэг. Сүлжээний нэмэлт ойлголтууд Өөрийн LAN доторх бусад компьютеруудтай Интернэтийн холболтоо хуваалцах, чиглүүлэлтийн дэвшилтэт сэдвүүд, утасгүй сүлжээ, &bluetooth;, ATM, IPv6 зэрэг зүйлсийг оролцуулаад сүлжээний олон сэдвүүдийг тайлбарладаг. FreeBSD-г олж авах нь FreeBSD зөөвөрлөгчийг CDROM эсвэл DVD дээр олж авахад зориулагдсан төрөл бүрийн эхүүд болон FreeBSD-г татан авч суулгах боломжийг танд олгох Интернэт дэх олон сайтуудыг дурддаг. Ном зүй Энэ ном нь маш олон төрөл бүрийн сэдвүүдийг хөнддөг бөгөөд таныг магадгүй илүү дэлгэрэнгүй мэдээлэл авах хүсэлд хөтлөж болох юм. Ном зүй нь энэ номонд ашигласан олон гайхалтай номнуудыг дурдсан байдаг. Интернэт дэх эх үүсвэрүүд FreeBSD-ийн хэрэглэгчдэд зориулсан, асуултууд илгээж FreeBSD-ийн талаар техникийн хэлэлцүүлгүүд өрнүүлж болох олон хэлэлцүүлгүүд байдаг талаар тайлбарладаг. PGP түлхүүрүүд FreeBSD-ийн хэд хэдэн хөгжүүлэгчдийн PGP түлхүүрүүдийг жагсаадаг. Энэ номонд ашиглагдсан бичиглэлийн хэлбэрүүд Текстийг уншихад хялбар, дэс дараалалтай болгохын тулд энэ номонд хэд хэдэн бичиглэлийн хэлбэрүүдийг ашигласан. Хэвлэлийн хэлбэрүүд Italic italic фонт нь файлын нэрс, URL-ууд, онцолсон текст болон техникийн ухагдахуунуудын эхний хэрэглээнд italic үсгийн маяг ашиглагдсан. Monospace monospace хийгдсэн үсгийн маяг нь алдааны мэдэгдлүүд, тушаалууд, орчны хувьсагчууд, портуудын нэрс, хостын нэрс, хэрэглэгчдийн нэрс, бүлгийн нэрс, төхөөрөмжийн нэрс, хувьсагчууд болон кодын хэсгүүдэд ашиглагдсан. Bold bold үсгийн маяг нь програмууд, тушаалууд болон товчлууруудад ашиглагдсан. Хэрэглэгчийн Оролт Товчлуурууд нь бусад текстээс ялгарахын тулд bold хэлбэрээр харуулагдсан. Товчлууруудын хослолууд нь зэрэг бичигдэх ёстой бөгөөд товчлууруудын хооронд `+' тавигдан үзүүлэгдсэн, жишээ нь: Ctrl Alt Del Энэ нь хэрэглэгч Ctrl, Alt, болон Del товчлууруудыг зэрэг дарах ёстой гэсэн үг юм. Дараалан бичих ёстой товчлууруудыг таслалаар тусгаарладаг, жишээ нь: Ctrl X , Ctrl S Энэ нь хэрэглэгч Ctrl болон X товчлууруудыг зэрэг дараад дараа нь Ctrl болон S товчлууруудыг зэрэг дарна гэсэн үг юм. Жишээнүүд E:\> гэж эхэлсэн жишээнүүд нь &ms-dos; тушаалыг илэрхийлнэ. Тэмдэглэж хэлээгүй л бол эдгээр тушаалуудыг орчин үеийн µsoft.windows; орчны Тушаал хүлээх мөр цонхноос ажиллуулж болох юм. E:\> tools\fdimage floppies\kern.flp A: &prompt.root; гэж эхэлсэн жишээнүүд нь FreeBSD дээр супер хэрэглэгчээр ажиллуулах ёстой тушаалыг илэрхийлнэ. Тушаал бичихийн тулд та root эрхээр нэвтрэх юм уу эсвэл өөрийн ердийн эрхээр нэвтрээд супер хэрэглэгчийн зөвшөөрлүүдийг авахын тулд &man.su.1;-г ашиглаж болох юм. &prompt.root; dd if=kern.flp of=/dev/fd0 &prompt.user; гэж эхэлсэн жишээнүүд нь ердийн хэрэглэгчийн бүртгэлээс ажиллуулах ёстой тушаалыг илэрхийлнэ. Тэмдэглэж хэлээгүй л бол орчны хувьсагчууд болон бусад бүрхүүлийн тушаалуудыг тохируулахад C бүрхүүлийн синтакс ашиглагддаг. &prompt.user; top Талархал Таны барьж байгаа ном нь дэлхий даяарх олон зуун хүмүүсийн хүч хөдөлмөр юм. Бичгийн алдаануудын засварууд илгээсэн ч бай эсвэл бүхэл бүтэн бүлгүүдийг ирүүлсэн ч бай гэсэн эдгээр бүх оруулсан хувь нэмрүүд нь их ач холбогдолтой байсан юм. Зохиогчдыг бүтэн ажлын өдрийн турш ажиллахыг дэмжин цалинжуулж, хэвлэлтийн төлбөрийг төлөх гэх зэргээр хэд хэдэн компаниуд энэ баримтын хөгжүүлэлтийг дэмжсэн билээ. Ялангуяа BSDi-ийн (дараахан нь Wind River Systems худалдан авсан) цалинжуулсан FreeBSD баримтжуулах төслийн гишүүд энэ номыг сайжруулж бүтэн ажлын өдрийн турш ажилласан нь 2000 оны 3 сард эхний хэвлэгдсэн хувилбар гаргахад хүргэсэн юм (ISBN 1-57176-241-8). Wind River Systems дараа нь хэвлэгдсэн гаралтын дэд бүтцэд хэд хэдэн сайжруулалтуудыг хийлгэж текстэд нэмэлт бүлгүүдийг нэмүүлэхийн тулд хэд хэдэн зохиогчийг цалинжуулсан билээ. 2001 оны 11 сард хэвлэгдсэн хоёр дахь хэвлэлд энэ ажил оржээ (ISBN 1-57176-303-1). 2003-2004 онуудад FreeBSD Mall, Inc гурав дахь удаагийн хэвлэлийг бэлтгэхэд зориулан Гарын авлагыг сайжруулахын тулд хэд хэдэн хувь нэмэр оруулагчдыг цалинжуулсан юм. diff --git a/mn_MN.UTF-8/books/handbook/updating/chapter.sgml b/mn_MN.UTF-8/books/handbook/updating/chapter.sgml index 99122deed3..aca615ed08 100644 --- a/mn_MN.UTF-8/books/handbook/updating/chapter.sgml +++ b/mn_MN.UTF-8/books/handbook/updating/chapter.sgml @@ -1,509 +1,509 @@ Том Рөүдс Бичсэн Колин Персивал Тэмдэглэгээ бичсэн &os;-г шинэчлэх нь Ерөнхий агуулга Updating FreeBSD freebsd-update Updating Цаг хугацааны туршид &os; үйлдлийн системийн нэг үндсэн аспект өөрчлөгдөлгүй хэвээр үлджээ. Энэ нь програмууд болон хэрэгслүүдийг том болон бага системийн шинэчлэлтүүдийг авахдаа ашиглах шаардлага юм. Олон жилийн турш өөрсдийн системийг шинэчлэх гэсэн хэрэглэгчид аюулгүй байдлын засваруудыг цуглуулж портын цуглуулгын аргуудыг эвдэлгүйгээр порт болон багцын шинэчлэлтүүдийг авахын тулд CVSup хэрэгслийг ашигладаг байсан. CVSup-ийн хэрэглээ дэмжигдэж жинхэнэ C хэлний хувилбар &os;-д нэмэгдсэн хэдий ч системийн шинэчлэлтүүдийг авах шинэ аргууд байдаг. &man.portsnap.8;, болон &man.freebsd-update.8; зэрэг хэрэгслүүд шинэчлэлтийн процессийг шулуухан болгосон. Эдгээр шинэ аргууд нь бүтээмжийг дээшлүүлэхээс гадна илүү хялбар интерфэйсийг хэрэглэгчдэд олгодог. Системийн администраторын гар оролцоог багасгаж зарим шинэ хэрэгслүүдийг &man.cron.8;-с ажиллуулж болдог бөгөөд хэдэн зуун &os; машиныг хянадаг тэдний хувьд энэ нь ашигтай байдаг. Энэ бүлэг эдгээр шинэ аргуудыг тайлбарлаж хэрэглэгчид болон системийн администраторууд зэрэг нь эдгээрийн практикийн болон хэрэглэхэд хялбар байдлаас хэрхэн ашиг олж болохыг тайлбарлах болно. Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно: Систем болон портын цуглуулгыг шинэчлэхэд ямар хэрэгслүүд ашиглаж болох талаар. freebsd-update-г ашиглан аюулгүй байдлын засваруудыг хийж &os;-ийн том ба бага шинэчлэлтүүдийг хэрхэн хийх талаар. Суулгагдсан системийн төлвийг нэртэй цэвэр хуулбартай харьцуулах талаар. Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй: &unix; болон &os;-ийн үндсүүдийг () ойлгох. Цөмийн тохиргоо/эмхэтгэлтийн () үндсийг мэддэг байх. Портын цуглуулга болон гуравдагчдын програм хангамжуудыг &os; дээр суулгах талаар ойлголттой байх (). &os;-г бүтээдэг төрөл бүрийн эх бүрэлдэхүүн хэсгүүд болон &man.mergemaster.8; хэрэгслийг хэрхэн ашиглах талаар ойлголттой байх (). FreeBSD-ийн шинэчлэлт Аюулгүй байдлын засваруудыг хийнэ гэдэг компьютерийн програм хангамж ялангуяа үйлдлийн системийг арчлалтын чухал хэсгийн нэг юм. Удаан хугацааны туршид &os; дээр энэ процесс хялбар биш байлаа. Засваруудыг эх код руу хийж кодыг хоёртын хэлбэр рүү дахин бүтээж дараа нь хоёртын файлуудыг дахин суулгах шаардлагатай байлаа. Энэ нь одоо тийм биш болсон бөгөөд &os; нь freebsd-update гэгддэг хэрэгслийг агуулдаг. Энэ хэрэгсэл нь хоёр тусдаа функцээр хангадаг. Нэгдүгээрт энэ нь бүтээлт болон суулгах шаардлагагүйгээр хоёртын аюулгүй байдал болон алдааны шинэчлэлтүүдийг &os;-ийн үндсэн системд оруулах боломжийг олгодог. Хоёрдугаарт уг хэрэгсэл бага болон том хувилбарын шинэчлэлтүүдийг дэмждэг. Аюулгүй байдлын багаар дэмжигдсэн бүх архитектур болон хувилбаруудын хувьд хоёртын шинэчлэлтүүд байдаг боловч &os; үйлдлийн системийн шинэчлэлтүүд зэрэг зарим нэг боломжууд нь &man.freebsd-update.8;-ийн хамгийн сүүлийн хувилбар болон &os; 6.3-г шаарддаг. Шинэ хувилбар руу шинэчлэхээс өмнө хүссэн хувилбарт чинь хамаатай чухал мэдээлэл байж болох учир одоогийн хувилбарын зарлалуудыг дахин үзэх хэрэгтэй. Тэдгээр зарлалуудыг дараах холбоосоос үзэж болно: . Хэрэв crontab нь freebsd-update-ийн боломжуудыг хэрэглэж байвал дараах үйлдлийг эхлэхээс өмнө түүнийг болиулах хэрэгтэй. tar болон gzip хийгдсэн багцыг дээрх URL-с татан авч freebsd-update-ийн хамгийн сүүлийн хувилбарыг суулгаж дараах тушаалуудыг ашиглан суулгаж болно: &prompt.root; gunzip -c freebsd-update-upgrade.tgz | tar xvf - &prompt.root; mv freebsd-update.sh /usr/sbin/freebsd-update &prompt.root; mv freebsd-update.conf /etc Одоо байгаа бүх хувилбаруудын хувьд хамгийн сүүлийн хувилбарыг татаж авах шаардлагагүй юм. Тохиргооны файл Процессийг илүү хянах боломжтой болгож зарим хэрэглэгчид тохиргооны файлыг өөрчлөхийг хүсэж болох юм. Тохиргоонууд нь маш сайн баримтжуулагдсан байдаг боловч дараах хэдэн зүйлийг арай илүү тайлбарлах шаардлагатай байж болох юм: # Components of the base system which should be kept updated. Components src world kernel Энэ өгөгдөл нь &os;-ийн аль хэсгийг шинэчлэхийг хянадаг. Анхдагчаар эх код, үндсэн систем бүтнээрээ ба цөмийг шинэчлэх байдаг. Бүрэлдэхүүн хэсгүүд нь суулгах явцад байдагтай адил байдаг бөгөөд жишээ нь "world/games" гэдгийг энд нэмэхэд тоглоомын засваруудыг хийх боломжийг олгоно. "src/bin" гэдгийг ашиглах нь src/bin дахь эх кодыг шинэчлэх боломжийг олгодог. Хамгийн сайн тохиргоо бол үүнийг анхдагчаар нь үлдээх бөгөөд тусгай зүйлс оруулж үүнийг өөрчилснөөр хэрэглэгчид өөрсдийн шинэчлэхийг хүссэн зүйл болгоноо жагсааж оруулах шаардлагатай болно. Ингэснээр эх код болон хоёртын файлуудын хоорондох уялдаа алдагдаж гамшгийн үр дагавар гарч болно. # Paths which start with anything matching an entry in an IgnorePaths # statement will be ignored. IgnorePaths /bin эсвэл /sbin зэрэг замуудыг нэмж эдгээр тусгай сангуудыг шинэчлэх процессийн явцад оролдохгүй орхиж болно. Энэ тохиргоо нь freebsd-update локал өөрчлөлтүүдийг дарж бичихээс хамгаалахад хэрэглэж болно. # Paths which start with anything matching an entry in an UpdateIfUnmodified # statement will only be updated if the contents of the file have not been # modified by the user (unless changes are merged; see below). UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile Заагдсан сангууд дахь тохиргооны файлууд өөрчлөгдөөгүй тохиолдолд шинэчилнэ. Хэрэглэгчийн хийсэн өөрчлөлтүүд эдгээр файлуудын автомат шинэчлэлтийг хүчингүй болгоно. freebsd-update-г нийлүүлэх явцад өөрчлөлтүүдийг хадгалахыг тушаах KeepModifiedMetadata гэсэн өөр нэг тохиргоо байдаг. # When upgrading to a new &os; release, files which match MergeChanges # will have any local changes merged into the version from the new release. MergeChanges /etc/ /var/named/etc/ freebsd-update-ийн нийлүүлэхийг оролдох тохиргооны файлуудтай сангуудын жагсаалт. Файл нийлүүлэх процесс нь цөөн тохиргоотой &man.mergemaster.8;-тай төстэй &man.diff.1; засварууд бөгөөд нийлүүлэлтийг эсвэл хүлээн авах юм уу эсвэл засварлагч нээж эсвэл freebsd-update ажиллагаагаа зогсоох болно. Эргэлзэж байвал /etc санг нөөцөлж аваад нийлүүлэлтүүдийг хүлээн авах хэрэгтэй. mergemaster тушаалын талаар дэлгэрэнгүй мэдээллийг -с үзнэ үү. # Directory in which to store downloaded updates and temporary # files used by &os; Update. # WorkDir /var/db/freebsd-update Энэ сан нь бүх засварууд болон түр зуурын файлууд байх сан юм. Хэрэглэгч хувилбар шинэчлэлт хийж байвал энэ байрлал нь хамгийн багаар бодоход гигабайт дискийн зайтай байх шаардлагатай. # When upgrading between releases, should the list of Components be # read strictly (StrictComponents yes) or merely as a list of components # which *might* be installed of which &os; Update should figure out # which actually are installed and upgrade those (StrictComponents no)? # StrictComponents no yes гэж тохируулсан үед freebsd-update нь Components буюу бүрэлдэхүүн хэсгүүдийн жагсаалт бүрэн гэж тооцох бөгөөд жагсаалтаас гадна өөрчлөлт хийхийг оролдохгүй. freebsd-update нь Components-ийн жагсаалтад хамаарах файл бүрийг шинэчлэхийг оролдох болно. Аюулгүй байдлын засварууд Аюулгүй байдлын засварууд нь алсын машин дээр хадгалагддаг бөгөөд дараах тушаал ашиглан татан авч суулгаж болно: &prompt.root; freebsd-update fetch &prompt.root; freebsd-update install Хэрэв цөмийн ямар нэг засвар хийгдсэн бол системийг дахин ачаалах хэрэгтэй. Хэрэв бүгд зөв явагдсан бол систем нь засвар хийгдсэн байх ёстой бөгөөд freebsd-update-ийг &man.cron.8; ажлаас шөнө бүр ажиллуулж болно. Энэ ажлыг хийхэд дараах мөрийг /etc/crontab-д хийхэд хангалттай байх болно: @daily root freebsd-update cron Энэ мөр нь өдөр бүр freebsd-update-г ажиллуулахыг зааж байна. Ийм аргаар -ий нэмэлт өгөгдлийг ашиглан freebsd-update нь зөвхөн шинэчлэлт байгаа эсэхийг шалгах болно. Хэрэв засварууд байвал тэдгээрийг автоматаар диск рүү татаж авах бөгөөд гэхдээ засваруудыг хийхгүй. root хэрэглэгч рүү захиа илгээгдэх бөгөөд дараа нь тэд гараар суулгаж болох юм. Хэрэв ямар нэг зүйл буруу болбол freebsd-update нь дараах тушаалаар сүүлийн өөрчлөлтүүдийг буцаах чадвартай байдаг: &prompt.root; freebsd-update rollback Дууссаны дараа цөм эсвэл цөмийн модулиуд өөрчлөгдсөн бол системийг дахин эхлүүлэх хэрэгтэй. Энэ нь шинэ хоёртын файлуудыг санах ой руу дуудах боломжийг &os;-д олгоно. freebsd-update тушаал нь зөвхөн GENERIC цөмтэй ажилладаг. Хэрэв ямар нэг өөрчлөлт GENERIC-д хийгдсэн эсвэл өөрчлөн тохируулсан цөм суулгагдсан бол freebsd-update эхний тохиолдолд амжилтгүй болж сүүлийн тохиолдолд алдаа гаргах болно. Major ба Minor буюу Том ба Бага шинэчлэлтүүд Энэ процесс нь ихэнх гуравдагч талын прорамуудыг эвдэх хуучин обьект файлууд болон сангуудыг устгах болно. Бүх суулгагдсан портуудыг устгаж дахин суулгах эсвэл ports-mgmt/portupgrade хэрэгсэл ашиглан сүүлд нь шинэчлэхийг зөвлөдөг. Дараах тушаалыг ашиглан ихэнх хэрэглэгчид тест бүтээлтийг ажиллуулахыг хүснэ: &prompt.root; portupgrade -af Энэ нь бүгдийг зөв дахин суулгах баталгаа болох юм. BATCH орчны хувьсагчийг yes гэж тохируулснаар энэ процессийн явцад гарч ирэх хүлээх мөрөнд yes гэж хариулан бүтээх процессийн үед оролцох шаардлагыг үгүй болгоно. Том ба бага хувилбарын шинэчлэлтүүдийг freebsd-update тушаалд хувилбарын дугаарыг өгч гүйцэтгэж болно, жишээ нь дараах тушаал &os; 6.3 руу шинэчилнэ: &prompt.root; freebsd-update -r 6.3-RELEASE upgrade Тушаал хүлээн авсны дараа freebsd-update системийг шинэчлэхэд шаардлагатай мэдээллийг цуглуулахын тулд тохиргооны файл болон одоогийн системийг шалгана. Ямар бүрэлдэхүүн хэсгүүд илрүүлэгдсэн болон ямар бүрэлдэхүүн хэсгүүд илрүүлэгдээгүй гэдгийг дэлгэц дээр үзүүлнэ. Жишээ нь: Looking up update.FreeBSD.org mirrors... 1 mirrors found. Fetching metadata signature for 6.3-BETA1 from update1.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin world/base world/info world/lib32 world/manpages The following components of FreeBSD do not seem to be installed: kernel/generic world/catpages world/dict world/doc world/games world/proflibs Does this look reasonable (y/n)? y Энд хүрэхэд freebsd-update шинэчлэлтэд шаардлагатай бүх файлуудыг татан авахаар оролдох болно. Зарим тохиолдолд хэрэглэгчээс юу суулгах эсвэл хэрхэн цааш үргэлжлүүлэх талаар асуултууд асууж болох юм. Бүх засварууд локал систем рүү татагдсаны дараа тэдгээрийг хийж өгөх болно. Машины хурд болон ачааллаас хамаарч энэ процесс нь хугацаа шаардаж болох юм. Тохиргооны файлуудыг нийлүүлэх болно. Файл нийлүүлэгдэх юм уу эсвэл гараар нийлүүлэхэд зориулж засварлагч дэлгэц дээр гарч ирч болох учир процессийн энэ хэсэг хэрэглэгчийн оролцоо шаардана. Амжилттай нийлүүлэлт болгоны үр дүн хэрэглэгчид харуулагдаж процесс үргэлжлэх болно. Амжилтгүй болсон эсвэл орхигдсон нийлүүлэлт нь процессийг зогсоох болно. Хэрэглэгчид нь /etc сангийн нөөцийг хийж master.passwd эсвэл group зэрэг чухал файлуудыг гараар сүүлд нь нийлүүлэхийг хүсэж болох юм. Систем нь өөрчлөгдөөгүй байгаа бөгөөд бүх засвар оруулалт болон нийлүүлэлт өөр сан дотор болж байгаа болно. Бүх засварууд амжилттай хийгдэж бүх тохиргооны файлууд нийлүүлэгдэж процесс тэгш явагдаж байгаа мэт санагдвал хэрэглэгч өөрчлөлтүүдийг хийх хэрэгтэй. Энэ процесс дууссаны дараа шинэчлэлтийг дараах тушаалыг ашиглан диск рүү хийж болно. &prompt.root; freebsd-update install Цөм болон цөмийн модулиудад эхлээд засвар хийнэ. Энэ үед машиныг дахих ачаалах ёстой. Шинэ цөм санах ойд дуудагдсан байхын тулд дараах тушаалыг ажиллуулж машиныг дахин эхлүүлнэ: &prompt.root; shutdown -r now Систем буцаж ассаны дараа freebsd-update-г дахин эхлүүлэх хэрэгтэй. Процессийн төлөв хадгалагдсан болохоор freebsd-update эхнээсээ эхлэхгүй бөгөөд бүх хуучин хуваалцсан сангууд болон обьект файлуудыг устгах болно. Энэ шатыг үргэлжлүүлэхийн тулд дараах тушаалыг ажиллуулна: &prompt.root; freebsd-update install Сангуудын хувилбарын тоо дээшилсэн эсэхээс хамаарч суулгах гурван шатны оронд хоёр шат байж болох юм. Бүх гуравдагч талын програм хангамжийг дахин бүтээж дахин суулгах хэрэгтэй. Суулгагдсан програм хангамж нь шинэчлэлтийн процессийн явцад устгагдсан сангуудаас хамаарч болох учраас энэ нь шаардлагатай юм. ports-mgmt/portupgrade тушаалыг үүнийг автоматжуулахад ашиглаж болох юм. Энэ процессийг эхлүүлэхийн тулд дараах тушаалыг хэрэглэж болно: &prompt.root; portupgrade -f ruby &prompt.root; rm /var/db/pkg/pkgdb.db &prompt.root; portupgrade -f ruby18-bdb &prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db &prompt.root; portupgrade -af - Энэ нь дууссан бөгөөд шинэчлэлтийн процессийг + Үүнийг дууссаны дараа шинэчлэлтийн процессийг freebsd-update-ийг сүүлийн удаа дуудаж төгсгөнө. Шинэчлэлтийн процессийн сул байгаа бүх зүйлсийг гүйцээхийн тулд дараах тушаалыг ажиллуулна: &prompt.root; freebsd-update install Машинаа &os;-ийн шинэ хувилбар руу дахин ачаалах хэрэгтэй. Процесс дууслаа. Системийн төлвийн харьцуулалт freebsd-update хэрэгслийг &os;-ийн суулгагдсан хувилбарын төлвийг байгаа зөв хуулбарын эсрэг тест хийхэд хэрэглэж болно. Энэ сонголт нь системийн хэрэгслүүд сангууд болон тохиргооны файлуудын одоогийн хувилбаруудыг шалгадаг. Харьцуулалтыг эхлүүлэхийн тулд дараах тушаалыг ажиллуулна: &prompt.root; freebsd-update IDS >> outfile.ids Тушаалын нэр IDS боловч энэ нь ямар тохиолдолд security/snort зэрэг халдлага илрүүлэгч системийг солих зориулалттай биш юм. freebsd-update нь өгөгдлийг диск дээр хадгалдаг бөгөөд түүнийг өөрчлөх боломж тодорхой юм. kern.securelevel тохиргоог ашиглах болон freebsd-update-ийн өгөгдлийг зөвхөн уншигдах файлын систем дээр ашиглагдаагүй тохиолдолд хадгалах нь энэ боломжийг багасгах боловч илүү сайн шийдэл нь системийг DVD эсвэл нууцлаг хадгалсан гадаад USB дискийн төхөөрөмж зэрэг нууцлаг дисктэй харьцуулах явдал юм. Систем нь одоо шалгагдах бөгөөд файлууд нь өөрсдийн &man.sha256.1; утгуудын хамт, хувилбар дахь мэдэгдэж байгаа сайн утгууд болон - одоо суугдсан байгаа утгууд зэрэг харьцуулагдан шалгагдана. + одоо суугдсан байгаа утгуудын хамт хэвлэгдэнэ харуулагдана. Энэ нь яагаад гаралт outfile.ids файл руу илгээгдсэн шалтгаан юм. Үүнийг нүдээр шалгахад хэтэрхий хурдан дээш гүйж удалгүй консолын буфферийг дүүргэх болно. Эдгээр мөрүүд нь бас хэтэрхий урт боловч гаралтын хэлбэрийг хялбараар задлан ялгаж болно. Жишээ нь хувилбарт байгаагаас ондоо бүх файлуудын жагсаалтыг авахын тулд дараах тушаалыг ажиллуулна: - &prompt.root; cat update.ids | awk '{ print $1 }' | more + &prompt.root; cat outfile.ids | awk '{ print $1 }' | more /etc/master.passwd /etc/motd /etc/passwd /etc/pf.conf Энэ гаралт нь тайрагдсан бөгөөд олон файл байгаа болно. Эдгээр файлуудын зарим нь төрөлхийн өөрчлөлтүүдтэй байна, жишээ нь /etc/passwd нь хэрэглэгч системд нэмэгдсэн болохоор өөрчлөгдсөн байна. Зарим тохиолдолд freebsd-update нь шинэчилсэн байж болзошгүй учир цөмийн модулиуд зэрэг бусад файлууд өөр байж болох юм. Тусгай файлууд болон сангуудыг хасахын тулд тэдгээрийг /etc/freebsd-update.conf файлын IDSIgnorePaths тохиргоонд нэмж өгнө. Өмнө хэлэлцсэн хувилбараас гадна нарийн нягт шинэчлэлтийн аргын хэсэг болгон энэ системийг ашиглаж болно. Portsnap: Портын цуглуулгын шинэчлэх хэрэгсэл &os;-ийн үндсэн систем портын цуглуулгыг бас шинэчилдэг &man.portsnap.8; хэрэгслийг агуулдаг. Ажиллуулсны дараа энэ нь алсын сайт руу холбогдож нууц түлхүүрийг шалгаж портын цуглуулгын шинэ хуулбарыг татан авдаг. Түлхүүр нь бүх татаж авсан файлууд татагдаж байхдаа өөрчлөгдөөгүй эсэхийг хянан бүрэн бүтэн байдлыг шалгахад ашиглагддаг. Хамгийн сүүлийн үеийн портын цуглуулгыг татаж авахын тулд дараах тушаалыг ажиллуулна: &prompt.root; portsnap fetch Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found. Fetching snapshot tag from portsnap1.FreeBSD.org... done. Fetching snapshot metadata... done. Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008. Fetching 3 metadata patches.. done. Applying metadata patches... done. Fetching 3 metadata files... done. Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done. Applying patches... done. Fetching 133 new ports or files... done. Энэ жишээ нь юу үзүүлж байна вэ гэхээр &man.portsnap.8; одоо байгаа портын өгөгдөлд хэд хэдэн засварууд байгааг олж шалгаж байна. Энэ нь бас уг хэрэгсэл өмнө нь ажилласныг харуулж байгаа бөгөөд хэрэв эхний удаа ажилласан бол цуглуулга татагдан авагдах байсан юм. &man.portsnap.8; нь fetch үйлдлийг хийж дууссаны дараа локал систем дээр байгаа портын цуглуулга болон дараа дараагийн засваруудыг шалгалтад дамжуулна. Шинэчлэгдсэн файлуудыг дараахийг бичиж суулгаж болно: &prompt.root; portsnap extract /usr/ports/.cvsignore /usr/ports/CHANGES /usr/ports/COPYRIGHT /usr/ports/GIDs /usr/ports/KNOBS /usr/ports/LEGAL /usr/ports/MOVED /usr/ports/Makefile /usr/ports/Mk/bsd.apache.mk /usr/ports/Mk/bsd.autotools.mk /usr/ports/Mk/bsd.cmake.mk ... Процесс одоо дууссан бөгөөд портын цуглуулыг ашиглан програмуудыг суулгаж эсвэл шинэчилж болно.