diff --git a/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml b/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml
index 71a1048324..01d7e9cbbf 100644
--- a/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml
@@ -1,3032 +1,3032 @@
Жим
Мок
Бүтцийг дахин өөрчлөн зохион байгуулж зарим хэсгүүдийг шинэчилсэн
Жордан
Хаббард
Анхлан эхийг бичсэн
Поул-Хэннинг
Камп
Жон
Полстра
Ник
Клэйтон
Цагаанхүүгийн
Ганболд
Орчуулсан
&os;-г шинэчилж сайжруулах нь
Ерөнхий агуулга
&os; нь өөрийн хувилбаруудын хооронд байнгын хөгжүүлэлтийн доор оршин тогтнож
байдаг. Зарим хүмүүс албан ёсоор гаргасан хувилбаруудыг ашиглах хүсэлтэй
байдаг бол зарим хүмүүс хамгийн сүүлийн үеийн хөгжүүлэлтийг дагах сонирхолтой
байдаг. Гэхдээ албан ёсны хувилбарууд хүртэл аюулгүй байдлын болоод бусад
чухал засваруудаар шинэчлэгдэж байдаг. Ямар хувилбар ашиглаж байгаагаас үл
хамаараад &os; нь таны системийг шинэ байлгахад шаардлагатай бүх л хэрэгслүүд
болон хувилбар хооронд хялбараар шинэчлэх боломжоор хангадаг.
Энэхүү бүлэг нь хөгжүүлэлтийн системийг дагахыг хүсэх эсвэл гаргасан
хувилбартай үлдэх эсэхийг шийдэхэд танд туслах болно. Таны системийг шинэчлэхэд
зориулсан үндсэн хэрэгслүүдийг бас харуулах болно.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Систем болон портын цуглуулгыг ямар хэрэгслүүд
ашиглан шинэчилж болох талаар.
freebsd-update,
CVSup,
CVS, эсвэл
CTM програмуудын тусламжтай өөрийн системийг
хэрхэн хамгийн сүүлийн хэлбэрт авчрах талаар.
Суулгагдсан системийн төлвийг мэдэгдэж байгаа сайн хуулбартай
хэрхэн харьцуулах талаар.
CVSup эсвэл баримтжуулах порт ашиглан өөрийн баримтуудыг
хэрхэн сүүлийн хувилбарт байлгаж байх талаар.
&os.stable; болон &os.current; хөгжүүлэлтийн
салбаруудын ялгаа.
Бүх үндсэн системийг make buildworld
(гэх мэт) ашиглан хэрхэн дахин бүтээж суулгах талаар.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:
Өөрийн сүлжээний холболтыг зөв тохируулах ().
Нэмэлт гуравдагч програм хангамжуудыг
хэрхэн суулгахыг мэдэх ().
Энэ бүлэгт &os;-ийн эхийг авч шинэчлэхийн тулд
cvsup тушаалыг ашиглагдсан. Үүнийг хэрэглэхийн
тулд net/cvsup-without-gui
гэсэн порт буюу багцыг та суулгах хэрэгтэй. Хэрэв та &os; 6.2-RELEASE
юм уу эсвэл түүнээс хойшхи хувилбар хэрэглэж байвал үндсэн системийн
хэсэг болсон &man.csup.1; тушаалаар үүнийг орлуулж хэрэглэж болно.
Том
Рөүдс
Бичсэн
Колин
Персивал
Тэмдэглэгээ бичсэн
FreeBSD-ийн шинэчлэлт
Updating and Upgrading
freebsd-update
updating-upgrading
Аюулгүй байдлын засваруудыг хийнэ гэдэг компьютерийн програм
хангамж ялангуяа үйлдлийн системийг арчлалтын чухал хэсгийн нэг юм.
Удаан хугацааны туршид &os; дээр энэ процесс хялбар биш байлаа.
Засваруудыг эх код руу хийж кодыг хоёртын хэлбэр рүү дахин бүтээж
дараа нь хоёртын файлуудыг дахин суулгах шаардлагатай байлаа.
Энэ нь одоо тийм биш болсон бөгөөд &os; нь
freebsd-update гэгддэг хэрэгслийг агуулдаг.
Энэ хэрэгсэл нь хоёр тусдаа функцээр хангадаг. Нэгдүгээрт энэ нь
бүтээлт болон суулгах шаардлагагүйгээр хоёртын аюулгүй байдал болон
алдааны шинэчлэлтүүдийг &os;-ийн үндсэн системд оруулах боломжийг
олгодог. Хоёрдугаарт уг хэрэгсэл бага болон том хувилбарын шинэчлэлтүүдийг
дэмждэг.
Аюулгүй байдлын багаар дэмжигдсэн бүх архитектур болон
хувилбаруудын хувьд хоёртын шинэчлэлтүүд байдаг боловч &os; үйлдлийн
системийн шинэчлэлтүүд зэрэг зарим нэг боломжууд нь &man.freebsd-update.8;-ийн
- хамгийн сүүлийн хувилбар болон &os; 6.3 болон түүнээс дээших хувилбарыг шаарддаг. Шинэ хувилбар
+ хамгийн сүүлийн хувилбар болон &os; 6.3 болон түүнээс дээших хувилбарыг шаарддаг. Шинэ хувилбар
руу шинэчлэхээс өмнө хүссэн хувилбарт чинь хамаатай чухал мэдээлэл байж
болох учир одоогийн хувилбарын зарлалуудыг дахин үзэх хэрэгтэй. Тэдгээр
зарлалуудыг дараах холбоосоос үзэж болно:
.
Хэрэв crontab нь freebsd-update-ийн
боломжуудыг хэрэглэж байвал дараах үйлдлийг эхлэхээс өмнө түүнийг болиулах
хэрэгтэй.
Тохиргооны файл
Процессийг илүү хянах боломжтой болгож зарим хэрэглэгчид
/etc/freebsd-update.conf анхны тохиргооны
файлыг өөрчлөхийг хүсэж болох юм. Тохиргоонууд нь
маш сайн баримтжуулагдсан байдаг боловч дараах хэдэн зүйлийг
арай илүү тайлбарлах шаардлагатай байж болох юм:
# 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 цөмийг шинэчилж чаддаг.
Хэрэв өөрчлөн тохируулсан цөм ашиглагдаж байвал freebsd-update нь
шинэчлэлтийг хийж дууссаны дараа цөмийг дахин бүтээж суулгах шаардлагатай.
Гэхдээ freebsd-update нь /boot/GENERIC (хэрэв байгаа бол)
дахь GENERIC цөмийг системийн тухайн үеийн (ажиллаж байгаа)
цөм биш байсан ч гэсэн олж шинэчилдэг.
/boot/GENERIC дахь
GENERIC цөмийн хуулбарыг үргэлж хадгалах нь ер нь зүйтэй
байдаг. Энэ нь төрөл бүрийн асуудлуудыг шинжлэх болон
-т тайлбарласны дагуу
freebsd-update-г ашиглан
хувилбар шинэчлэлтийг хийхэд ач тустай байх болно.
/etc/freebsd-update.conf дахь анхдагч тохиргоо
өөрчлөгдөөгүй л бол freebsd-update шинэчлэгдсэн
цөмийн эхийг бусад шинэчлэлттэй цуг суулгах болно. Дараа нь өөрийн өөрчлөн
тохируулсан цөмийг дахин бүтээж суулгахдаа энгийн сурсан аргаараа хийж
болно.
freebsd-update-аар түгээгдсэн шинэчлэлтүүд нь
цөмтэй үргэлж холбоотой байдаггүй. freebsd-update install
тушаалаар цөмийн эх өөрчлөгдөөгүй бол өөрийн өөрчлөн тохируулсан цөмийг дахин
бүтээх шаардлагагүй юм. Гэхдээ freebsd-update
тушаал /usr/src/sys/conf/newvers.sh файлыг
үргэлж шинэчлэх болно. Тухайн үеийн нөхөөсийн түвшинг (uname -r
тушаалаас гарсан -p дугаараар заагдсан) энэ файлаас
авдаг. Өөр бусад юмс өөрчлөгдөөгүй байсан ч гэсэн өөрийн өөрчлөн тохируулсан
цөмийг дахин бүтээх нь системийн тухайн үеийн нөхөөсийн түвшинг зөв гаргах
боломжийг &man.uname.1;-д олгоно. Энэ нь олон системийг арчилж байгаа үед
ялангуяа ач тустай байдаг бөгөөд ингэснээр тэр системүүд дээр суулгагдсан
шинэчлэлтүүдэд түргэн шуурхай үнэлгээ өгөх боломжийг олгодог.
Major ба Minor буюу Том ба Бага шинэчлэлтүүд
Энэ процесс нь ихэнх гуравдагч талын прорамуудыг эвдэх
хуучин обьект файлууд болон сангуудыг устгах болно.
Бүх суулгагдсан портуудыг устгаж дахин суулгах эсвэл
ports-mgmt/portupgrade
хэрэгсэл ашиглан сүүлд нь шинэчлэхийг зөвлөдөг. Дараах тушаалыг
ашиглан ихэнх хэрэглэгчид тест бүтээлтийг ажиллуулахыг хүснэ:
&prompt.root; portupgrade -af
Энэ нь бүгдийг зөв дахин суулгах баталгаа болох юм.
BATCH орчны хувьсагчийг yes
гэж тохируулснаар энэ процессийн явцад гарч ирэх хүлээх мөрөнд
yes гэж хариулан бүтээх процессийн
үед оролцох шаардлагыг үгүй болгоно.
Хэрэв өөрчлөн тохируулсан цөм ашиглагдаж байгаа бол шинэчлэх
процесс арай илүү ажиллагаатай. GENERIC цөмийн
хуулбар шаардлагатай бөгөөд /boot/GENERIC-д байрлуулах
шаардлагатай. Хэрэв GENERIC цөм системд байхгүй
бол үүнийг доор дурдсан аргуудын аль нэгийг ашиглан олж авч болно:
Хэрэв өөрчлөн тохируулсан цөм зөвхөн нэг удаа бүтээгдсэн бол
/boot/kernel.old дахь
цөм нь GENERIC цөм юм. Энэ санг
/boot/GENERIC гэж
өөрчлөхөд л болно.
Машинд физикээр хандах боломжтой гэж тооцвол
GENERIC цөмийн хуулбарыг CD-ROM зөөвөрлөгчөөс
суулгаж болно. Өөрийн суулгац дискийг хийж дараах тушаалуудыг
ашиглана:
&prompt.root; mount /cdrom
&prompt.root; cd /cdrom/X.Y-RELEASE/kernels
&prompt.root; ./install.sh GENERIC
X.Y-RELEASE-г
өөрийн ашиглаж байгаа хувилбараар солих хэрэгтэй. GENERIC
цөм анхдагчаар /boot/GENERIC-д суулгагдах болно.
Дээр дурдсан бүгдийг хийх боломжгүй бол GENERIC
цөмийг эхээс нь дахин бүтээж суулгаж болох юм:
&prompt.root; cd /usr/src
&prompt.root; env DESTDIR=/boot/GENERIC make kernel
&prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
&prompt.root; rm -rf /boot/GENERIC/boot
Энэ цөмийг freebsd-update хэрэгсэлд
GENERIC гэж харуулахын тулд GENERIC
тохиргооны файлыг ямар ч тохиолдолд өөрчилсөн байх ёсгүй. Бас ямар нэг
тусгай сонголтуудгүйгээр (аль болох хоосон /etc/make.conf
файлтайгаар) бүтээгдсэн байх ёстойг зөвлөдөг.
Энэ үед GENERIC цөм рүү дахин ачаалах
шаардлагагүй юм.
Том ба бага хувилбарын шинэчлэлтүүдийг
freebsd-update тушаалд хувилбарын дугаарыг өгч
гүйцэтгэж болно, жишээ нь дараах тушаал &os; 6.4 руу
шинэчилнэ:
&prompt.root; freebsd-update -r 6.4-RELEASE upgrade
Тушаал хүлээн авсны дараа freebsd-update
системийг шинэчлэхэд шаардлагатай мэдээллийг цуглуулахын тулд
тохиргооны файл болон одоогийн системийг шалгана. Ямар бүрэлдэхүүн
хэсгүүд илрүүлэгдсэн болон ямар бүрэлдэхүүн хэсгүүд илрүүлэгдээгүй
гэдгийг дэлгэц дээр үзүүлнэ. Жишээ нь:
Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 6.3-RELEASE 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 шинэчлэлтэд
шаардлагатай бүх файлуудыг татан авахаар оролдох болно. Зарим
тохиолдолд хэрэглэгчээс юу суулгах эсвэл хэрхэн цааш үргэлжлүүлэх
талаар асуултууд асууж болох юм.
Өөрчлөн тохируулсан цөмийг ашиглаж байх үед дээрх алхам
дараахтай төстэй анхааруулгыг харуулах болно:
WARNING: This system is running a "MYKERNEL" kernel, which is not a
kernel configuration distributed as part of FreeBSD 6.3-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"
Энэ анхааруулгыг энэ үед орхигдуулахад аюулгүй байдаг. Шинэчлэгдсэн
GENERIC цөм шинэчлэлтийн явцад завсрын алхам
болон ашиглагдах болно.
Бүх засварууд локал систем рүү татагдсаны дараа тэдгээрийг
хийж өгөх болно. Машины хурд болон ачааллаас хамаарч энэ процесс нь
хугацаа шаардаж болох юм. Тохиргооны файлуудыг нийлүүлэх болно.
Файл нийлүүлэгдэх юм уу эсвэл гараар нийлүүлэхэд зориулж засварлагч
дэлгэц дээр гарч ирч болох учир процессийн энэ хэсэг хэрэглэгчийн
оролцоо шаардана. Амжилттай нийлүүлэлт болгоны үр дүн хэрэглэгчид
харуулагдаж процесс үргэлжлэх болно. Амжилтгүй болсон эсвэл орхигдсон
нийлүүлэлт нь процессийг зогсоох болно. Хэрэглэгчид нь
/etc сангийн нөөцийг
хийж master.passwd эсвэл
group зэрэг чухал файлуудыг гараар сүүлд нь
нийлүүлэхийг хүсэж болох юм.
Систем нь өөрчлөгдөөгүй байгаа бөгөөд бүх засвар оруулалт
болон нийлүүлэлт өөр сан дотор болж байгаа болно. Бүх засварууд
амжилттай хийгдэж бүх тохиргооны файлууд нийлүүлэгдэж процесс
тэгш явагдаж байгаа мэт санагдвал хэрэглэгч өөрчлөлтүүдийг хийх
хэрэгтэй.
Энэ процесс дууссаны дараа шинэчлэлтийг дараах тушаалыг ашиглан
диск рүү хийж болно.
&prompt.root; freebsd-update install
Цөм болон цөмийн модулиудад эхлээд засвар хийнэ. Энэ үед
машиныг дахих ачаалах ёстой. Хэрэв систем өөрчлөн тохируулсан цөмөөр
ажиллаж байгаа бол цөмийг /boot/GENERIC (шинэчлэгдсэн)
цөмөөр дараа нь ачаалахаар болгохын тулд &man.nextboot.8;-ийг
ашиглана:
&prompt.root; nextboot -k GENERIC
GENERIC цөмөөр ачаалахаас өмнө (хэрэв шинэчлэгдэж
байгаа машинд алсаас хандаж байгаа бол сүлжээнд холбогдон) таны систем зөв ачаалахын
тулд шаардлагатай бүх драйверуудыг агуулсан эсэхийг шалгах хэрэгтэй. Ялангуяа
хэрэв өмнө нь ажиллаж байсан өөрчлөн тохируулсан цөм ерөнхийдөө цөмийн модулиудаар
хангагдаж байдаг ажиллагааг өөртөө агуулсан бол /boot/loader.conf
боломжийг ашиглан эдгээр модулиудыг GENERIC цөмд түр зуур
ачаалахаа мартуузай. Шинэчлэх процесс бүрэн дуустал шаардлагагүй үйлчилгээнүүд, диск
болон сүлжээний холболтууд гэх мэтийг та бас хааж өгч болох юм.
Одоо машин шинэчлэгдсэн цөмөөр ачаалагдах ёстой:
&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
Хэрэв GENERIC цөм түр зуур ашиглагдаж байсан
бол өөрчлөн тохируулсан шинэ цөмийг ердийн хэвшсэн аргаар одоо бүтээж суулгах цаг
болжээ.
Машинаа &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 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: Портын цуглуулгыг шинэчлэх хэрэгсэл
Updating and Upgrading
Portsnap
updating-upgrading
&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 үйлдлийг хийж
дууссаны дараа локал систем дээр байгаа портын цуглуулга болон дараа дараагийн
засваруудыг шалгалтад дамжуулна. portsnap-ийг эхний удаа ажиллуулахдаа
extract-г ашиглан шинэчлэгдсэн файлуудыг суулгаж болно:
&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
...
portsnap fetch-ийг дахин ажиллуулахдаа
update-г ашиглах ёстой:
&prompt.root; portsnap update
Процесс одоо дууссан бөгөөд портын цуглуулыг ашиглан
програмуудыг суулгаж эсвэл шинэчилж болно.
fetch болон extract эсвэл
update үйлдлүүдийг доор харуулсан шиг дараалуулан
ажиллуулж болно:
&prompt.root; portsnap fetch update
Баримтын цуглуулгыг шинэчлэх нь
Updating and Upgrading
Documentation
Updating and Upgrading
Үндсэн систем болон портын цуглуулгаас гадна
баримтууд нь &os; үйлдлийн системийн салшгүй хэсэг юм. Хэдийгээр
&os;-ийн хамгийн сүүлийн үеийн баримтын цуглуулга &os; вэб сайт дээр
үргэлж байдаг боловч зарим хэрэглэгчид удаан сүлжээний холболттой эсвэл
бүр тогтмол сүлжээний холболтгүй байж болох юм. Азаар &os;-ийн хамгийн
сүүлийн үеийн баримтын цуглуулгын локал хуулбарыг арчлан хувилбар бүртэй цуг
ирдэг баримтыг шинэчлэх хэд хэдэн арга байдаг.
Баримтыг шинэчлэхийн тулд CVSup-г ашиглах нь
Үндсэн системийг шинэчлэхтэй төстэй аргыг ашиглан
CVSup хэрэглэн эх болон &os;-ийн
баримтуудын суулгагдсан хуулбарыг шинэчилж болно
(). Энэ хэсэг дараах зүйлсийг
тайлбарладаг:
&os;-ийн баримтуудыг эхээс нь бүтээхэд шаардлагатай
хэрэгслүүд, баримтын хэрэгслүүдийг хэрхэн суулгах
талаар.
CVSup ашиглан
/usr/doc дахь
баримтын эхийн хуулбарыг хэрхэн татаж авах талаар.
&os;-ийн баримтыг эхээс нь хэрхэн бүтээж
/usr/share/doc дотор
суулгах талаар.
Баримтыг бүтээх системийн дэмждэг бүтээлтийн
зарим тохируулгууд, өөрөөр хэлбэл баримтын зарим нэг
хэл дээрх орчуулгыг зөвхөн бүтээдэг тохируулгууд эсвэл
тусгай гаралтын хэлбэржүүлэлтийг сонгодог тохируулгууд.
CVSup болон баримтын хэрэгслүүдийг суулгах нь
&os;-ийн баримтыг эхээс нь бүтээхэд нэлээн олон
тооны хэрэгслүүдийг шаарддаг. Эдгээр хэрэгслүүд нь
&os;-ийн үндсэн системийн хэсэг биш байдаг. Учир нь эдгээр нь
ихээхэн хэмжээний дискийн зай шаарддаг бөгөөд &os;-ийн бүх
хэрэглэгчдэд хэрэгтэй байдаггүй. Тэдгээр нь &os;-д зориулж
шинэ баримтууд идэвхтэй бичдэг эсвэл өөрсдийн баримтыг
эхээс нь байнга шинэчилдэг хэрэглэгчдэд зөвхөн хэрэгтэй
байдаг.
Бүх шаардлагатай хэрэгслүүд портын цуглуулгад байдаг.
Эдгээр хэрэгслүүдийн эхний суулгалт болон хожмын шинэчлэлтүүдийг
хялбаршуулах textproc/docproj порт нь &os;-ийг
баримтжуулах төслөөс хөгжүүлсэн мастер порт юм.
&postscript; эсвэл PDF баримт шаардлагагүй үед харин
textproc/docproj-nojadetex портыг
суулгаж болох юм. Баримтын хэрэгслийн энэ хувилбар нь
teTeX тайпсет хөдөлгүүрээс бусад
бүгдийг багтаасан байдаг. teTeX нь
маш олон хэрэгслүүдийн цуглуулга учир PDF гаралт үнэхээр
шаардлагагүй тохиолдолд суулгахгүй байх нь зохимжтой
байдаг.
CVSup-г суулгаж ашиглах талаарх
дэлгэрэнгүй мэдээллийг CVSup-г ашиглах хэсгээс үзнэ үү.
Баримтын эхийг шинэчлэх нь
CVSup нь
/usr/share/examples/cvsup/doc-supfile файлыг
тохиргооны загвар болгон ашиглаж баримтын эхийн цэвэр хуулбарыг татан
авч чаддаг. Анхдагч шинэчлэлтийн хост нь doc-supfile
файлд зааснаар байгаа боловч &man.cvsup.1; нь тушаалын мөрөөс хостын
нэрийг авдаг бөгөөд баримтын эхийг аль нэг CVSup
серверээс дараах тушаалыг бичин татан авч болно:
&prompt.root; cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfile
cvsup.FreeBSD.org-г хамгийн ойр
CVSup серверээр солих хэрэгтэй. Толин
тусгал сайтуудын бүрэн жагсаалтыг -с үзнэ үү.
Баримтын эхийн эхний таталт хугацаа шаардаж болох юм. Дуустал нь
хүлээх хэрэгтэй.
Баримтын эхийн дараа дараагийн шинэчлэлтүүдийг дээрх тушаалыг
ашиглан татан авч болно. CVSup хэрэгсэл нь
хамгийн сүүлийн удаа ажилласнаашаа хойших шинэчлэлтүүдийг зөвхөн татан
авч хуулдаг учир эхний удаа бүрэн ажилласнаас хойш дараа дараагийн
удаа CVSup-г ажиллуулахад илүү хурдан
байдаг.
Эхийг татан авсныхаа дараа баримтыг шинэчлэх өөр нэг арга нь
/usr/doc сангийн
Makefile-аар дэмжигдсэн байдаг.
/etc/make.conf файлд
SUP_UPDATE, SUPHOST болон
DOCSUPFILE-ийг тохируулснаар доорхийг
ажиллуулах боломжтой болно:
&prompt.root; cd /usr/doc
&prompt.root; make update
/etc/make.conf-д зориулсан
&man.make.1;-ийн эдгээр тохируулгууд ийм байдаг:
SUP_UPDATE= yes
SUPHOST?= cvsup.freebsd.org
DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile
SUPHOST
болон DOCSUPFILE утгад ?=-г
өгснөөр бүтээх тушаалын мөрөөс өөрчлөх боломжийг бүрдүүлдэг.
Энэ нь make.conf-д тохируулгууд нэмэх
зөвлөсөн арга юм. Ингэснээр өөр өөр тохируулгын утгыг тест хийх
болгонд файлыг засварлах шаардлагагүй болгодог.
Баримтын эхийн тааруулж болох тохируулгууд
&os;-ийн баримтжуулалтыг бүтээж шинэчлэх систем нь баримтын
зөвхөн тодорхой хэсгийг шинэчлэх эсвэл тусгай орчуулгыг бүтээх
процессийг амарчлах хэдэн тохируулгыг дэмждэг. Эдгээр тохируулгуудыг
/etc/make.conf файлд бүхэл системийн
хувьд зааж өгөх юм уу эсвэл &man.make.1; хэрэгсэлд тушаалын
мөрийн тохиргоо маягаар зааж өгч болно.
Дараах тохируулгууд нь эдгээрийн зарим нь юм:
DOC_LANG
Бүтээж суулгах хэл ба кодчилолын жагсаалт, жишээ нь
Англи баримтад зөвхөн зориулсан en_US.ISO8859-1
байна.
FORMATS
Бүтээх ганц хэлбэржүүлэлт эсвэл гаралтын хэлбэржүүлэлтийн
жагсаалт. Одоогоор html,
html-split, txt,
ps, pdf,
болон rtf дэмжигдсэн байгаа.
SUPHOST
Шинэчлэхэд ашиглах CVSup
серверийн хостын нэр.
DOCDIR
Баримтыг суулгах газар. Анхдагчаар
/usr/share/doc байдаг.
&os; дээрх системийн тохируулга болон дэмжигдсэн бүтээлтийн
хувьсагчуудын талаар дэлгэрэнгүйг &man.make.conf.5;-с үзнэ үү.
&os;-ийн баримтжуулалт бүтээх системийн дэмждэг бүтээлтийн
хувьсагчуудын талаар дэлгэрэнгүйг
Шинэ хувь нэмэр оруулагчдад
зориулсан &os; баримтжуулах төслийн гарын авлагаас үзнэ үү.
&os;-ийн баримтуудыг эхээс суулгах нь
Баримтын эхийн хамгийн сүүлийн хормын хувилбарыг
/usr/doc санд татаж авснаар
суулгагдсан баримтын шинэчлэлтийг хийхэд бүх юм бэлэн болно.
DOC_LANG makefile-ийн тохиргоонд заагдсан
бүх хэлний бүрэн шинэчлэлтийг дараахийг бичин хийж болно:
&prompt.root; cd /usr/doc
&prompt.root; make install clean
Хэрэв make.conf нь зөв
DOCSUPFILE, SUPHOST
болон SUP_UPDATE тохиргоонуудтайгаар
тохируулагдсан бол суулгах алхмыг баримтын шинэчлэлттэй цуг
хамтатган ингэж хийж өгч болно:
&prompt.root; cd /usr/doc
&prompt.root; make update install clean
Хэрэв зөвхөн тусгай хэлний шинэчлэлт хэрэгтэй бол
/usr/doc-ийн тухайн хэлний
тусгай дэд санд &man.make.1;-ийг ажиллуулж болно, жишээ нь:
&prompt.root; cd /usr/doc/en_US.ISO8859-1
&prompt.root; make update install clean
Суулгах гаралтын хэлбэржүүлэлтийг FORMATS
бүтээлтийн хувьсагчийг зааж өгөн хийж өгч болно,
жишээ нь:
&prompt.root; cd /usr/doc
&prompt.root; make FORMATS='html html-split' install clean
Марк
Фонвил
Хувь нэмэр болгосон
Баримтжуулах портуудыг ашиглах нь
Updating and Upgrading
documentation package
Updating and Upgrading
Өмнөх хэсэгт &os;-ийн баримтжуулалтыг эхээс нь
шинэчлэх аргыг бид танилцуулсан. &os;-ийн бүх системүүдийн
хувьд эх дээр тулгуурласан шинэчлэлтүүд нь боломжтой эсвэл
практикийн биш байж болох юм. Баримтжуулалтын эхүүдийг
бүтээх нь нэлээн их хэмжээний хэрэгслийн цуглуулга буюу
баримтжуулалт бүтээх хэрэгслийн олонлог,
CVS-ийг тодорхой хэмжээгээр мэдэх,
репозиториос эхийг татаж авах болон татаж авсан эхээ
бүтээх хэд хэдэн шат дарааллуудыг шаарддаг. Энэ хэсэгт
бид &os;-ийн баримтжуулалтын суулгагдсан хуулбаруудыг
шинэчлэх өөр аргыг тайлбарлах болно. Энэ нь портын
цуглуулгыг ашиглах бөгөөд дараах боломжийг бүрдүүлнэ:
Бүгдийг бүтээлгүйгээр баримтжуулалтын урьдчилан
бүтээсэн хормын хувилбарыг татан авч суулгах
(ингэснээр баримтжуулалт бүтээх хэрэгслийн олонлогийг
бүхэлд нь суулгах шаардлагагүй болно).
Баримтжуулалтын эхийг татаж аван портын тогтолцоог
ашиглан бүтээх (татаж аван бүтээх алхмуудыг арай хялбар
болгодог).
&os;-ийн баримтжуулалтыг шинэчлэх эдгээр хоёр арга нь
&a.doceng;-ийн сар бүр шинэчилдэг баримтжуулалтын
портуудын цуглуулгаар дэмжигддэг. Эдгээр нь
&os;-ийн портын цуглуулгад docs
виртуал төрөлд байдаг.
Баримтжуулалтын портуудыг бүтээж суулгах нь
Баримтжуулалтын портууд нь баримтжуулалтын бүтээлтийг
хялбар болгохын тулд порт бүтээх тогтолцоог хэрэглэдэг.
&man.make.1;-ийг тохирох орчны тохиргоонууд болон тушаалын
мөрийн тохиргоонуудын хамтаар ажиллуулж баримтжуулалтын
эхийг татаж авах процессыг тэд автоматжуулдаг бөгөөд
баримтжуулалтын суулгалт болон устгалтыг &os;-ийн
бусад порт эсвэл багцын суулгалтын нэгэн адил хялбар
болгодог.
Мөн баримтжуулалтын портуудыг бүтээсний дараа тэд
хамааралтай баримтжуулалтыг бүтээх хэрэгслийн олонлогийн
портуудыг бүртгэдэг бөгөөд тэдгээрийг автоматаар бас
суулгадаг.
Баримтжуулалтын портуудын зохион байгуулалт нь
дараах хэлбэрийн байна:
Баримтжуулалтын портын файлууд байдаг
misc/freebsd-doc-en
мастер порт
байдаг. Энэ нь бүх
баримтжуулалтын портуудын үндэс болдог. Анхдагчаар
энэ нь Англи баримтжуулалтыг зөвхөн бүтээдэг.
Нэг портод бүгд багтсан
misc/freebsd-doc-all байдаг
бөгөөд энэ нь байгаа бүх хэл дээр бүх баримтжуулалтыг
бүтээж суулгадаг.
Эцэст нь орчуулга бүрийн хувьд зарц порт
байдаг, жишээ нь Унгар хэл дээрх баримтуудад зориулсан
misc/freebsd-doc-hu-г дурдаж
болно. Эдгээр нь бүгд мастер портоос хамаарах бөгөөд
тухайн хэлний орчуулсан баримтжуулалтыг суулгадаг.
Баримтжуулалтын портыг эхээс суулгахын тулд дараах
тушаалуудыг ажиллуулна (root эрхээр):
&prompt.root; cd /usr/ports/misc/freebsd-doc-en
&prompt.root; make install clean
Энэ нь Англи баримтжуулалтыг хуваагдсан HTML
хэлбэрээр ( дээр ашигладагийн адилаар)
бүтээж /usr/local/share/doc/freebsd санд
суулгадаг.
Нийтлэг Knob болон тохируулгууд
Баримтжуулалтын портуудын анхдагч байдлыг өөрчлөх
олон тохиргоо байдаг. Доор цөөхөн хэдэн жагсаалтыг
дурдав:
WITH_HTML
HTML хэлбэрээр бүтээхийг зөвшөөрдөг: баримт
бүрийн хувьд нэг HTML файл. Хэлбэршүүлсэн
баримтжуулалт нь тохирох article.html юм уу
эсвэл book.html гэсэн файлуудад зургийн
хамтаар хадгалагддаг.
WITH_PDF
&adobe; &acrobat.reader;,
Ghostscript эсвэл бусад PDF уншигчдыг
ашиглах &adobe;-ийн хөрвөх баримтын хэлбэрээр бүтээхийг
зөвшөөрдөг. Хэлбэршүүлсэн
баримтжуулалт нь тохирох article.pdf юм уу
эсвэл book.pdf гэсэн файлуудад
хадгалагддаг.
DOCBASE
Баримтжуулалтын суулгах байрлал. Энэ нь
анхдагчаар /usr/local/share/doc/freebsd
байдаг.
Анхдагч суулгах сан нь CVSup
аргын ашигладаг сангаас ялгаатайг санаарай.
Энэ нь яагаад гэвэл бид порт суулгаж байгаа
бөгөөд портууд нь ихэвчлэн /usr/local санд
суудаг. Үүнийг PREFIX хувьсагчийг
нэмэн өөрчилж болдог.
Энд Унгар баримтжуулалтыг Хөрвөх Баримтын Хэлбэрээр (PDF)
суулгахын тулд дээр дурдсан хувьсагчуудыг хэрхэн
ашиглахыг харуулсан жишээг үзүүлэв:
&prompt.root; cd /usr/ports/misc/freebsd-doc-hu
&prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean
Баримтжуулалтын багцуудыг ашиглах нь
Өмнөх хэсэгт тайлбарласнаар баримтжуулалтын портуудыг
эхээс бүтээх нь баримтжуулалтыг бүтээх хэрэгслийн
олонлогийг суулгах болон портуудыг бүтээхэд тодорхой
хэмжээний дискийн зай шаарддаг. Баримтжуулалтын
хэрэгслүүдийг суулгахад эх үүсвэр хүрэлцэхгүй үед эсвэл
эхээс бүтээх нь ихээхэн хэмжээний дискийн зай эзлэх
бол баримтжуулалтын портуудын урьдчилан бүтээсэн
хормын хувилбаруудыг суулгах боломж бас байдаг.
&a.doceng; нь &os;-ийн баримтжуулалтын багцуудын
сар бүрийн хормын хувилбаруудыг бэлддэг. Эдгээр
хоёртын багцуудыг &man.pkg.add.1;,
&man.pkg.delete.1; гэх зэрэг багцын хэрэгслүүдийн
хамтаар ашиглаж болдог.
Хоёртын багцуудыг ашиглаж байгаа үед &os;-ийн
баримтжуулалт нь тухайн хэлний хувьд байгаа
бүх хэлбэрээр суудаг.
Жишээ нь дараах тушаал Унгар баримтжуулалтын
хамгийн сүүлийн урьдчилан бүтээсэн багцыг суулгах
болно:
&prompt.root; pkg_add -r hu-freebsd-doc
Багцууд нь харгалзах портын нэрнээсээ ялгаатай дараах
нэрийн хэлбэртэй байдаг:
lang-freebsd-doc.
Энд lang нь хэлний кодын богино
хэлбэр юм, жишээ нь hu нь Унгар, эсвэл
zh_cn нь хялбаршуулсан Хятад хэл юм.
Баримтжуулалтын портуудыг шинэчлэх нь
Өмнө нь суулгасан баримтжуулалтын портыг шинэчлэхийн
тулд портууд шинэчлэх аль ч хэрэгсэл байхад хангалттай.
Жишээ нь дараах тушаал суулгасан Унгар баримтжуулалтыг
ports-mgmt/portupgrade хэрэгслийн
тусламжтайгаар зөвхөн багцуудыг ашиглан шинэчилнэ:
&prompt.root; portupgrade -PP hu-freebsd-doc
Пав
Лукистник
Мэдээллээр хангасан
Docsnap-ийг ашиглах нь
Updating and Upgrading
Docsnap
Updating and Upgrading
Docsnap нь &os;-ийн баримтуудыг
хялбар, хурдан аргаар шинэчлэхэд зориулагдсан &man.rsync.1;
репозитор юм. Docsnap сервер
нь баримтын эхүүдийг дагаж тэдгээрийг цаг бүр HTML хэлбэрт бүтээж
байдаг. textproc/docproj нь
Docsnap-д хэрэггүй байдаг. Учир нь
зөвхөн бүтээсэн баримтад зориулсан нөхөөсүүд байдаг болохоор тэр юм.
Энэ техникийг ашиглахад шаардлагатай цорын ганц зүйл нь
net/rsync порт юм уу эсвэл багц
байдаг. Үүнийг нэмэхийн тулд дараах тушаалыг ашиглана:
&prompt.root; pkg_add -r rsync
Docsnap нь
/usr/share/doc-д суулгагдсан
баримтыг шинэчлэхэд зориулж анхлан хөгжүүлэгдсэн боловч дараах жишээнүүдийг
бусад сангуудын хувьд тохируулан ашиглаж болно. Хэрэглэгчийн сангуудын
хувьд энэ нь root эрхийг шаарддаггүй.
Баримтын цуглуулгыг шинэчлэхийн тулд дараах тушаалыг
ажиллуулна:
&prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap /usr/share/doc
Одоогоор зөвхөн нэг Docsnap
сервер байгаа, docsnap.sk.FreeBSD.org дээр
харуулагдсан байгаа.
Энд тохируулыг ашиглах хэрэггүй,
учир нь make installworld тушаалын үеэр
/usr/share/doc
санд суулгагдсан зарим зүйлсийг санамсаргүйгээр устгаж болох юм.
Цэвэрлэхийн тулд энэ тушаалыг ашиглана:
&prompt.root; rsync -rltvz --delete docsnap.sk.FreeBSD.org::docsnap/??_??\.\* /usr/share/doc
Хэрэв баримтын хэсгийг шинэчлэх шаардлагатай бол жишээ нь
Англи баримтыг зөвхөн шинэчлэх бол дараах тушаалыг ашиглах
шаардлагатай:
&prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap/en_US.ISO8859-1 /usr/share/doc
]]>
Хөгжүүлэлтийн салбарыг дагах нь
-CURRENT
-STABLE
FreeBSD-ийн хоёр хөгжүүлэлтийн салбар байдаг: &os.current; болон
&os.stable;. Энэ хэсэгт эдгээр тус бүрийг тайлбарлаж өөрийн системийг тус
тусын модны хувьд хамгийн шинэ хэлбэрт байнга байлгах талаар тайлбарлах болно.
&os.current; эхлээд хэлэлцэгдэх бөгөөд дараа нь &os.stable;-ийн тухай
яригдах болно.
&os;-ийн одоо үеийн хэлбэрт байх нь
Та үүнийг уншихдаа &os.current; нь &os;-ийн хөгжүүлэлтийн
bleeding edge салбар буюу амжилт ололтын хамгийн тэргүүний
салбар
гэдгийг санаарай. &os.current; хэрэглэгчдийг техникийн өндөр
чадавхитай бөгөөд системийн хүнд хэцүү асуудлуудыг өөрсдөө шийдвэрлэх
чадвартай байна гэж тооцдог. Хэрэв та &os;-д анхлан суралцагч бол
үүнийг суулгахаасаа өмнө дахин сайн бодоорой.
&os.current; гэж юу вэ?
хормын агшны хувилбар
&os.current; нь &os;-ийн хамгийн сүүлийн үеийн ажлын эх юм.
Энэ нь хийгдэж байгаа ажлууд, туршилтын өөрчлөлтүүд болон програм хангамжийн
дараагийн албан ёсны хувилбарт байхгүй ч байж болох эсвэл байж ч болох
шилжилтийн аргуудыг багтаадаг. &os;-ийн олон хөгжүүлэгчид &os.current;-ийн
эх кодыг өдөр болгон эмхэтгэн хөрвүүлж байдаг боловч эхийг бүтээх боломжгүй үе бас
байдаг. Эдгээр асуудлууд нь боломжийн хэрээр хурдан шийдэгддэг боловч
&os.current; нь сүйрэл авчрах эсвэл тун их хүссэн ажиллагааг авчрах эсэх нь
та яг ямар агшинд эх кодыг татаж авснаас хамаарах юм!
&os.current; хэнд хэрэгтэй вэ?
&os.current; нь үндсэн 3 сонирхлын бүлэгт зориулагдан
хийгдсэн:
Эх модны зарим хэсэг дээр идэвхтэйгээр ажиллаж байгаа &os;-ийн хүрээний
гишүүд болон current буюу одоо үеийн хэлбэрт
байлгах нь
туйлын шаардлага болсон хүмүүст.
&os.current;-г аль болох ухаалаг байлгахыг хичээж асуудлуудыг шийдвэрлэхэд
цагаа зарах хүсэлтэй байдаг идэвхтэй тест хийгч &os;-ийн хүрээний гишүүд.
Эдгээр хүмүүс нь өөрчлөлтүүд болон &os;-ийн ерөнхий чиглэлд цаг үеийн
саналуудыг тусгахыг хүсэж тэдгээрийг шийдэх засваруудыг илгээдэг бас хүмүүс
юм..
Юу болж байгааг зөвхөн харж мэдэж байхыг хүссэн эсвэл одоо үеийн эхийг
лавлагааны зорилгоор ашиглахыг зөвхөн хүссэн хүмүүс (өөрөөр хэлбэл
ажиллуулах биш унших зорилгоор).
Эдгээр хүмүүс нь хааяа бас санал гаргаж кодонд хувь нэмэр оруулдаг.
&os.current; нь юу Биш вэ?
Та зарим нэг дажгүй шинэ боломж байгааг сонссон учраас бусдаас
түрүүлж урьдчилсан хувилбарын тэдгээр битүүдийг авах таны нэн тэргүүний
арга зам. Шинэ боломжийг авч эхэнд байна гэдэг нь та шинэ алдаанууд,
хорхойнуудыг бас авч эхэнд байна гэсэн үг юм.
Алдааны засваруудыг хурдан авах арга зам. &os.current;-ийн
өгөгдсөн дурын хувилбар нь илэрсэн алдаануудыг засахын хажуугаар бас
магадгүй шинэ алдаанууд бас гаргаж байдаг.
Аль ч үед албан ёсоор дэмжигдсэн
. Бид өөрсдийн
чадлын хирээр хууль ёсны
3 &os.current; бүлгийн
аль нэгэнд хүмүүст бодитоор туслахыг хичээдэг, гэхдээ бидэнд ердөө л
техникийн дэмжлэг үзүүлэх цаг байдаггүй.
Энэ нь бид хүмүүст туслах дургүй өөдгүй муухай хүмүүс учраас гэсэн үг
биш юм (хэрэв бид байгаагүй бол бид &os;-г хийж байхгүй байх байсан).
Бид ердөө л өдрийн хэдэн зуун захидлуудад хариулахын
хажуугаар FreeBSD дээр ажиллаж чаддаггүй!
&os;-г сайжруулах болон туршилтын кодон дээр тавигдсан маш олон
асуултуудад хариулах хоёр сонголтын эхнийхийг хөгжүүлэгчид сонгосон
юм.
&os.current; ашиглах нь
-CURRENT
ашиглах нь
&a.current.name; болон &a.svn-src-head.name; жагсаалтуудад элсэн орно уу.
Энэ нь зөвхөн сайн санаанаас гадна бас чухал
юм. Хэрэв та &a.current.name; жагсаалтад
ороогүй бол системийн одоогийн төлвийн талаар хүмүүсийн өгч байгаа санал
хүсэлтүүдийг харахгүй учраас бусдын аль хэдийн олоод шийдсэн маш их асуудлууд
дээр магадгүй та бүдрэн төөрөлдөж дуусах биз ээ. Бүр илүү чухал зүйл нь юу вэ гэвэл
таны системийн эрүүл мэндэд эгзэгтэй байж болох чухал мэдээнүүдээс та хоцрох
болно.
&a.svn-src-head.name; жагсаалт нь кодонд оруулсан өөрчлөлт бүрийн
бүртгэл оруулгыг болзошгүй сөрөг нөлөөнүүдийн талаар тохирсон мэдээллийн
хамтаар танд харах боломжийг олгодог.
Эдгээр жагсаалтууд эсвэл байгаа бусдын аль нэгэнд элсэхийн тулд
&a.mailman.lists.link; хаяг уруу орж элсэхийг хүссэн жагсаалтаа
сонгоорой. Дарааллын үлдсэн зааврууд тэнд байгаа болно. Хэрэв та
бүх л эх модон дахь өөрчлөлтийг дагах сонирхолтой байгаа бол
&a.svn-src-all.name; жагсаалтад бүртгүүлэхийг бид зөвлөж байна.
&os;-ийн толин тусгалаас
эхийг авна. Та үүнийг хоёр аргаар хийж болно:
cvsup
cron
-CURRENT
CVSup ашиглан сүүлийн хэлбэрт аваачих
/usr/share/examples/cvsup санд байх
standard-supfile гэж нэрлэгдсэн
supfile-тай цуг
cvsup програм ашигла.
Энэ нь бүхэл цуглуулгыг нэг л удаа авч дараа нь зөвхөн өөрчлөгдсөнүүдийг
танд авах боломжийг олгодог хамгийн сайшаасан арга юм.
Олон хүмүүс cvsup-г cron-с
ажиллуулж өөрсдийн эхийг хамгийн сүүлийн хэлбэрт автоматаар
аваачдаг. Та дээр дурдсан жишээ supfile-г
өөрчлөн cvsup-г өөрийн орчны хувьд
тохируулах хэрэгтэй.
Жишээ standard-supfile нь
&os.current;-ийн биш &os;-ийн аюулгүй байдлын тусгай
салбарыг дагахад хэрэглэгдэнэ. Танд энэ файлыг засварлаж дараах
мөрийг өөрчлөх хэрэгтэй болно:
*default release=cvs tag=RELENG_X_Y
Дээрх мөрийг дараах мөрөөр сольно:
*default release=cvs tag=.
Хэрэгцээтэй хаяг/шошгонуудын дэлгэрэнгүй тайлбарыг
гарын авлагын CVS хаяг/шошгонууд хэсгээс үзнэ үү.
-CURRENT
CTM ашиглан сүүлийн хэлбэрт аваачих
CTM хэрэгслийг ашигла.
Хэрэв та маш муу холболттой (өндөр үнэтэй холболтууд эсвэл
зөвхөн цахим захидлын хандалт) бол CTM
нь сонголт болох юм. Гэхдээ энэ нь бөөн зовлон бөгөөд та эвдэрсэн
файлуудтай үлдэж болох юм. Энэ нь үүнийг ховор ашиглахад хүргэдэг бөгөөд
ингэснээр ажиллахгүй байх боломжийг нэлээн удаан хугацаагаар ихэсгэдэг.
Бид 9600 bps модем болон түүнээс хурдан холболттой хүмүүст
CVSup-г
ашиглахыг зөвлөдөг.
Хэрэв та эхийг зөвхөн харахаар биш ажиллуулахаар татаж авч байгаа бол
зөвхөн сонгосон хэсгүүдийг биш &os.current;-ийн бүх
эхийг татаж аваарай. Үүний шалтгаан нь эхийн төрөл бүрийн хэсгүүд нь бусад хаа нэгтээ байгаа
шинэчлэлтүүдээс хамаардаг бөгөөд зөвхөн хэсэг бүлэг эхийг хөрвүүлэхийг оролдох нь
таныг бараг л баталгаатайгаар асуудалтай учруулах болно.
-CURRENT
хөрвүүлэх
&os.current;-ийг хөрвүүлэхээсээ өмнө /usr/src
дахь Makefile-г анхааралтай уншина уу.
Эхний удаа та хамгийн багаар бодоход шинэчлэлтийн процессийн хэсэг болох шинэ цөмийг суулгаж ертенцийг дахин бүтээх хэсгээр
дамжих хэрэгтэй. &a.current; болон /usr/src/UPDATING
файлыг унших нь биднийг дараагийн хувилбар уруу шилжихэд заримдаа шаардлагатай
болдог бусад эхлүүлэх процедуруудын хувьд хамгийн сүүлийн мэдээлэлтэй байлгах
боломжийг бидэнд олгодог.
Идэвхтэй бай! Хэрэв та &os.current; ажиллуулж байгаа бол
түүний талаар таныг юу хэлэхийг ялангуяа хэрэв танд өргөжүүлэлт эсвэл
алдааны засваруудын талаар санал хүсэлт байвал түүнийг бид мэдэхийг
хүсдэг юм. Хавсаргасан кодтой санал хүсэлтүүдийг хамгийн их урам зоригтойгоор
хүлээн авдаг билээ!
&os;-ийн тогтвортой хэлбэрт байх нь
&os.stable; гэж юу вэ?
-STABLE
&os.stable; нь үндсэн хувилбарууд гардаг бидний хөгжүүлэлтийн салбар юм.
Өөрчлөлтүүд нь эхлээд тест хийгдэх зорилгоор &os.current; уруу ордог гэсэн
ерөнхий төсөөлөл/таамаглалтайгаар янз бүрийн зөвшөөрлөөр энэ салбар уруу
ордог. Энэ нь одоо болтол хөгжүүлэлтийн салбар
бөгөөд гэхдээ энэ нь ямар ч үед &os.stable;-д зориулагдсан эх нь ямар ч зорилгод
тохирч эсвэл тохирохгүй байж болно гэсэн үг юм. Энэ нь эцсийн хэрэглэгчид
зориулагдсан эх үүсвэр бус ердөө л өөр нэг инженерчлэлийн хөгжүүлэлтийн арга зам
юм.
&os.stable; хэнд хэрэгтэй вэ?
Хэрэв та FreeBSD-ийн хөгжүүлэлтийн процессод хувь нэмэр оруулах сонирхолтой,
энэ нь ялангуяа FreeBSD-ийн дараагийн гарах
хувилбартай холбоотой байдаг,
эсвэл юу болж байгааг мэдэж байх сонирхолтой байгаа бол та дараах
&os.stable;-г бодолцох хэрэгтэй.
Аюулгүй байдлын засварууд бас &os.stable; салбар уруу орж байдаг нь
үнэн боловч та үүнийг хийхийн тулд &os.stable;-г заавал дагах
хэрэггүй. FreeBSD-ийн аюулгүй байдлын
зөвлөмжүүд нь тухайн хувилбарт хамааралтай асуудлыг хэрхэн засах тухай
тайлбарладаг
Энэ нь бүр яг үнэн биш юм. Бид FreeBSD-ийн хуучин хувилбаруудыг
үргэлж дэмжиж чадахгүй, гэхдээ бид тэдгээрийг олон жилийн турш дэмжсээр
ирсэн. FreeBSD-ийн хуучин хувилбаруудын одоогийн аюулгүй байдлын бодлогын
бүрэн тайлбарыг http://www.FreeBSD.org/security/-с
үзнэ үү.
бөгөөд зөвхөн аюулгүй байдлын үүднээс бүхэл бүтэн хөгжүүлэлтийн салбарыг
дагаж байна гэдэг бас зөндөө олон хүсээгүй өөрчлөлтүүдийг авчрах
магадлалтай юм.
Бид &os.stable; салбар үргэлж хөрвүүлэгдэн эмхэтгэгдэж дандаа ажилладаг байлгахаар
чармайж байдаг боловч энэ нь баталгаатай биш юм. Нэмж хэлэхэд код нь &os.stable;-д
орохоосоо өмнө &os.current;-д хөгжүүлэгдэж байдаг боловч &os.current;-г
ашиглан ажиллуулдгаас илүү &os.stable;-г хүмүүс ажиллуулдаг болохоор
&os.current;-ийн хувьд илэрхий биш байсан алдаанууд болон булангийн тохиолдлууд
&os.stable;-д илрэх нь заримдаа зайлшгүй юм.
Эдгээр шалтгаануудаас болоод бид &os.stable;-г сохроор дагахыг танд
зөвлөдөггүй бөгөөд энэ нь
өөрийн хөгжүүлэлтийн орчиндоо кодыг эхлээд сайтар тест хийлгүйгээр
үйлдвэрлэлд (production) ашиглаж байгаа серверүүдээ &os.stable;
уруу шинэчлэхгүй байхад танд ялангуяа чухал ач холбогдолтой юм.
Хэрэв танд үүнийг хийх эх үүсвэрүүд байхгүй бол бид FreeBSD-ийн хамгийн сүүлийн үеийн
хувилбарыг ажиллуулж хоёртын шинэчлэлт хийх аргыг хувилбараас хувилбар уруу шилжихдээ
ашиглахыг танд зөвлөж байна.
&os.stable; ашиглах нь
-STABLE
ашиглах нь
&a.stable.name; жагсаалтад элсэн орно уу. Энэ нь
&os.stable;-д илэрч болох бүтээлтийн хамаарлууд эсвэл
тусгайлсан анхаарал шаардлагатай өөр бусад асуудлуудын талаар
танд мэдээлж байх болно. Хөгжүүлэгчид нь зарим нэг маргаантай засвар
эсвэл шинэчлэлийн талаар бодож байгаа талаараа бас энэ захидлын жагсаалтад
мэдээлдэг бөгөөд ийнхүү санал болгож байгаа өөрчлөлтийн талаар хэрэглэгчдэд
ямар нэг асуудал байвал тэдэнд эргээд хариу өгөх боломж олгодог юм.
Өөрийн дагаж байгаа салбарын тохирох SVN
жагсаалтад элсэн орох хэрэгтэй. Жишээ нь хэрэв та 7-STABLE салбарыг дагаж
байгаа бол &a.svn-src-stable-7.name; жагсаалтад элсэн ороорой.
Энэ нь кодонд оруулсан өөрчлөлт бүрийн
бүртгэл оруулгыг болзошгүй сөрөг нөлөөнүүдийн талаар тохирсон мэдээллийн
хамтаар танд харах боломжийг олгодог.
Эдгээр жагсаалтууд эсвэл байгаа бусдын аль нэгэнд элсэхийн тулд
&a.mailman.lists.link; хаяг уруу орж элсэхийг хүссэн жагсаалтаа
сонгоорой. Дарааллын үлдсэн зааврууд тэнд байгаа болно. Хэрэв та
бүх л эх модон дахь өөрчлөлтийг дагах сонирхолтой байгаа бол
&a.svn-src-all.name; жагсаалтад бүртгүүлэхийг бид зөвлөж байна.
Хэрэв та шинэ систем суулгаж &os.stable;-ээс бүтээсэн сар бүрийн хормын
агшны хувилбарыг түүн дээр ажиллуулахыг хүсэж байгаа бол дэлгэрэнгүй
мэдээллийн талаар
Хормын агшны хувилбарууд вэб хуудаснаас шалгана уу.
Үүнээс гадна хамгийн сүүлийн үеийн &os.stable; хувилбарыг
толин тусгалын хаягуудаас
татан авч суулгах боломжтой бөгөөд доор дурдсан заавруудыг дагаж
өөрийн системийг хамгийн сүүлийн үеийн &os.stable; эх код уруу
шинэчилж болох юм.
Хэрэв та &os;-ийн урдны хувилбар аль хэдийн ажиллуулж байгаа бөгөөд
эхээс шинэчлэхийг хүсэж байгаа бол &os;-ийн
толин тусгал хуудасаас хялбараар
хийж болно. Үүнийг хоёр аргаар хийж болно:
cvsup
cron
-STABLE
CVSup ашиглан сүүлийн хэлбэрт аваачих
/usr/share/examples/cvsup санд байх
standard-supfile гэж нэрлэгдсэн
supfile-тай цуг
cvsup програм ашигла.
Энэ нь бүхэл цуглуулгыг нэг л удаа авч дараа нь зөвхөн өөрчлөгдсөнүүдийг
танд авах боломжийг олгодог хамгийн сайшаасан арга юм.
Олон хүмүүс cvsup-г cron-с
ажиллуулж өөрсдийн эхийг хамгийн сүүлийн хэлбэр автоматаар
аваачдаг. Та дээр дурдсан жишээ supfile-г
өөрчлөн cvsup-г өөрийн орчны хувьд
тохируулах хэрэгтэй.
-STABLE
CTM ашиглан сүүлийн хэлбэрт аваачих
CTM хэрэгслийг ашигла.
Хэрэв танд Интернэт уруу холбогдсон хурдан хямд холболт байхгүй бол
энэ аргыг та ашиглах хэрэгтэй.
Гол нь хэрэв та эхэд хурдан, шаардлагын улмаас хандах хэрэгтэй болоод
холболтуудын зурвасын өргөн ач холбогдолгүй бол cvsup эсвэл
ftp ашиглаарай. Бусад тохиолдолд
CTM-г ашигла.
-STABLE
хөрвүүлэх нь
&os.current;-ийг хөрвүүлэхээсээ өмнө /usr/src
дахь Makefile-г анхааралтай уншина уу.
Эхний удаа та хамгийн багаар бодоход шинэчлэлтийн процессийн хэсэг болох шинэ цөмийг суулгаж ертенцийг дахин бүтээх хэсгээр
дамжих хэрэгтэй. &a.current; болон /usr/src/UPDATING
файлыг унших нь биднийг дараагийн хувилбар уруу шилжихэд заримдаа шаардлагатай
болдог бусад эхлүүлэх процедуруудын хувьд хамгийн сүүлийн мэдээлэлтэй байлгах
боломжийг бидэнд олгодог.
Өөрийн эхийг хамгийн сүүлийн хэлбэрт аваачих нь
Интернетийн (эсвэл цахим захидал) холболт ашиглан &os; төслийн эхүүдийн аль ч
хэсгийн хувьд эсвэл таны юу сонирхож байгаагаас хамааран бүх хэсгүүдийг
хамгийн шинэ байлгаж байх төрөл бүрийн аргууд байдаг. Бидний санал болгодог үндсэн
үйлчилгээнүүд бол Anonymous буюу нэргүй
CVS, CVSup болон CTM юм.
Өөрийн эх модны зөвхөн зарим хэсгийг шинэчлэх боломжтой боловч
цорын ганц шинэчлэх арга бол модыг бүтнээр нь шинэчилж хэрэглэгчийн талбар
(өөрөөр хэлбэл /bin болон
/sbin гэх мэт дэх хэрэглэгчийн талбарт ажилладаг
бүх програмууд) болон цөмийн эхүүдийг дахин эмхэтгэх явдал юм. Өөрийн эх модны
зөвхөн нэг хэсэг зөвхөн цөм эсвэл зөвхөн хэрэглэгчийн талбарыг шинэчлэх нь
асуудлууд гарахад ихэвчлэн хүргэдэг. Эдгээр асуудлууд нь эмхэтгэлтийн үеийн
алдаануудаас авахуулаад цөмийн сүйрлүүд эсвэл өгөгдлийн эвдрэлийг хүртэл
хамардаг.
CVS
anonymous буюу нэргүй
Нэргүй CVS болон
CVSup нь эхийг шинэчлэхдээ
татах загварыг хэрэглэдэг.
CVSup-ийн хувьд хэрэглэгч (эсвэл
cron скрипт) cvsup
програмыг эхлүүлэн хаа нэгтээ байгаа cvsupd
серверт хандаж таны өөрийн файлуудыг хамгийн шинэ хэлбэрт авчирдаг.
Таны хүлээн авах шинэчлэлтүүд нь хамгийн сүүлийн минут хүртэлх үеийнх
байх бөгөөд та тэдгээрийг зөвхөн өөрийн хүссэн тэр үедээ авдаг. Та өөрийн
шинэчлэлтүүдийг таны сонирхож байгаа тусгайлсан файлууд эсвэл сангуудаар
хялбараар хязгаарлаж болно. Шинэчлэлтүүд нь таны юуг авахыг хүссэн болон танд
юу байгаагаас хамааран серверээр тухайн үед үүсгэгддэг.
Нэргүй CVS нь алсын CVS repository
буюу кодын архиваас өөрчлөлтүүдийг шууд татахыг түүнд зөвшөөрдөг
CVS-ийн ердөө л нэг өргөтгөл бөгөөд
үүгээрээ CVSup-с арай илүү хялбар юм.
CVSup нь үүнийг хамаагүй илүү
үр дүнтэйгээр хийж чаддаг боловч Нэргүй CVS-г
ашиглахад илүү хялбар байдаг.
CTM
Нөгөө талаас CTM нь танд байгаа эхийг
мастер архив дахь эхтэй лавлаж асуух зарчмаар харьцуулдаггүй бөгөөд өөрөөр хэлбэл
тэдгээрийг татаж авдаггүй. Ингэхийн оронд харин өмнө нь ажиллуулснаас хойшх
файл дахь өөрчлөлтүүдийг таньдаг скрипт өдөрт хэд хэдэн удаа мастер CTM машин
дээр ажиллаж илэрсэн өөрчлөлтүүдийг шахаж дарааллын-дугаар тавин цахим
захидлаар дамжуулахад зориулан кодчилдог (зөвхөн хэвлэгдэх боломжтой ASCII
хэлбэрээр). Эдгээр CTM дельтануудыг
авсаны дараа
тэдгээрийг автоматаар декод хийж шалган хэрэгчид байгаа эхийн хуулбарт
өөрчлөлтүүдийг хийх &man.ctm.rmail.1; хэрэгсэл уруу өгдөг. Энэ процесс
нь CVSup-с хамаагүй илүү үр дүнтэй
бөгөөд энэ нь татах биш харин
түлхэх загвар учраас бидний серверийн эх үүсвэрт
бага ачаалал учруулдаг юм.
Мэдээж үүнээс гадна харилцан сул болон давуу талуудтай асуудлууд байдаг.
Хэрэв та санамсаргүйгээр өөрийн архивын хэсгийг устгачих юм бол
CVSup үүнийг илрүүлж эвдэрсэн хэсгүүдийг
дахин бүтээж өгдөг. CTM ингэж
хийдэггүй бөгөөд хэрэв та өөрийн эх модны зарим хэсгийг устгасан
(бас нөөцлөн аваагүй) бол та дахин шинээр эхнээс нь (хамгийн сүүлийн үеийн
CVS суурь дельтагаас
) эхэлж
CTM-ийн тусламжтайгаар бүгдийг дахин бүтээх
буюу эсвэл Нэргүй CVS-ийн тусламжтайгаар
муу битүүдийг ердөө л устгаж дахин сүүлийн хэлбэрт аваачих хэрэгтэй болно.
Ертөнц
ийг дахин бүтээх нь
Ертөнц
ийг дахин бүтээх нь
Та өөрийн локал эх модоо &os;-ийн тухайн хувилбарын (&os.stable;,
&os.current;, гэх зэрэг) хамгийн сүүлийн үеийн хэлбэрт аваачсаныхаа
дараа та эх модоо ашиглан системийг дахин бүтээж болно.
Нөөц хий
Та дээрхийг хийхээсээ өмнө өөрийн системийг
нөөцлөн авах нь ямар чухал болохыг энэ нь хангалттай хэлж өгч чаддаггүй.
Ертөнцийг дахин бүтээх нь (хэрэв та эдгээр заавруудыг дагасан тохиолдолд)
хялбар боловч таныг алдаа гаргахад эсвэл бусдын эх модонд хийсэн алдаанууд
нь таны системийг ачаалагдахгүй болгох нөхцөлд зайлшгүй хүргэдэг.
Нөөц хийж авсан эсэхээ шалгаарай. Засварлах уян диск эсвэл ачаалагдах
CD-г гарын дор байлгаарай. Магадгүй та үүнийг хэзээ ч хэрэглэхгүй байж болох
юм, гэхдээ харамсахаасаа өмнө аюулгүй байж байх нь илүү дээр юм!
Тохирох захидлын жагсаалтад бүртгүүл
захидлын жагсаалт
&os.stable; болон &os.current; салбарууд нь угаасаа
хөгжүүлэлтэд байдаг. &os;-д хувь нэмэр
оруулж байгаа хүмүүс нь хүн л учраас алдаанууд заримдаа гардаг.
Заримдаа эдгээр алдаанууд нь нэг их хор хөнөөлгүй бөгөөд ердөө л таны
системийг шинэ оношлогооны анхааруулга хэвлэхэд хүргэдэг. Эсвэл
өөрчлөлт нь сүйрлийн байж болзошгүй байдаг бөгөөд таны системийг ачаалагдахгүй
болгож эсвэл файлын системүүдийг чинь устгаж (эсвэл бүр муу юм болж) болох юм.
Эдгээртэй адил асуудлууд гарвал асуудлын учир шалтгаан болон аль систем дээр
энэ асуудал хамааралтайг тайлбарласан heads up буюу бүхний сонорт
хандсан зарлал тохирох захидлын жагсаалтад илгээгддэг. Тэгээд
all clear буюу бүгд цэвэр
зарлал асуудал шийдэгдсэний дараа
тавигддаг.
Хэрэв та &os.stable; эсвэл &os.current;-ийг дагахыг оролдож &a.stable;
эсвэл &a.current;-г харгалзуулан уншихгүй байгаа бол энэ нь та өөртөө гай төвөг асууж
байна л гэсэн үг юм.
make world тушаалыг бүү ашигла
Ихэнх хуучин баримтууд үүнд зориулан make world
тушаалыг ашиглахыг зөвлөдөг. Энэ тушаалыг ажиллуулснаар зарим нэг чухал алхмуудыг
алгасах бөгөөд та юу хийж байгаагаа мэдэж байгаа тохиолдолд үүнийг зөвхөн ашиглах
хэрэгтэй. Бараг ихэнх тохиолдолд make world хийх нь
буруу зүйл бөгөөд энд тайлбарласан процедурыг түүний оронд ашиглах ёстой юм.
Шалгагдсан аргаар өөрийн системийг шинэчлэх нь
Өөрийн системийг шинэчлэхийн тулд өөрт чинь байгаа эхийн хувилбарт шаардлагатай байгаа
бүтээхээс урьдах алхмууд та /usr/src/UPDATING
файлд байгаа эсэхийг шалгах хэрэгтэй бөгөөд үүний дараа энд дурдсан процедурыг
ашиглана.
Эдгээр шинэчлэлтийн алхмууд нь таныг хуучин хөрвүүлэгч, хуучин цөм, хуучин
ертөнц болон хуучин тохиргооны файлууд бүхий &os;-ийн хуучин хувилбар ашиглаж
байгаа гэж тооцдог. Ертөнц
гэдгийг бид энд системийн гол хоёртын
файлууд, сангууд болон програмын файлууд гэж ойлгоно. Хөрвүүлэгч нь
ертөнц
ийн хэсэг бөгөөд цөөн асуудлуудтай байдаг.
Таныг шинэ системийн эхийг аль хэдийн авсан байгаа гэж бид бас
энд тооцдог. Тухайн систем дээр байгаа эхүүд бас хуучин байвал шинэ хувилбар
руу шилжүүлэх талаар бичсэн -с дэлгэрэнгүйг
үзнэ үү.
Системийг эхээс шинэчлэх нь эхлээд санагдсанаасаа илүү нарийн байдаг
бөгөөд тойрон гарах боломжгүй, хамаарлууд бүхий шинэ асуудлууд гардгаас болоод
&os;-ийн хөгжүүлэгчид зөвлөдөг чиг хандлагаа жил ирэх тутам нэлээнээр
өөрчлөх шаардлагатай болсон. Энэ хэсгийн үлдсэн хэсэг нь одоогоор зөвлөж
байгаа шинэчлэх дарааллын талаар тайлбарлах болно.
Амжилттай болох шинэчлэх дараалал бүр дараах асуудлуудыг
шийдэх ёстой:
Хуучин хөрвүүлэгч шинэ цөмийг бүтээж чадахгүй байж болох
юм. (Хуучин хөрвүүлэгчид заримдаа алдаатай байдаг.) Тиймээс шинэ
цөмийг шинэ хөрвүүлэгчээр бүтээх ёстой. Ялангуяа шинэ цөм бүтээхээсээ
өмнө шинэ хөрвүүлэгчийг бүтээх хэрэгтэй. Энэ нь шинэ хөрвүүлэгчийг
заавал шинэ цөмөөс өмнө суулгасан байх ёстой
гэсэн үг биш юм.
Шинэ ертөнц шинэ цөмийн боломжууд дээр тулгуурлаж байж
болох юм. Тиймээс шинэ цөмийг шинэ ертөнцийг суулгахаасаа өмнө
суулгасан байх шаардлагатай.
Эдгээр хоёр асуудал нь бидний дараагийн хэсгүүдэд тайлбарлах
гол buildworld,
buildkernel,
installkernel,
installworld дарааллын үндэс болдог.
Энэ нь одоогоор зөвлөдөг шинэчлэлтийн просессийг та яагаад заавал
сонгох ёстойг харуулсан бүх шалтгаануудын бүрэн дүүрэн жагсаалт
биш юм. Зарим нэг тийм ч мэдээжийн биш зүйлсийг доор жагсаав:
Хуучин ертөнц шинэ цөм дээр зөв ажиллахгүй байж болох учир
та шинэ цөм суулгасныхаа дараа шинэ ертөнцийг даруйхан суулгах
ёстой.
Шинэ ертөнц суулгахаасаа өмнө зарим нэг тохиргооны өөрчлөлтүүдийг
хийх ёстой боловч зарим нь хуучин ертөнцийг эвдэж магадгүй юм. Тийм
болохоор хоёр өөр тохиргооны шинэчлэлтийн алхам ерөнхийдөө шаардлагатай
байдаг.
Ихэнх хэсгийн хувьд шинэчлэх процесс нь зөвхөн файлуудыг солих юм уу
эсвэл нэмдэг бөгөөд байгаа хуучин файлуудыг устгадаггүй. Цөөн тохиолдолд
энэ нь асуудал үүсгэж болох юм. Үүний дүнд шинэчлэх арга зам нь зарим нэг
алхам дээр гараар устгах тодорхой файлуудыг заримдаа зааж өгдөг. Үүнийг
ирээдүйд автоматчилах юм уу эсвэл үгүй ч байж болох юм.
Эдгээр зүйлс нь дараах зөвлөсөн дараалалд хүргэдэг. Тухайн шинэчлэлтүүдэд
зориулсан дэлгэрэнгүй дараалал нь нэмэлт алхмуудыг шаардаж болохыг санаарай.
Гэхдээ эдгээр гол процессууд тодорхой хугацаагаар өөрчлөгдөхгүй байх
ёстой юм:
make buildworld
Энэ нь эхлээд шинэ хөрвүүлэгч болон хамааралтай цөөн хэрэгслүүдийг
бүтээж дараа нь шинэ ертөнцийн бусдыг хөрвүүлэхийн тулд шинэ хөрвүүлэгчийг
ашигладаг. Үр дүн нь /usr/obj-д
хадгалагддаг.
make buildkernel
&man.config.8; болон &man.make.1;-ийг ашигладаг хуучин аргаасаа
ялгаатай нь энэ тушаал /usr/obj
санд байрлаж байгаа шинэ хөрвүүлэгчийг ашигладаг.
Энэ нь хөрвүүлэгч болон цөмийн хооронд тохиромжгүй байдал үүсэхээс таныг
хамгаалдаг.
make installkernel
Шинэ цөм болон цөмийн модулиудыг дискэд байрлуулж шинээр шинэчилсэн
цөмөөр ачаалах боломжийг бүрдүүлдэг.
Ганц хэрэглэгчийн горим руу ачаалан орно.
Ганц хэрэглэгчийн горим нь ажиллаж байгаа програм хангамжуудыг
шинэчлэхэд гарах асуудлуудыг багасгадаг. Энэ нь бас шинэ цөм дээр
хуучин ертөнцийг ажиллуулахад гарах асуудлыг багасгадаг.
mergemaster
Энэ нь шинэ ертөнцөд зориулж зарим нэг тохиргооны файлуудын эхний
шинэчлэлтүүдийг хийдэг. Жишээ нь энэ нь шинэ хэрэглэгчийн бүлгийг
системд нэмэх, эсвэл шинэ хэрэглэгчийн нэрсийг нууц үгийн мэдээллийн санд
нэмж болох юм. Сүүлийн шинэчлэлтээс хойш шинэ бүлгүүд эсвэл системийн
тусгай хэрэглэгчийн бүртгэлүүдийг нэмэх үед энэ нь ихэвчлэн шаардлагатай
байдаг. Ингэснээр installworld алхам нь
шинээр суулгагдсан системийн хэрэглэгч эсвэл системийн бүлгийн нэрсийг
ямар ч асуудалгүйгээр ашиглах боломжтой болох юм.
make installworld
/usr/obj сангаас
ертөнцийг хуулдаг. Та одоо диск дээрээ шинэ цөм болон шинэ ертөнцтэй
боллоо.
mergemaster
Нэгэнт диск дээрээ шинэ ертөнцтэй болсон болохоор та одоо
үлдсэн тохиргооны файлуудаа шинэчилж болно.
Дахин ачаална.
Шинэ цөм болон шинэ ертөнцийг шинэ тохиргооны файлуудтай
дуудахын тулд машиныг бүрэн дахин ачаалах хэрэгтэй.
Хэрэв та &os;-ийн нэг салбар дотор нэг хувилбараас илүү сүүлийн
хувилбар руу шинэчилж байгаа бол, өөрөөр хэлбэл 7.0-с 7.1 рүү шинэчилж
байгаа бол хөрвүүлэгч, цөм, хэрэглэгчийн талбар болон тохиргооны файлуудын
хооронд айхтар таарамжгүй байдлууд тантай бараг л тохиолдохгүй учир энэ
арга нь заавал шаардлагатай биш байж болох юм. Хуучин арга болох
make world болон шинэ
цөмийг бүтээж суулгах нь жижиг шинэчлэлтийн хувьд хангалттай сайн
ажиллаж болох юм.
Гэхдээ гол хувилбаруудын хооронд шинэчлэлт хийж байх үед энэ арга
замыг дагахгүй байгаа хүмүүст зарим асуудлууд учирч болох юм.
Олон шинэчлэлтүүд (өөрөөр хэлбэл 4.X-с
5.0 руу) тусгайлсан нэмэлт алхмуудыг (жишээ нь installworld хийхээс өмнө
тусгай файлуудын нэрийг өөрчлөх эсвэл устгах гэх мэт) шаардаж болохыг энд
тэмдэглэх нь зүйтэй юм. /usr/src/UPDATING файлыг
анхааралтай уншина уу, ялангуяа одоогоор зөвлөсөн байгаа шинэчлэх дарааллыг
тусгайлан тайлбарласан төгсгөл хэсгийг уншаарай.
Зарим нэг тохиромжгүй байдалтай холбоотой асуудлуудаас бүрэн
гүйцэд хамгаалах боломжгүйг хөгжүүлэгчид мэдсэнээр энэ арга нь цаг хугацааны
туршид сайжруулагдсаар ирсэн юм. Одоогийн арга замууд нь удаан хугацааны
туршид тогвортой байна гэдэгт найдаж байна.
&os; 3.X эсвэл илүү хуучны хувилбараас
шинэчлэхэд илүү нарийн төвөгтэй байдаг. Та энэ төрлийн шинэчлэлтийг
хийх шаардлагатай бол UPDATING файлыг анхааралтай
уншина уу.
Дүгнэхэд &os;-г эхээс шинэчлэхэд одоогоор зөвлөдөг арга
бол:
&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; shutdown -r now
buildworld алхмаас өмнө
mergemaster -p тушаалыг нэмж ажиллуулах
цөөн ховор тохиолдлууд байдаг. Эдгээрийн талаар UPDATING
файлд тайлбарласан байдаг. Хэрэв та &os;-ийн нэг буюу олон голлох
хувилбаруудын дагуу шинэчлэл хийхгүй байгаа бол ерөнхийдөө энэ алхмыг
эмээлгүйгээр орхиж болох юм.
installkernel амжилттай дууссаны
дараа та ганц хэрэглэгчийн горим уруу ачаалах хэрэгтэй (өөрөөр хэлбэл
boot -s тушаалыг дуудагч мөрөөс ашиглана).
Дараа нь доор дурдсан тушаалуудыг ажиллуулна:
&prompt.root; adjkerntz -i
&prompt.root; mount -a -t ufs
&prompt.root; mergemaster -p
&prompt.root; cd /usr/src
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; reboot
Тайлбаруудыг цааш уншина уу
Дээр тайлбарласан дараалал нь зөвхөн таныг эхлэхэд туслах богино
сэргээлт болох юм. Гэхдээ хэрэв та ялангуяа өөрчлөн тохируулсан
цөмийн тохиргоо ашиглахыг хүсэж байгаа бол дараах хэсгүүдийг уншиж
алхам бүрийг сайтар ойлгох хэрэгтэй.
/usr/src/UPDATING файлыг унш
Өөр юм хийж эхлэхээсээ өмнө та /usr/src/UPDATING-г
(эсвэл эх кодын хуулбар хаана байгаа тэндээс үүнтэй төстэй файлыг ) уншаарай.
Энэ файл нь танд учирч болзошгүй асуудлуудын талаар чухал мэдээлэл агуулдаг бөгөөд
эсвэл таны ажиллуулах зарим нэг тушаалуудын дарааллын талаар заасан байдаг.
Хэрэв UPDATING файл таны энд уншсантай зөрчилдөж
байвал UPDATING файлд заасныг дагах хэрэгтэй.
UPDATING файлыг унших нь өмнө нь тайлбарласнаар
зөв захидлын жагсаалтад бүртгүүлэхтэй харьцуулах юм бол хүлээн зөвшөөрч болохуйц
орлогч байж чадахгүй юм. Энэ хоёр шаардлага нь нэмэлт бөгөөд заавал шаардлагатай
биш юм.
/etc/make.conf файлыг шалга
make.conf
/usr/share/examples/etc/make.conf
болон /etc/make.conf файлыг шалгаарай.
Эхнийх нь зарим нэг анхдагч тодорхойлолтуудыг агуулдаг – тэдгээрийн
ихэнх нь тайлбар болон хаагдсан байдаг. Та системээ эхээс нь дахин бүтээх үедээ
тэдгээрийг ашиглахын тулд /etc/make.conf
файлд нэмэх хэрэгтэй. /etc/make.conf файлд
нэмсэн болгон make тушаалыг ажиллуулах бүрд
бас ашиглагддаг учир өөрийн системдээ зориулан тэдгээрийг боломжийн утгаар
тохируулж өгөх нь зүйтэй юм.
Ердийн хэрэглэгч /usr/share/examples/etc/make.conf
файлд байдаг CFLAGS болон
NO_PROFILE мөрүүдийг
/etc/make.conf уруу хуулж
тэдгээрийг тайлбар болгосныг болиулж нээхийг магадгүй хүсэж
болох юм.
Бусад тодорхойлолтуудыг (COPTFLAGS,
NOPORTDOCS гэх зэрэг) шалгаж танд хамаатай
эсэхээс хамаарч оруулах эсэхээ шийдээрэй.
/etc дэх файлуудыг шинэчил
/etc сан нь таны системийн тохиргооны мэдээллийн
ихэнх хэсгийг агуулдгаас гадна системийг эхлүүлэхэд ажилладаг скриптүүд энд байдаг.
Эдгээр скриптүүдийн зарим нь FreeBSD-ийн хувилбараас хувилбарт өөрчлөгддөг.
Тохиргооны файлуудын зарим нь бас системийг ажиллуулахад өдөр тутам хэрэглэгддэг.
Ялангуяа /etc/group-г дурдаж болно.
make installworld тушаалын суулгалт хийх хэсэг нь
зарим нэг хэрэглэгчийн нэр эсвэл бүлгүүд байж байна гэж тооцдог тохиолдлууд байдаг.
Шинэчлэл хийж байх үед эдгээр хэрэглэгчид эсвэл бүлгүүд ихэнхдээ байхгүй байдаг.
Энэ нь шинэчлэл хийхэд асуудал учруулдаг. Зарим тохиолдолд make buildworld
нь эдгээр хэрэглэгчид эсвэл бүлгүүд байгаа эсэхийг шалгана.
Үүний нэг жишээ нь smmsp хэрэглэгч нэмэгдсэн
тохиолдол юм. &man.mtree.8; нь /var/spool/clientmqueue-г
үүсгэхийг оролдох үед хэрэглэгчийн суулгалтын процесс энэ асуудлаас болж амжилтгүй
болж байсан.
Үүний шийдэл нь &man.mergemaster.8;-г ертөнцийг бүтээхээс урд
тохируулгатай ажиллуулах явдал юм. Энэ нь buildworld
эсвэл installworld тушаалыг амжилттай болгоход
зөвхөн шаардлагатай файлуудыг харьцуулдаг. Хэрэв таны хуучин mergemaster
хувилбар тохируулгыг дэмждэггүй бол эх модон дахь шинэ хувилбарыг
эхний удаа ажиллуулахдаа ашиглаарай:
&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -p
Хэрэв та ялангуяа хэтэрхий санаа зовж байгаа бол тухайн бүлэгт харьяалагдаж байгаа
нэрийг нь өөрчилж байгаа эсвэл устгаж байгаа ямар файлууд байгааг өөрийн системээс
шалгаарай:
&prompt.root; find / -group GID -print
дээрх нь GID (энэ бүлгийн нэр байж болно эсвэл
бүлгийн тоон ID байж болно) бүлгийн эзэмшдэг файлуудыг харуулна.
Ганц хэрэглэгчийн горимд шилж
ганц хэрэглэгчийн горим
Та системийг ганц хэрэглэгчийн горимд эмхэтгэхийг хүсэж болох юм.
Энэ нь шинэчлэлтийг арай илүү хурдасгах илэрхий ашиг тустайгаас гадна
системийг дахин суулгах нь системийн стандарт хоёртын файлууд,
libraries буюу туслах сангууд, оруулгын файлууд гэх зэрэг системийн
маш олон чухал файлуудыг хөнддөг. Ажиллаж байгаа систем дээр эдгээрийг
өөрчлөх нь (ялангуяа хэрэв тухайн үед таны систем дээр идэвхтэй хэрэглэгчид
байвал) гай төвгийг өөрөө эрж байна гэсэн үг юм.
олон хэрэглэгчийн горим
Өөр нэг арга бол системийг олон хэрэглэгчийн горимд эмхэтгэж дараа нь
суулгахдаа ганц хэрэглэгчийн горимд шилжин хийх явдал юм. Хэрэв та энэ замаар
хийхийг хүсэж байвал бүтээлт дуустал дараах алхмууд дээр хүлээж байгаарай.
Та installkernel эсвэл
installworld хийх хүртлээ ганц хэрэглэгчийн горимд
оролгүйгээр хүлээж байж болно.
Супер хэрэглэгч болоод та доор дурдсаныг:
&prompt.root; shutdown now
ажиллаж байгаа системээс ганц хэрэглэгчийн горим уруу оруулахдаа
ажиллуулж болно.
Өөр нэг арга нь системийг дахин ачаалаад ачаалалтын тушаал хүлээх мөрөн дээр
single user буюу ганц хэрэглэгч
тохируулгыг сонгоорой.
Ингэхэд систем ганц хэрэглэгчийг ачаална. Бүрхүүлийн тушаал хүлээх мөрөнд та
доор дурдсан тушаалуудыг ажиллуулах шаардлагатай:
&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -a
Энэ нь файлын системүүдийг шалгаж /-г
дахин унших/бичихээр дахин холбож бусад бүх UFS файлын системүүдийг
/etc/fstab-д заасны дагуу холбон дараа нь
swap-ийг идэмвхжүүлэх болно.
Хэрэв таны CMOS цаг нь GMT биш локал хугацаагаар тохируулагдсан бол
(хэрэв &man.date.1; тушаалын гаралт зөв цаг болон бүсийг харуулахгүй
бол энэ нь үнэн) та дараах тушаалыг бас ажиллуулах хэрэгтэй болж
болох юм:
&prompt.root; adjkerntz -i
Энэ нь таны локал цагийн бүсийн тохируулгуудыг зөвөөр тохируулж өгдөг —
үүнийг хийхгүй бол та дараа нь зарим асуудлуудтай тулгарч магадгүй.
/usr/obj-г устга
Системийн хэсгүүд дахин бүтээгдсэнийхээ дараа (анхдагчаар)
/usr/obj дахь сангуудад байршдаг. Эдгээр сангууд нь
/usr/src дотор байгааг халхалдаг.
Та make buildworld процессийг хурдасгаж болох бөгөөд
энэ санг бас устгаснаар хамаарлын зовлонгуудаас өөрийгөө магадгүй аврах болно.
/usr/obj доторх зарим файлуудад immutable
буюу хувиршгүй туг тавигдсан (дэлгэрэнгүй мэдээллийг &man.chflags.1;-с үзнэ үү )
байж болох бөгөөд түүнийг эхлээд арилгах хэрэгтэй.
&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *
Үндсэн системийг дахин эмхэтгэ
Гаралтыг хадгалах нь
&man.make.1;-г ажиллуулахдаа гарах үр дүнг өөр файл уруу хадгалах нь
зүйтэй юм. Хэрэв ямар нэг юм болохоо боливол та алдааны мэдэгдлийн хуулбартай
байх болно. Энэ нь танд юу буруутсаныг шинжлэхэд чинь тус болохгүй байж болох боловч
та өөрийн энэ асуудлаа &os;-ийн аль нэг захидлын жагсаалт уруу илгээсэн тохиолдолд
бусдад тус болж болох юм.
Үүнийг хамгийн амраар хийхийн тулд &man.script.1; тушаалыг бүх гаралтыг хадгалах
файлын нэрийг заасан параметрийн хамтаар ашиглана. Та үүнийг ертөнцийг дахин бүтээхээс
өмнөхөн нэн даруй хийж дараа нь процесс дууссаны дараа exit
гэж бичиж гарна.
&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET
… compile, compile, compile …
&prompt.root; exit
Script done, …
Хэрэв та үүнийг хийх бол гаралтыг /tmp дотор
битгий хадгалаарай. Энэ сан нь таныг дахин ачаалсны
дараа цэвэрлэгдэж болох юм. Энэ файлыг хадгалах арай илүү боломжийн газар нь
/var/tmp (өмнөх жишээн дээрх шиг) эсвэл
root хэрэглэгчийн гэр сан байж болох юм.
Үндсэн системийг эмхэтгэ
Та /usr/src сан дотор байх
шаардлагатай:
&prompt.root; cd /usr/src
(гэхдээ мэдээж таны код өөр газар байгаа тохиолдолд тэр сан уруугаа орох
хэрэгтэй).
make
Ертөнцийг дахин бүтээхдээ та &man.make.1; тушаалыг ашиглана. Энэ
тушаал нь &os;-ийн агуулсан програмууд ямар дарааллаар дахин хэрхэн бүтээгдэх зэргийг
тайлбарласан Makefile файлаас заавруудыг уншдаг.
Таны бичих тушаалын мөрийн ерөнхий хэлбэр нь дараах байдлаар байна:
&prompt.root; make -x -DVARIABLE target
Энэ жишээн дээр нь
&man.make.1; уруу таны дамжуулах тохируулга юм. &man.make.1;-н гарын авлагын хуудаснаас
та дамжуулж болох тохируулгуудын жишээг үзнэ үү.
тохируулга нь Makefile уруу хувьсагч дамжуулж байна.
Makefile-ийн ажиллагаа эдгээр хувьсагчуудаар
хянагдана. Эдгээр нь /etc/make.conf дотор
зааж өгсөн хувьсагчуудтай адил бөгөөд энэ нь тэдгээрийг тохируулах бас нэг өөр
арга юм.
&prompt.root; make -DNO_PROFILE target
тушаал нь профиль хийгдсэн сангууд бүтээгдэх ёсгүйг заах өөр нэг арга бөгөөд
энэ нь /etc/make.conf дахь дараах
NO_PROFILE= true # Avoid compiling profiled libraries
мөрд харгалзах юм.
target нь &man.make.1;-д
таны юу хийхийг хэлж өгдөг. Makefile болгон
өөр өөр targets буюу даалгаврын төрлүүдийг
тодорхойлдог
бөгөөд таны сонгосон төрөл юу болохыг тодорхойлдог.
Зарим төрлүүд Makefile-д жагсаагдсан байх
бөгөөд гэхдээ эдгээр нь таныг ажиллуулахад зориулагдаагүй. Харин тэдгээр нь
системийг дахин бүтээхэд шаардлагатай алхмуудыг хэд хэдэн дэд алхмуудад хуваахын
тулд бүтээх процессод хэрэглэгддэг.
Ихэнх тохиолдолд та &man.make.1; уруу ямар ч параметр дамжуулах
хэрэггүй бөгөөд тэгэхээр таны тушаал дараахтай ижил байж болно:
&prompt.root; make target
дээрх target нь олон бүтээх тохируулгуудын
нэг болно. Эхний төрөл нь үргэлж buildworld
байх ёстой.
Нэртэйгээ адилаар buildworld нь
/usr/obj дотор бүрэн гүйцэд шинэ модыг бүтээх бөгөөд
өөр нэг төрөл болох installworld нь
энэ модыг тухайн машин дээр суулгадаг.
Тусдаа тохируулгуудтай байх нь хоёр шалтгаанаар маш ач холбогдолтой юм.
Нэгдүгээрт энэ нь бүтээлтийг таны ажиллаж байгаа системийн ямар ч хэсэгт нөлөөлөхгүйгээр
аюулгүйгээр хийхийг танд зөвшөөрдөг. Бүтээлт нь өөр дээрээ хийгдэнэ (self hosted)
.
Ийм болохоор та buildworld тушаалыг олон
хэрэглэгчийн горимд ажиллаж байгаа машин дээр буруу нөлөөллөөс айлгүйгээр аюулгүйгээр
хийж болно. Гэхдээ installworld хэсгийн хувьд ганц
хэрэглэгчийн горимд хийхийг танд зөвлөдөг.
Хоёрдугаарт энэ нь сүлжээн дэх олон машинуудыг шинэчлэхэд
NFS холболтуудыг ашиглахыг танд зөвшөөрдөг. Хэрэв танд гурван машин байгаа бөгөөд
A, B болон C
машинуудыг шинэчлэхийг хүсвэл make
buildworld болон make installworld
тушаалыг A дээр ажиллуулна. Дараа нь B болон C
машинууд A дээрх /usr/src
болон /usr/obj сангуудыг NFS холболт хийн
make installworld-г ажиллуулж
бүтээлтийн үр дүнг B болон C дээр
суулгаж болох юм.
world төрөл байсаар байгаа хэдий ч
танд түүнийг ашиглахгүй байхыг зөвлөж байна.
Дараах тушаалыг ажиллуул
&prompt.root; make buildworld
Хэд хэдэн зэрэгцээ процессуудыг үүсгэх тохируулгыг
make тушаалд зааж өгөх боломжтой. Энэ нь олон CPU-тэй
машинууд дээр хамгийн их ашигтай. Гэхдээ эмхэтгэх процессийн ихэнх нь CPU дээр биш
IO дээр ажилладаг болохоор энэ нь бас нэг CPU-тэй машинууд дээр ашигтай юм.
Ердийн нэг CPU-тэй машин дээр та доор дурдсаныг ажиллуулж болох юм:
&prompt.root; make -j4 buildworld
&man.make.1; нь 4 хүртэлх процессийг нэгэн зэрэг ажиллуулах юм. Захидлын
жагсаалтуудад илгээгдсэн туршлагаас харахад энэ нь ерөнхийдөө ажиллагааг хамгийн сайн
хангаж хурдасгадаг байна.
Хэрэв та олон CPU машинтай бөгөөд SMP тохируулагдсан цөм ашиглаж байвал
утгыг 6-аас 10 хүртэл болгож хэр хурдсаж байгааг хараарай.
Хугацаа
ертөнцийг
дахин бүтээх нь
хугацаа
Бүтээхэд шаардагдах хугацаанд олон хүчин зүйлс нөлөөлдөг, гэхдээ
нэлээн сүүлийн үеийн машинуудын хувьд &os.stable; модыг процессийн явцад ямар нэгэн
заль мэх эсвэл дөт зам ашиглалгүйгээр бүтээхэд зөвхөн нэг юм уу эсвэл хоёр цаг л
шаардагдах болох юм. &os.current; модны хувьд арай удах болов уу.
Шинэ цөмийг эмхэтгэж суулга
цөм
суулгах нь
Та өөрийн шинэ системийн давуу талыг бүгдийг нь авахын тулд цөмөө дахин эмхэтгэх
хэрэгтэй. Зарим нэг санах ойн бүтцүүд өөрчлөгдсөн байх талтай бөгөөд
&man.ps.1; болон &man.top.1; зэрэг програмууд нь цөм болон эх кодын хувилбарууд
адил болтол ажилладаггүй болохоор эмхэтгэх нь үнэндээ чухал хэрэгцээтэй юм.
Үүнийг хамгийн хялбараар аюулгүйгээр хийхийн тулд GENERIC
дээр тулгуурласан цөмийг бүтээж суулгах явдал юм. GENERIC нь
таны системийн хувьд хэрэгцээтэй төхөөрөмжүүдийг агуулаагүй байж болох боловч
таны системийг ядаж ганц хэрэглэгчийн горимд ачаалахад шаардлагатай бүгдийг агуулсан
байх ёстой. Шинэ систем зөв ажиллуулахад энэ сайн тест болж өгдөг.
GENERIC-с ачаалж таны систем ажиллаж байгааг шалгасны
дараа та өөрийн ердийн цөмийн тохиргооны файл дээр тулгуурлан шинэ цөмөө бүтээж
болох юм.
&os; дээр шинэ цөм бүтээхээсээ өмнө ертөнцийг бүтээх нь чухал юм.
Хэрэв та өөрчлөн тохируулсан цөмийг бүтээхийг хүсэж тохиргооны файлаа аль
хэдийн үүсгэсэн бол доор дурдсантай адилаар
KERNCONF=MYKERNEL
гэж ашиглаарай:
&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNEL
Хэрэв та kern.securelevel хувьсагчийг
1-ээс дээш болгон ихэсгэсэн бөгөөд
noschg эсвэл түүнтэй адил тугуудыг өөрийн цөмийн хоёртын
файлд тавьсан бол installkernel хийхийн тулд
та ганц хэрэглэгчийн горимд шилжин орох шаардлагатай байж болох юм. Үгүй бол
та энэ хоёр тушаалыг олон хэрэглэгчийн горимоос ямар ч асуудалгүйгээр
ажиллуулах ёстой. kern.securelevel-ийн талаар
дэлгэрэнгүйг &man.init.8; болон төрөл бүрийн файлын тугуудын талаар дэлгэрэнгүйг
&man.chflags.1; гарын авлагын хуудаснуудаас үзнэ үү.
Ганц хэрэглэгчийн горим уруу дахин ачаалан ор
ганц хэрэглэгчийн горим
Та шинэ цөмийн ажиллагааг шалгахын тулд ганц хэрэглэгчийн горимд дахин
ачаалан орох хэрэгтэй. Үүнийг
дахь заавруудын дагуу хийнэ.
Шинэ системийн хоёртын файлуудыг суулга
Хэрэв та make buildworld тушаалыг ашигласан
саяхны &os;-ийн хувилбарыг бүтээж байгаа бол одоо шинэ системийн хоёртын
файлуудыг суулгахын тулд installworld
тушаалыг ашиглах шаардлагатай.
Доор дурдсаныг ажиллуулна
&prompt.root; cd /usr/src
&prompt.root; make installworld
Хэрэв та make buildworld тушаалын мөрөнд
хувьсагчуудыг зааж өгсөн бол тэдгээр хувьсагчуудыг
make installworld тушаалын мөрөнд бас адилаар
зааж өгөх хэрэгтэй. Энэ бусад тохируулгуудын хувьд заавал шаардлагатай биш
байж болох юм; жишээ нь тохируулга
installworld-той цуг хэзээ ч хэрэглэгдэх
ёсгүй.
Жишээ нь хэрэв та доор дурдсаныг ажиллуулсан бол:
&prompt.root; make -DNO_PROFILE buildworld
хоёртын файлуудыг дараах тушаалаар суулгана:
&prompt.root; make -DNO_PROFILE installworld
ингэхгүй бол make buildworld тушаалын ажиллах
явцад бүтээгдээгүй профиль хийгдсэн сангуудыг (libraries) суулгахыг оролдох болно.
make installworld тушаалаар шинэчлэгдээгүй файлуудыг шинэчил
Ертөнцийг дахин бүтээх нь зарим нэг сангуудыг (ялангуяа /etc,
/var болон /usr) шинэ болон
өөрчлөгдсөн тохиргооны файлуудаар шинэчилдэггүй.
Эдгээр файлуудыг хамгийн амархнаар шинэчлэх арга нь &man.mergemaster.8;-г
ашиглах явдал юм, гэхдээ та хэрэв хүсвэл үүнийг гараар ажиллуулах боломжтой юм.
Аль ч аргыг сонголоо гэсэн ямар нэгэн зүйл буруутсан тохиолдолд сэргээх боломжтойгоор
/etc-г нөөцөлж авах нь зүйтэй юм.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
mergemaster
mergemaster
&man.mergemaster.8; хэрэгсэл нь /etc дэх
таны тохиргооны файлууд болон /usr/src/etc эх модон дахь
тохиргооны файлуудын ялгааг тодорхойлоход танд тусалдаг Bourne скрипт юм.
Энэ нь системийн тохиргооны файлуудыг эх модон дахь тохиргооны файлуудаар шинэчлэх
зориулалттай бидний зөвлөдөг шийдэл юм.
Эхлэхийн тулд өөрийн тушаал оруулах мөрөнд ердөө л mergemaster-г
бичиж түүний эхлэхийг нь хараарай. mergemaster нь түр зуурын
root орчныг /-с доошлуулан бүтээж төрөл бүрийн системийн тохиргооны
файлуудаар дамждаг. Тэдгээр файлууд нь таны системд суулгагдсан файлуудтай харьцуулагддаг.
Энэ үед хоорондоо ялгаатай файлууд &man.diff.1; хэлбэрээр үзүүлэгддэг бөгөөд
тэмдэгтээр нэмэгдсэн эсвэл өөрчлөгдсөн мөрүүдийг
тэмдэгтээр устгагдсан эсвэл шинэ мөрөөр солигдсон мөрүүдийг
харуулдаг. &man.diff.1;-н синтакс болон файлын өөрчлөлтүүдийг хэрхэн үзүүлдэг талаар
дэлгэрэнгүй мэдээллийг &man.diff.1; гарын авлагын хуудаснаас үзнэ үү.
&man.mergemaster.8; нь зөрчилдөөнүүдийг үзүүлсэн файл болгоныг харуулдаг бөгөөд
энэ үед танд шинэ файлыг устгах (түр зуурын файл гэгддэг), түр зуурын файлыг өөрчлөлгүйгээр
суулгах, суусан байгаа файлтай түр зуурын файлыг нийлүүлэх эсвэл &man.diff.1;-н
гаралтыг дахин харах сонголтыг үзүүлэх болно.
Түр зуурын файлыг устгахыг сонгосноор бид одоо байгаа файлаа хэвээр өөрчлөлгүй үлдээж
шинэ хувилбарыг устгахыг хүсэж байгаагаа &man.mergemaster.8;-д хэлж байна гэсэн үг юм.
Хэрэв та одоо байгаа файлаа өөрчлөх шалтгааныг олж харахгүй байгаагаас бусад тохиолдолд
энэ сонголтыг хийхийг зөвлөдөггүй. Та ямар ч үед &man.mergemaster.8; тушаал хүлээх
мөрөн дээр ? гэж бичин тусламж авч болох юм. Хэрэв хэрэглэгч
файлыг орхихоор сонгосон бол энэ нь бусад бүх файлуудтай ажилсны дараа дахин үзүүлэгдэн
хэрэглэгчээс тушаал хүлээх болно.
Өөрчлөгдөөгүй түр зуурын файлыг суулгахыг сонгосноор одоо байгаа файлыг шинээр
сольдог. Ихэнх өөрчлөгдөөгүй файлуудын хувьд энэ нь хамгийн шилдэг сонголт юм.
Файлыг нийлүүлэхийг сонгосноор текст засварлагч болон хоёр файлын агуулгыг танд
харуулах болно. Та дэлгэцийн хоёр талд байрласан тэдгээр хоёр файлыг хоёуланг нь
шалган аль аль талаас нь хэрэгтэй хэсгүүдийг сонгон эцсийн бүтээгдэхүүн гаргаж аван
нийлүүлж болно. Файлууд нь дэлгэцийн хоёр талд байрлан харьцуулагдах явцад
l түлхүүр таны зүүн талын агуулгыг сонгодог бол
r түлхүүр нь таны баруун тал дахь агуулгыг сонгох юм.
Гарах эцсийн үр дүн нь хоёр файлын хоёулангийн хэсгүүдийг агуулсан файл болох бөгөөд
түүнийг дараа нь суулгах боломжтой болох юм. Энэ сонголтыг хэрэглэгчийн тохиргоонуудад
хийгдсэн өөрчлөлтүүдтэй файлуудын хувьд хэрэглэх нь зуршил болжээ.
&man.diff.1;-ээс гарах үр дүнг дахин харахыг сонгосноор өмнө нь
&man.mergemaster.8; файлын өөрчлөлтүүдийг харуулан таны сонголтыг хүлээсний
нэгэн адилыг дахин харуулдаг.
&man.mergemaster.8; системийн файлуудтай ажиллаж дууссаны дараа
танаас бусад сонголтуудыг хийхийг хүлээдэг. &man.mergemaster.8; тушаал
нууц үгийн файлыг дахин бүтээхийг хүсэж байгаа эсэхийг танаас асууж үлдсэн
түр зуурын файлуудыг устгах сонголтыг үзүүлэн дуусдаг.
Гараар шинэчлэх
Хэрэв та гараар шинэчлэхийг хүсвэл гэхдээ та /usr/src/etc
сангаас /etc сан уруу файлуудыг зүгээр л дарж хуулж ажиллуулж
чадахгүй. Зарим файлуудыг эхлээд суулгах
хэрэгтэй. Учир нь
/usr/src/etc сан таны /etc
сангийн хуулбар шиг байхаар харагддагүй. Мөн
/usr/src/etc санд байдаггүй хэрнээ
/etc сан дотор байх шаардлагатай зарим файлууд
байдаг.
Хэрэв та &man.mergemaster.8; (зөвлөсний дагуу) ашиглаж байвал та
дагаагийн хэсэг уруу
орж болно.
Үүнийг гараар хамгийн хялбар аргаар хийхийн тулд файлуудыг шинэ сан уруу
суулгаж нэг бүрчлэн өөрчлөлтүүдийг хайн ажиллах хэрэгтэй.
Өөрт байгаа /etc-г нөөцөл
Онолоор бол автоматаар энэ санд юу ч хүрдэггүй ч үүнд үргэлж итгэлтэй
байх хэрэгтэй. Тэгэхээр өөрийн байгаа /etc санг
хаа нэг аюулгүй газар хуулах хэрэгтэй. Доорхтой адилаар:
&prompt.root; cp -Rp /etc /etc.old
нь рекурсив хуулбар хийх бөгөөд
нь файлуудын хугацаа, эзэмшигч гэх мэтийг
хадгалдаг.
Та шинэ /etc болон бусад файлуудыг суулгахын тулд
хоосон сангууд бүтээх хэрэгтэй. /var/tmp/root нь
боломжийн сонголт болох бөгөөд энэ сангийн доор хэд хэдэн дэд сангууд бас
шаардлагатай болно.
&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distribution
Энэ нь шаардлагатай сангийн бүтцийг бүтээж файлуудыг суулгадаг.
/var/tmp/root дотор үүсгэгдсэн олон дэд сангууд
хоосон бөгөөд тэдгээрийг устгах шаардлагатай байдаг. Үүнийг хамгийн хялбараар
хийхийн тулд:
&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/null
Энэ нь бүх хоосон сангуудыг устгана. (Хоосон биш сангуудын тухай анхааруулгуудыг
гаргахгүйн тулд стандарт алдаа нь /dev/null
уруу илгээгддэг.)
Одоо /var/tmp/root нь /-с
доор байрлах тохирох байрлалуудад байршуулах ёстой бүх файлуудыг агуулсан байх болно.
Та одоо эдгээр файл бүрийг шалгаж танд байгаа файлуудаас хэрхэн ялгаатай болохыг
тогтоох хэрэгтэй.
/var/tmp/root дотор суулгагдсан зарим файлуудын нэр
урдаа .
тэмдэгттэй байдгийг анхаарна уу. Энэ баримтыг бичиж байх үед
ийм файлуудтай адил файлууд /var/tmp/root/ болон
/var/tmp/root/root/ сан дахь бүрхүүлийн эхлүүлэх файлууд
байсан, гэхдээ (таны хэзээ үүнийг уншиж байгаагаас хамаарч) өөр бусад файлууд байхыг
үгүйсгэхгүй. Тэдгээрийг олж харахын тулд ls -a тушаалыг
заавал ашиглаарай.
Үүнийг хамгийн хялбар аргаар хийж хоёр файлыг харьцуулахын тулд &man.diff.1;
тушаалыг ашиглах явдал юм:
&prompt.root; diff /etc/shells /var/tmp/root/etc/shells
Энэ нь таны /etc/shells файл болон
шинэ /var/tmp/root/etc/shells файлын хоорондын
ялгааг харуулна. Эдгээрийг ашиглаж өөрийн хийсэн өөрчлөлтүүдийг нийлүүлэх эсвэл
өөрийн хуучин файл дээрээс хуулах эсэхээ шийдээрэй.
Хувилбаруудын Хоорондох Ялгаануудыг Хялбараар Харьцуулахын Тулд Та
Шинэ Root Сангаа Тухайн Үеийн Хугацаагаар Нэрлээрэй
Ертөнцийг байнга дахин бүтээнэ гэдэг нь /etc-г
та бас байнга шинэчилнэ гэсэн үг бөгөөд энэ нь ердөө л жижиг хэвшмэл ажил юм.
Та энэ процессийг /etc уруу нийлүүлсэн
өөрийн хамгийн сүүлийн өөрчлөгдсөн файлуудыг хадгалснаар хурдасгаж болох юм.
Дараах процедур үүнийг хэрхэн хийж болох нэг санааг өгч байна.
Ертөнцийг жирийнээр бүтээ. /etc болон
бусад сангуудыг шинэчлэхийг хүсэхдээ тухайн цаг дээр тулгуурласан нэр бүхий
санг өг. Хэрэв та үүнийг 1998 оны 2 сарын 14-нд хийж байгаа бол дараах
байдлаар хийнэ:
&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distribution
Энэ сангийн өөрчлөлтүүдийг дээр дурдсаны дагуу нийлүүл.
Та дууссаныхаа дараа /var/tmp/root-19980214
санг битгий устгаарай.
Та эхийн хамгийн сүүлийн хувилбарыг татан авч дахин бүтээхдээ 1-р алхмыг дага.
Энэ нь танд шинэ сан өгөх бөгөөд /var/tmp/root-19980221
гэж нэрлэгдсэн байж болох юм (хэрэв та шинэчлэлтүүдийг хийхдээ долоо хоног
хүлээсэн бол).
Та одоо &man.diff.1; ашиглан хоёр сангийн хооронд рекурсив diff үүсгэж
долоо хоногийн хооронд хийгдсэн өөрчлөлтүүдийг харж болно:
&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221
Ихэнхдээ энэ нь /var/tmp/root-19980221/etc болон
/etc хоёрын хоорондох өөрчлөлтүүдийг бодох юм бол
харьцангуй бага өөрчлөлтүүд байдаг. Өөрчлөлтүүд нь арай бага болохоор тэдгээр
өөрчлөлтүүдийг өөрийн /etc сан уруу шилжүүлэх нь
илүү хялбар байдаг.
Та одоо хоёр /var/tmp/root-* сангуудын аль хуучныг
устгаж болно:
&prompt.root; rm -rf /var/tmp/root-19980214
/etc уруу өөрчлөлтүүдийг
нийлүүлэх болгондоо энэ процессийг давтах хэрэгтэй.
Та &man.date.1;-г ашиглан сангийн нэрсийг автоматаар үүсгэж
болно:
&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`
Дахин ачаалах нь
Та ерөнхийдөө ингээд хийгээд дуусч байна. Та бүх зүйл байх ёстой байрандаа байгаа эсэхийг шалгасныхаа
дараа системийг дахин ачаалж болно. Энгийн &man.shutdown.8; үүнийг
хийх болно:
&prompt.root; shutdown -r now
Дууслаа
Одоо та өөрийн &os; системийг амжилттайгаар шинэчлээд дууссан байх
ёстой. Баяр хүргэе.
Хэрэв юмс шал буруугаар эргэвэл системийн тухайн хэсгийг дахин бүтээхэд амархан
байдаг. Жишээ нь хэрэв та шинэчлэлтийн явцад эсвэл /etc-г
нийлүүлэх явцад санамсаргүйгээр /etc/magic файлыг
устгасан бол &man.file.1; тушаал ажиллахаа больно. Ийм тохиолдолд дараах
засварыг ажиллуулж болох юм:
&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all install
Асуултууд
Өөрчлөлт бүрт зориулан ертөнцийг дахин бүтээх хэрэгтэй юу?
Үүнд хялбар хариулт байхгүй, учир нь өөрчлөлтийн цаад утга чанараас
хамаарна. Жишээ нь хэрэв та CVSup-г
дөнгөж ажиллуулахад дараах файлууд шинэчлэгдэж байгааг үзүүлж байгаа бол:
src/games/cribbage/instr.c
src/games/sail/pl_main.c
src/release/sysinstall/config.c
src/release/sysinstall/media.c
src/share/mk/bsd.port.mk
магадгүй бүхэл ертөнцийг дахин бүтээх хэрэггүй байж болох юм.
Та тохирох дэд сангууд уруу орж make all install
гэж тушаалыг өгөөд л болох юм. Хэрэв зарим нэг гол чухал зүйл жишээ нь
src/lib/libc/stdlib өөрчлөгдсөн бол
та ертөнцийг эсвэл хамгийн багаар бодоход статикаар холбогдсон (statically linked)
түүний тэдгээр хэсгүүдийг дахин бүтээх шаардлагатай болно.
Эцсийн эцэст энэ нь танаас л хамаарна. Та жишээ нь хоёр долоо хоног тутам
ертөнцийг дахин бүтээж тэр хоёр долоо хоногийн хугацаанд өөрчлөлтүүдийг
хуримтлуулж байгаадаа сэтгэл хангалуун байж болно. Эсвэл та зөвхөн өөрчлөгдсөн
зүйлсүүдийг дахин бүтээхийг хүсэж магадгүй бөгөөд бүх хамаарлуудыг шийднэ
гэдэгтээ итгэлтэй байх хэрэгтэй.
Тэгээд мэдээж энэ бүхэн таны ямар давтамжтайгаар шинэчлэхийг хүсдэг болон
&os.stable; эсвэл &os.current;-ийн алийг дагаж байгаагаас хамаарах
болно.
Миний эмхэтгэл маш олон дохио 11 (эсвэл бусад дохионы дугаар)
алдаагаар амжилтгүй болсон. Юу болсон юм бол?
дохио 11
Энэ нь ихэвчлэн тоног төхөөрөмжийн асуудлыг илэрхийлдэг.
Ертөнцийг (дахин) бүтээх нь өөрийн тоног төхөөрөмжийг ачаалах тест
хийх үр дүнтэй арга бөгөөд удаа дараа санах ойн асуудлууд байвал
тэдгээрийг илрүүлдэг. Эмхэтгэгч нь сонин/хачин дохионуудыг хүлээн авч
ид шидийн байдлаар амжилтгүй болсноор тэдгээр асуудлууд нь өөрсдийгөө
зарлан тунхагладаг.
Хэрэв та бүтээлтийг дахин эхлүүлээд тэр нь процессийн өөр өөр хэсэгт
амжилтгүй болж байвал энэ нь үүнийг тодоор зааж байна
гэсэн үг юм.
Энэ тохиолдолд та өөрийн машин дахь бүрэлдэхүүн хэсгүүдээ өөрчлөн
нэгээс нөгөөд сольж тавин аль нь ажиллахгүй байгааг олохоос өөр зүйл
хийж чадахгүй л болов уу.
Би дууссаныхаа дараа /usr/obj-г устгаж болох уу?
Товчхондоо бол болно.
/usr/obj нь эмхэтгэх үед бүтээгдсэн бүх
обьект файлуудыг агуулдаг. Жирийн үед make buildworld
процессийн эхний алхмуудын нэг нь энэ санг устгаад цоо шинээр эхлэх явдал
юм. Энэ тохиолдолд /usr/obj-г дууссаныхаа
дараа байлгаад байх нь ухаалаг биш бөгөөд үүнийг устгаснаар ихээхэн хэмжээний дискний зайг
суллах болно (одоогоор 340 MB орчим).
Гэхдээ хэрэв та юу хийж байгаагаа мэдэж байгаа бол make buildworld
хийхдээ энэ алхмыг алгасаж болно. Энэ нь дараа дараагийн бүтээлтийг илүү хурдасгадаг
бөгөөд учир нь ихэнх эхүүд дахин эмхэтгэх шаардлагагүй байдаг. Үүний сул тал нь
баригдашгүй хамаарлын асуудлууд илэрч таны бүтээлтийг хачин байдлаар амжилтгүй
болгодог. Хэн нэгэн илүү дөтлөх гэснээсээ болоод амжилтгүй болсныг мэдэлгүй өөрийн
бүтээлтийг амжилтгүй болсныг гомдоллосноор &os;-ийн захидлын жагсаалтуудад
хий дэмий шуугианыг удаа дараа үүсгэдэг билээ.
Тасалдсан бүтээлтүүдийг үргэлжлүүлж болох уу?
Энэ нь асуудлыг олох хүртлээ та хэр хол явснаас хамаарна.
Ерөнхийдөө (энэ нь хэцүү бас хурдан дүрэм биш)
make buildworld процесс нь үндсэн
багажуудын (&man.gcc.1;, болон &man.make.1; зэрэг) болон системийн
сангуудын шинэ хуулбаруудыг бүтээдэг. Тэдгээр багажууд болон сангууд нь
дараа нь суулгагддаг. Шинэ багажууд болон сангууд дараа нь
өөрсдийгөө дахин бүтээхэд ашиглагддаг бөгөөд дахин суулгагддаг. Бүхэл бүтэн
систем (одоо &man.ls.1; эсвэл &man.grep.1; зэрэг ердийн хэрэглэгчийн програмууд)
дараа нь шинэ системийн файлуудтайгаар дахин бүтээгддэг.
Хэрэв та сүүлийн шатанд байгаа бөгөөд та үүнийг мэдэж байгаа бол (та
хадгалж байгаа гаралтаас харсан болохоор) та дараах тушаалыг ажиллуулж
(бараг л аюулгүйгээр) болно:
… fix the problem …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN all
Энэ нь өмнөх make buildworld тушаалын
хийснийг буцаахгүй.
Хэрэв та доорх мэдэгдлийг :
--------------------------------------------------------------
Building everything..
--------------------------------------------------------------
make buildworld тушаалын гаралт дээр харсан
бол магадгүй тэгж хийх нь аюулгүй байж болох юм.
Хэрэв та тийм мэдэгдэл харахгүй байгаа бол эсвэл та итгэлтэй биш байгаа бол
харамсахаасаа өмнө аюулгүй байдлыг бодож бүтээлтийг бүр эхнээс нь дахин эхлүүлсэн нь
дээр юм.
Би ертөнцийг бүтээхийг хэрхэн хурдасгах вэ?
Ганц хэрэглэгчийн горимд ажиллуул.
/usr/src болон
/usr/obj сангуудыг тус тусдаа байх дискнүүд
дээр тус тусдаа байх файлын системүүд дээр байрлуул. Хэрэв боломжтой бол
эдгээр дискнүүдийг тус тусад нь дискний хянагчууд дээр байрлуул.
&man.ccd.4; (нийлүүлсэн дискний драйвер) төхөөрөмж ашиглан
эдгээр файлын системүүдийг олон дискнүүдийн дагуу байрлуулах нь бас
арай илүү хурдасгах юм.
Профиль хийгдэхийг (/etc/make.conf файлд
NO_PROFILE=true
гэж зааж өг) болиул. Танд энэ бараг
гарцаагүй хэрэггүй.
/etc/make.conf файлд бас
CFLAGS-г гэдэгтэй
адилаар заа. оновчлол нь илүү удаан байдаг бөгөөд
болон оновчлолын
ялгаа ихэвчлэн өчүүхэн байдаг. нь эмхэтгэгчид
холбооны зориулалтаар түр зуурын файлуудыг биш хоолойнуудыг ашиглахыг
зөвшөөрдөг бөгөөд энэ нь дискэнд хандах хандалтыг (санах ойг илүүтэй хэрэглэж)
багасгадаг.
тохируулгыг
&man.make.1;-д дамжуулж олон процессийг зэрэгцээгээр ажиллуул. Энэ нь
танд ганц эсвэл олон процессортой машин аль нь ч байсан ялгаагүйгээр ихэвчлэн тусалдаг.
/usr/src-г агуулж байгаа файлын
систем тохируулгаар холболт хийгдэж (эсвэл салгагдаж)
болно. Энэ нь файлын систем файл уруу хандах хандалтын хугацааг бүртгэхийг
болиулдаг. Танд магадгүй энэ мэдээлэл бараг л хэрэггүй биз ээ.
&prompt.root; mount -u -o noatime /usr/src
Энэ жишээ /usr/src нь өөрийн файлын
систем дээр байгаа гэж тооцож байгаа болно. Хэрэв энэ нь тийм биш бол
(хэрэв энэ сан жишээ нь /usr-ийн хэсэг маягаар
байгаа бол) та /usr/src-г биш харин тэр
файлын системээ холболтын цэг болгон ашиглах хэрэгтэй.
/usr/obj-г агуулж байгаа файлын систем
тохируулгатай холболт хийгдэж (эсвэл салгагдаж)
болно. Энэ нь диск уруу хийх бичилтийг асинхроноор буюу зэрэг биш хийлгэдэг.
Өөрөөр хэлбэл бичилт нэн даруй хийгдээд өгөгдөл диск уруу цөөн секундын дараа
бичигддэг. Энэ нь бичилтүүдийг бүлэглэхийг зөвшөөрч маш их үр дүнтэйгээр
ажиллагааг хурдасгаж болох юм.
Энэ тохируулга нь таны файлын системийг илүү
эмзэг болгохыг санаарай. Тэжээл тасалдаж машин дахин ачаалах үед
файлын систем сэргээж болшгүй төлөвт орох магадлал энэ тохируулгатай
байхад илүү байдаг.
Хэрэв /usr/obj нь энэ файлын систем
дээрх цорын ганц зүйл бол энэ асуудал биш юм. Хэрэв танд уг файлын
систем дээр өөр, үнэтэй өгөгдөл байгаа бол энэ тохируулгыг
идэвхжүүлэхээсээ өмнө өөрийн нөөц чинь шинэ эсэхийг шалгаарай.
&prompt.root; mount -u -o async /usr/obj
Дээр дурдсан шиг хэрэв /usr/obj нь
өөрийн файлын систем дээр биш байх юм бол жишээн дээрхийг
тохирох холболт хийх цэгийн нэрээр солиорой.
Хэрэв ямар нэг юм буруутвал би юу хийх вэ?
Таны орчинд өмнөх бүтээлтүүдийн үеийн илүү үлдэгдлүүд
байхгүйд үнэхээр итгэлтэй байх хэрэгтэй. Энэ нь их амархан
юм.
&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandir
Тиймээ, make cleandir тушаалыг үнэндээ
хоёр удаа ажиллуулах шаардлагатай.
Тэгээд make buildworld
тушаалыг эхлүүлж бүх процессийг дахин эхлүүл.
Хэрэв та асуудалтай хэвээр байгаа бол алдаа болон
uname -a тушаалын дүнг &a.questions;
уруу явуулаарай. Өөрийн тохиргооныхоо талаар бусад асуултанд
хариулахад бэлэн байгаарай!
Майк
Мэйэр
Хувь нэмэр болгон оруулсан
Олон машины хувьд дагах нь
NFS
олон машин суулгах нь
Хэрэв та олон машинуудын хувьд ижил эх модыг дагахыг хүсэж бүгдийн хувьд
эхийг татан авахуулж бүгдийг дахин бүтээхийг хүсэж байгаа бол энэ нь дискний зай,
сүлжээний зурвасын өргөн болон
CPU циклүүд зэрэг эх үүсвэрүүдийг үр ашиггүйгээр ашиглахад хүргэхээр санагдаж
болох юм. Тиймээ, үүний шийдэл нь нэг машинаар ихэнх ажлыг хийлгэж
бусад машинууд нь тэр ажлыг NFS-ээр дамжуулан холбох явдал юм. Энэ хэсэгт
ингэж хийх аргыг тайлбарсан.
Бэлтгэл ажлууд
Эхлээд хоёртын адил файлуудыг ажиллуулах build set буюу
бүтээх олонлог гэж бидний нэрлэх машинуудыг олох хэрэгтэй.
Машин бүр өөрчлөн тохируулсан цөмтэй байж болох бөгөөд гэхдээ тэд ижил хэрэглэгчийн
талбарын хоёртын файлуудыг ажиллуулж байх ёстой. Тэр олонлогоос
бүтээх машиныг сонгох хэрэгтэй. Энэ нь
ертөнц болон цөм бүтээгдэх машин байх юм. Туйлын хүслээр бол энэ
нь make buildworld болон
make buildkernel тушаалуудыг ажиллуулахад
хангалттай нөөц CPU бүхий хурдан машин байх хэрэгтэй. Та мөн
үйлдвэрлэлд ашиглахаас өмнө програм хангамжуудыг тест хийдэг
тест машин сонгохыг бас хүсэж болох юм.
Энэ нь удаан хугацаагаар унтраастай эсвэл зогссон байж болох машин байх
ёстой. Энэ нь бүтээх машин байж болох юм, гэхдээ заавал
биш юм.
Энэ бүтээх олонлог дахь бүх машинууд нь өөр өөрийн машин дээрээсээ ижил цэг дээр
/usr/obj болон /usr/src-г
холболт хийх хэрэгтэй. Туйлын хүслээр бол энэ нь бүтээх машин дээрх хоёр өөр дискнүүд
байж болох бөгөөд гэхдээ эдгээр нь уг машин дээр NFS холболт бас хийгдэж болохоор
байж болох юм. Хэрэв танд олон бүтээх олонлогууд байгаа бол
/usr/src сан нь нэг бүтээх машин дээр байрлаж
бусад дээр нь NFS холболт хийгдсэн байх юм.
Төгсгөлд нь бүтээх олонлогийн бүх машинууд дээрх /etc/make.conf
болон /etc/src.conf файлууд бүтээх машиныхтай тохирч байгаа эсэхийг шалгаарай. Энэ нь бүтээх олонлогийн
машин бүрийн суулгах үндсэн системийн бүх хэсгүүдийг бүтээх машин хийх ёстой гэсэн
үг юм. Мөн бүтээх машин бүр өөрийн цөмийн нэрийг /etc/make.conf
файлд KERNCONF хувьсагчид заан өгөх ёстой бөгөөд бүтээх
машин бүр KERNCONF хувьсагчдаа өөрийн цөмийг эхэнд
оруулан дараа нь тэдгээрийг жагсаах ёстой байдаг. Бүтээх машин нь машин бүрийн
цөмийг бүтээхээр болох юм бол тэдгээрийн тохиргооны файлыг
/usr/src/sys/arch/conf
санд агуулсан байх шаардлагатай.
Үндсэн систем
Одоо бүх юм ингэж хийгдсэний дараа та бүгдийг бүтээхэд бэлэн боллоо.
Бүтээх машин дээр -д тайлбарласны
дагуу цөм болон ертөнцийг бүтээ, гэхдээ юуг ч битгий суулгаарай. Бүтээлт
дууссаны дараа тест машин дээр дөнгөж саяхан бүтээсэн цөмөө суулга.
Хэрэв энэ машин нь /usr/src
болон /usr/obj сангуудыг NFS-ээр холболт хийх
гэж байгаа бол та ганц хэрэглэгчийн горимд дахин ачаалахдаа сүлжээг нээж
тэдгээрийг холбож өгөх хэрэгтэй. Үүнийг хамгийн хялбараар хийхийн тулд
олон хэрэглэгчийн горимд ачаалан shutdown now
тушаалыг ажиллуулж ганц хэрэглэгчийн горимд орох явдал юм. Тэгэж орсныхоо
дараа та шинэ цөм болон ертөнцийг суулгаж жирийн үедээ хийдэг
mergemaster тушаалыг ажиллуулж болно.
Ингэж дууссаныхаа дараа энэ машины хувьд ердийн олон хэрэглэгчийн
үйлдлүүдэд дахин ачаалж орно.
Тест машин дээрх бүх зүйлс зөв ажиллаж байгааг мэдсэнийхээ дараа та
бүтээх олонлогийн бусад машин бүр дээр шинэ програм хангамж суулгахдаа
ижил процедурыг ашиглаарай.
Портууд
Үүнтэй адил санааг бас портуудын модонд ашиглаж болно. Эхний чухал
алхам бол нөгөө машин дээрх /usr/ports санг
бүтээх олонлогийн бусад машинууд дээр холбож өгөх явдал юм. Дараа нь та
/etc/make.conf файлыг distfiles
буюу түгээлтийн файлуудыг хуваалцахаар зөв тохируулж өгч болно.
Та DISTDIR хувьсагчийг таны NFS холболтуудад заагдсан
аль ч root хэрэглэгчийн хувьд бичигдэх боломжтой байх
нийтлэг хуваалцсан сангаар тохируулах шаардлагатай.
Машин бүр WRKDIRPREFIX хувьсагчийг локал
бүтээх сангаар зааж өгөх хэрэгтэй. Эцэст нь хэрэв та багцуудыг бүтээж түгээх
гэж байгаа бол PACKAGES хувьсагчийг
DISTDIR хувьсагчийн нэгэн адил сангаар зааж өгөх
хэрэгтэй.
diff --git a/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml b/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml
index e363d44259..5bddb08a0f 100644
--- a/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/network-servers/chapter.sgml
@@ -1,5097 +1,5097 @@
Мюррей
Стөүкли
Дахин зохион байгуулсан
Лодойсамбын
Баянзул
Орчуулсан
Сүлжээний орчны Серверүүд
Ерөнхий агуулга
Энэ бүлэгт &unix; системүүдэд өргөн хэрэглэгддэг, сүлжээний орчинд ажилладаг
зарим нэг үйлчилгээнүүдийн талаар авч үзнэ. Бид тэдгээр үйлчилгээнүүдийг хэрхэн
суулгах, тохируулах, турших болон үйлчилгээг хариуцах талаар үзэх болно.
Танд зориулж жишээ тохиргооны файлуудыг мөн оруулж өгсөн байгаа.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
inetd дэмоныг хэрхэн удирдах.
Сүлжээний орчны файл системийг хэрхэн зохион байгуулах.
Хэрэглэгчийн бүртгэлийг хуваалцах сүлжээний орчны мэдээллийн серверийг хэрхэн зохион байгуулах.
DHCP ашиглан автоматаар сүлжээний тохиргоог хэрхэн хийх.
Домэйн нэрийн серверийг хэрхэн зохион байгуулах.
Apache HTTP Серверийг хэрхэн зохион байгуулах.
File Transfer Protocol буюу Файл Дамжуулах Протокол(FTP) Серверийг хэрхэн зохион байгуулах.
Samba ашиглан &windows; хэрэглэгчдэд зориулсан
файл болон хэвлэгч серверийг хэрхэн зохион байгуулах.
NTP протокол ашиглан цаг болон өдрийг тохируулах хийгээд цагийн серверийг хэрхэн зохион байгуулах.
How to configure the standard logging daemon,
syslogd, to accept logs from remote
hosts.
Энэ бүлгийг уншихаасаа өмнө, та дараах шаардлагыг хангасан байх хэрэгтэй:
/etc/rc скриптүүдийн үндсийг ойлгосон байх.
Сүлжээний үндсэн нэр томъёоллыг мэддэг байх.
Гуравдагч этгээдийн програмыг() хэрхэн нэмж суулгахыг мэддэг байх.
Шерн
Лий
Хувь нэмрээ оруулсан
&os; 6.1-RELEASE-д зориулж шинэчилсэн
&os; Баримтжуулах Төсөл
Лодойсамбын
Баянзул
Орчуулсан
inetd Супер-Сервер
Ерөнхий агуулга
&man.inetd.8; нь олон тооны үйлчилгээний сүлжээний холболтыг удирддаг тул
заримдаа түүнийг Интернэт Супер-Сервер
гэж нэрлэх нь бий.
Гаднаас үүсч буй холболтыг inetd хүлээн авч, аль програмтай холбогдохыг
тодорхойлон, тухайн процессийг салаалуулж, сокетийг түүн рүү чиглүүлнэ (програмын стандарт оролт,
гаралт болон алдааны дескриптороор үйлчилгээний сокетийг өгнө). Байнга ашиглагддаггүй үйлчилгээний хувьд
inetd-г ажиллуулах нь бүх дэмонг дангаар бие-даах горимд ажиллуулсантай
харьцуулахад системийн нийт ачааллыг бууруулж өгдөг.
Голчлон, inetd нь бусад дэмонуудыг салаалуулахад хэрэглэгддэг
боловч chargen, auth,
ба daytime гэх мэт нилээд олон ердийн протоколуудыг шууд зохицуулан ажиллуулж чадна.
Энэ хэсэгт inetd-н үндсэн тохиргоог тушаалын мөрний тохируулгаар,
мөн /etc/inetd.conf тохиргооны файлаар хэрхэн хийхийг үзэх болно.
Тохиргоо
inetd нь &man.rc.8; системээр эхлүүлэгдэнэ.
inetd_enable тохируулгын анхдагч утга нь NO бөгөөд,
системийг суулгах явцад хэрэглэгчийн зааж өгсний дагуу sysinstall
програмын тусламжтай идэвхжүүлж болно.
inetd_enable="YES"
эсвэл
inetd_enable="NO"
гэсэн мөрийг /etc/rc.conf
файл дотор байрлуулснаар inetd-г систем ачаалахад
эхэлдэг болгож болно. Доор дурдсан:
/etc/rc.d/inetd rcvar
тушаалыг өгөн одоо идэвхтэй байгаа
тохиргоог харж болно.
Дээр нь, inetd_flags тохируулгаар дамжуулан
inetd програмд тушаалын мөрнөөс өөр бусад тохируулгуудыг
зааж өгч болно.
Тушаалын мөрний тохируулгууд
Ихэнх сервер дэмоны нэгэн адил, inetd нь
түүнийг өөрчлөн тохируулахад зориулагдсан олон тооны тохируулгуудын хамт ирдэг.
Тохируулгуудыг бүрнээр жагсаан бичвэл:
inetd
/etc/rc.conf файл доторх
inetd_flags тохируулгыг ашиглан
эдгээр тохируулгуудыг inetd-д дамжуулна.
Анхдагч байдлаар, inetd_flags нь -wW -C 60 гэсэн
утгыг авсан байх ба энэ нь inetd-ны үйлчилгээнүүдийн хувьд
TCP wrapping буюу TCP-ийн дундын хяналтыг идэвхжүүлэх ба нэг IP хаягнаас аль нэг үйлчилгээнд
нэг минутанд 60-аас дээш удаа хүсэлт тавих боломжгүй болгоно.
Хэдийгээр бид гаднаас хэтэрхий олон
тооны хандалт хийгдэж байгаа үед тохируулгаар түүнийг хэрхэн хязгаарлахыг
доор үзүүлж байгаа ч, анхлан суралцагчдад зөвлөхөд
эдгээр параметрүүдийг ихэвчлэн өөрчлөх шаардлагагүй байдаг.
Тохируулгуудын бүрэн жагсаалтыг &man.inetd.8; заавар хуудаснаас үзнэ үү.
-c maximum
Үйлчилгээг нэгэн зэрэг хамгийн ихдээ хэдэн удаа дуудаж болохыг заана; Анхдагч утга нь хязгааргүй.
Үйлчилгээ тус бүрээр параметрийн тусламжтай
утгыг дарж өөрчилж болно.
-C rate
Үйлчилгээг нэг IP хаягнаас нэг минутын дотор хамгийн ихдээ хэдэн удаа
дуудаж болохыг заана; Анхдагч утга нь хязгааргүй.
Үйлчилгээ тус бүрээр параметрийн тусламжтай
утгыг дарж өөрчилж болно.
-R rate
Үйлчилгээг нэг минутын дотор хамгийн ихдээ хэдэн удаа дуудаж болохыг заана;
Анхдагч утга нь 256. 0-г тавьснаар хязгааргүй болгоно.
-s maximum
Үйлчилгээг нэг IP хаягнаас хамгийн ихдээ хэдэн удаа
дуудаж болохыг заана; Анхдагч утга нь хязгааргүй.
Үйлчилгээ тус бүрээр параметрийн тусламжтай
утгыг дарж өөрчилж болно.
inetd.conf
inetd-г /etc/inetd.conf
файлын тусламжтай тохируулна.
/etc/inetd.conf файлд өөрчлөлт хийсний дараа,
inetd-р тохиргооны файлыг дахин уншуулахдаа
дараах тушаалыг өгнө:
inetd-н тохиргооны файлыг дахин ачаалах нь
&prompt.root; /etc/rc.d/inetd reload
Тохиргооны файлын мөр бүр тусдаа дэмонг заана.
Файл доторх тайлбарууд нь мөрийн эхэнд #
тэмдэгтэй байна.
/etc/inetd.conf файл доторх бичлэгүүдийн формат дараах
байдалтай байна:
service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-arguments
IPv4 ашигладаг &man.ftpd.8; дэмоны хувьд жишээ бичлэг дараах байдалтай байж болно:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
service-name
Тухайн дэмоны үйлчилгээний нэрийг заана.
Энэ нь /etc/services файл дотор бичигдсэн үйлчилгээнүүдийн нэг
байх ёстой бөгөөд аль портон дээр сонсохыг inetd-д хэлж өгнө.
Хэрэв шинэ үйлчилгээ үүсгэсэн бол түүнийг заавал /etc/services файл
дотор нэмсэн байх ёстой.
socket-type
stream,
dgram, raw, эсвэл seqpacket эдгээрийн нэг байна.
stream-г холболтон дээр үндэслэсэн TCP дэмонуудын хувьд хэрэглэдэг бол,
dgram-г UDP протоколоор ажилладаг дэмонуудын хувьд хэрэглэнэ.
protocol
Доор дурдсанаас нэг нь байна:
Протокол
Тайлбар
tcp, tcp4
TCP IPv4
udp, udp4
UDP IPv4
tcp6
TCP IPv6
udp6
UDP IPv6
tcp46
TCP IPv4 ба v6 хоёул
udp46
UDP IPv4 ба v6 хоёул
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
нь inetd-р дуудагдсан
дэмон өөрийн сокетийг удирдаж чадах эсэхийг заана.
төрлийн сокет дэмоны хувьд тохируулгыг
хэрэглэх ёстой байдаг бол, ихэвчлэн олон урсгалтай байдаг
сокет дэмоны хувьд тохируулгыг хэрэглэх
хэрэгтэй байдаг. нь ихэвчлэн олон сокетийг нэг дэмонд
шилжүүлэн өгдөг бол, нь шинээр үүссэн сокет тус бүрт
харгалзуулан хүүхэд дэмонг салаалуулан үүсгэдэг.
inetd-ийн салаалуулан үүсгэж
болох хамгийн их хүүхэд дэмоны тоог
тохируулгын тусламжтай зааж өгч болно. Хэрэв
тухайн дэмоны ажиллаж болох тохиолдлыг 10-р хязгаарлах бол,
-н ард /10 гэж бичнэ.
/0 нь хүүхдийн тоог хязгаарлахгүй гэсэн утгатай.
-с гадна, нэг газраас тухайн дэмонтой
үүсгэж байгаа холболтын тоог хязгаарладаг өөр хоёр
тохируулгыг хэрэглэж болно.
нь тухайн ямар нэг IP хаягнаас
нэг минутанд үүсгэж болох холболтын тоог хязгаарлана,
жишээлбэл: 10 гэсэн утга нь тухайн ямар нэг IP хаягнаас
нэг минутын дотор тухайн үйлчилгээнд холбогдохоор оролдох
оролдлогын тоог 10-р хязгаарлана. нь
Тухайн ямар нэг IP хаяг дээр үүсгэгдсэн хүүхдийн тоог хязгаарлана.
Эдгээр тохируулгууд нь санаатай болон санамсаргүйгээр нөөцийг
хэтрүүлэн хэрэглэх, мөн Үйлчилгээг Зогсоох (DoS) халдлагаас хамгаалахад
хэрэгтэй байдаг.
Хэрэглэхдээ, ба
хоёрын аль нэгийг заавал хэрэглэх ёстой. Харин ,
ба
тохируулгуудыг сонгон хэрэглэж болно.
Stream төрлийн олон урсгалтай дэмоны хувьд, ,
эсвэл хязгаарлалтуудын
алийг ч хэрэглэхгүй тохиолдолд ердөө: nowait байна.
Дээрхтэй адил дэмон, 10 хүүхэд дэмоны хязгаарлалттай бол: nowait/10 байна.
Мөн адил дэмон, 10 хүүхэд дэмоны хязгаарлалттай,
минутанд нэг IP хаягнаас үүсгэх холболтын тоог 20-р хязгаарлах бол:
nowait/10/20 болно.
Эдгээр тохируулгуудыг &man.fingerd.8; дэмоны анхдагч тохиргоон дээр
жишээ болгон харвал:
finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
Эцэст нь, 100 хүүхдийн хязгаарлалттай, нэг IP хаягнаас үүсэх холболтын
тоог 5-р хязгаарласан дэмоны жишээг авбал: nowait/100/0/5 байх юм.
user
Энд тухайн дэмон ямар хэрэглэгчийн нэрээр ажиллахыг зааж өгнө.
Ихэвчлэн дэмонууд root хэрэглэгчийн нэр дээр ажилладаг.
Аюулгүй байдлын үүднээс, зарим серверүүд daemon, эсвэл
хамгийн бага эрхтэй nobody хэрэглэгчийн нэр дээр ажиллах нь
элбэг байдаг.
server-program
Энд гаднаас холболт хүлээн авахад ажиллуулах дэмоны
бүрэн замыг зааж өгнө. Хэрэв энэ дэмон inetd-р удирдагдсан
дотоод үйлчилгээ бол тохируулгыг хэрэглэх хэрэгтэй.
server-program-arguments
Үүнийг -тай хамт, argv[0]-с эхлэн
програмын аргументыг зааж өгөх байдлаар хэрэглэнэ. Хэрэв командын
мөрөнд mydaemon -d гэсэн байдлаар хэрэглэдэг бол, -н
утга mydaemon -d байна. Дахин хэлэхэд, хэрэв тухайн дэмон дотоод үйлчилгээний
нэг бол -г энд мөн хэрэглэнэ үү.
Аюулгүй байдал
Үйлдлийн системийг суулгах үед хийсэн сонголтуудаас хамааран
inetd-н үйлчилгээнүүдийн ихэнх нь
идэвхтэй болсон байдаг. Хэрэв хэрэглэх
онцын шаардлага байхгүй бол тэдгээрийг идэвхгүй болгоно уу.
/etc/inetd.conf файл дотор, идэвхгүй болгох гэж
байгаа демоныхоо харгалзах мөрийн урд #
тэмдгийг тавьж өгнө. Дараа нь inetd-н тохиргоог дахин
ачаална. fingerd зэрэг зарим дэмонууд гадны халдагчид
хэрэгтэй мэдээллийг түгээж байдаг тул тэдгээр үйлчилгээг бүрмөсөн хааж
болох юм.
Зарим дэмонууд аюулгүй байдлыг бодолцолгүйгээр бүтээгдсэн
байдаг ба холболт тогтоох харьцангуй урт болзоот хугацаатай, эсвэл болзоот
хугацааг огт зааж өгөөгүй байдаг. Энэ нь халдагчид тодорхой дэмон уруу холболт
тогтоох хүсэлтийг олон дахин илгээж, нөөцийг дуусгах замаар системд халдах
боломжийг олгодог. Хэрэв ямар нэг дэмоны хувьд үүссэн холболтын тоо
хэтэрхий олон байвал ,
эсвэл тохиргооны
тусламжтайгаар хязгаарлалт хийх нь оновчтой байдаг.
Анхдагч байдлаар TCP-ийн дундын хяналт (гүйцэтгэл хялбаршуулалт) идэвхтэй байдаг.
inetd-р дуудагдсан дэмонуудын хувьд TCP хязгаарлалтыг хэрхэн
тавих талаар дэлгэрэнгүй мэдээллийг &man.hosts.access.5;
заавар хуудаснаас үзнэ үү.
Элдэв зүйлс
daytime,
time,
echo,
discard,
chargen, ба auth бүгд
inetd-н дотоод үйлчилгээнүүд юм.
auth үйлчилгээ нь
сүлжээний орчинд, тодорхойлолт өгөх үйлчилгээ үзүүлдэг
бөгөөд тодорхой түвшинд тохиргоо хийх боломжтой байдаг бол
бусад үйлчилгээнүүдийг зөвхөн идэвхтэй эсвэл идэвхгүй болгох
боломжтой.
Дээрх үйлчилгээнүүдийн талаар бүрэн дүүрэн мэдээллийг &man.inetd.8; заавар хуудаснаас
үзнэ үү.
Том
Рөүдс
Дахин зохион байгуулж, сайжруулсан
Билл
Свингл
Бичсэн
Лодойсамбын
Баянзул
Орчуулсан
Сүлжээний Файлын Систем (NFS)
NFS
FreeBSD дээр дэмжигддэг олон файлын системүүдийн нэг бол
Network File System буюу Сүлжээний Файлын Систем юм, мөн NFS гэж нэрлэнэ. NFS нь сүлжээний орчинд файл болон санг
бусадтай хуваалцах боломжийг олгодог. NFS-г
хэрэглэн, хэрэглэгчид болон програмууд алслагдсан систем рүү
дотоод файл руу хандаж байгаатай адилаар хандах боломжтой.
NFS-н тэмдэглүүштэй давуу талуудаас дурдвал:
Өргөн хэрэглэгддэг өгөгдлийг нэгтгэн нэг машин дээр
байрлуулж, түүнд алсаас хандах боломжтой болсноор
дотоод машинууд илүү бага диск хэрэглэх болно.
Хэрэглэгчийн хувьд сүлжээнд байгаа машин бүр дээр тус
тусдаа гэрийн сантай байх шаардлагагүй болно.
Гэрийн санг нэг удаа NFS сервер дээр үүсгээд
түүнийгээ сүлжээгээр дамжин хэрэглэх боломжтой.
Уян диск, CDROM болон &iomegazip; төхөөрөмжүүдийг сүлжээний
бусад машинууд хэрэглэх боломжтой болно.
Ингэснээр сүлжээнд хэрэглэгдэх зөөвөрлөх боломжтой
хадгалах төхөөрөмжүүдийн тоог багасгана.
NFS хэрхэн ажилладаг вэ
NFS нь үндсэн хоёр хэсгээс бүрдэнэ:
сервер болон нэг ба түүнээс дээш тооны харилцагч. Сервер машин дээр
хадгалагдаж байгаа өгөгдөл рүү харилцагч алсаас хандана.
Дээрх үйлдлийг зөв гүйцэтгэхийн тулд нилээд хэдэн процессийн
тохиргоог хийж, ажиллуулсан байх ёстой.
Сервер дээр дараах дэмонууд ажиллаж байх ёстой:
NFS
сервер
файл сервер
UNIX харилцагчид
rpcbind
mountd
nfsd
Дэмон
Тайлбар
nfsd
NFS харилцагчдаас ирэх
хүсэлтийг хүлээн авах NFS дэмон.
mountd
&man.nfsd.8;-с дамжиж ирсэн хүсэлтийг гүйцэтгэгч
NFS холбох дэмон.
rpcbind
Энэ дэмоны тусламжтай NFS
харилцагчид NFS сервер аль портон дээр
ажиллаж байгааг олж мэднэ.
Харилцагч nfsiod гэсэн дэмонг мөн
ажиллуулж болно. nfsiod дэмон
NFS серверээс ирэх хүсэлтийг гүйцэтгэнэ.
Ингэх нь системийг хэвийн, алдаагүй ажиллуулахад зайлшгүй
шаардлагагүй боловч зарим үзүүлэлтүүдийг сайжруулдаг тул нэмэлт
байдлаар хэрэглэж болно. Дэлгэрэнгүй мэдээллийг
&man.nfsiod.8; хуудаснаас үзнэ үү.
NFS-н тохиргоог хийх
NFS
тохиргоо
NFS-н тохиргоог хийх нь харьцангуй
амархан. Ажиллах ёстой процессуудыг системтэй хамт автоматаар
асдаг болгохын тулд /etc/rc.conf файлыг бага зэрэг
өөрчлөхөд хангалттай.
NFS сервер дээрх /etc/rc.conf файл дотор
дараах тохируулгууд идэвхжсэн байгаа эсэхийг шалгана уу:
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"
mountd нь NFS серверийг
идэвхжүүлсэн тохиолдолд өөрөө автоматаар ажиллана.
Харилцагч талд, /etc/rc.conf файл дотор
дараах тохируулга идэвхтэй байгаа эсэхийг шалгана уу:
nfs_client_enable="YES"
/etc/exports файл дотор
NFS ямар файл системүүдийг экспорт
хийхийг (заримдаа хуваалцах
гэж мөн нэрлэнэ) зааж өгнө.
/etc/exports файлын мөр бүр нь нэг файл системд харгалзана.
Энэ файл системд хандах эрхтэй машинуудыг заахаас гадна,
ямар тохируулгаар хандахыг мөн зааж өгч болно. Энэ файл дотор бичигдэж
болох нилээд олон ийм тохируулгууд байгаа хэдий ч, бид тэдгээрээс
зөвхөн заримыг нь энд авч үзэх болно. Та бусад тохируулгуудын
талаар &man.exports.5; заавар хуудаснаас уншиж мэднэ үү.
Доор /etc/exports файлаас хэдэн жишээ мөрийг үзүүлэв:
NFS
экспортлох жишээ
Дараах жишээн дээрээс файл системийг
хэрхэн экспортлох санааг олж авах болно. Тохируулгууд нь
таны сүлжээний тохиргоо, нөхцөл байдлаас шалтгаалан
өөр байхыг анхаарна уу. Жишээ нь, /cdrom гэсэн санг
3 машин руу экспортлохын тулд дараах байдалтай бичнэ. Жишээн дээрх
3 машин сервертэй адил домэйн нэртэй, эсвэл таны /etc/hosts
файл дотор тодорхойлогдсон гэж үзсэн болно. туг нь
экспортлогдож буй файл системийг зөвхөн унших боломжтой
болохыг заана. Энэ тугийг тавьснаар алсаас хандаж буй машин
энэ файл систем дээр ямар нэг өөрчлөлт хийх боломжгүй болно.
/cdrom -ro host1 host2 host3
Дараах жишээн дээр /home санг
IP хаягаар нь зааж өгсөн 3 машин руу экспортолж байна.
Ингэж IP хаягаар нь зааж өгөх нь дотоод сүлжээндээ
DNS сервер ажиллуулаагүй үед их хэрэгтэй байдаг.
Эсвэл /etc/hosts файл дотор дотоод хостуудын
нэрийг тохируулж болно; &man.hosts.5; хэсгийг дахин үзнэ үү.
гэсэн туг нь дэд сангуудыг
холболтын цэг байхыг зөвшөөрч өгдөг. Өөрөөр хэлбэл,
дэд сангуудыг холболгүй орхиж, харилцагч зөвхөн өөрийн
хэрэгцээтэй байгаа сангаа холбохыг зөвшөөрнө гэсэн үг юм.
/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4
Дараах жишээн дээр /a санг
хоёр өөр домэйноос 2 харилцагч хандаж болохоор
экспортолж байна. гэсэн туг нь
алслагдсан систем дээрх root хэрэглэгч
экспортлогдсон файл систем дээр root эрхээр
бичихийг зөвшөөрнө. Хэрэв -maproot=root тугийг тусгайлан зааж өгөөгүй бол,
хэдий алслагдсан систем дээрх хэрэглэгч root эрхтэй ч
экспортлогдсон файл систем дээр бичих эрхгүй болно.
/a -maproot=root host.example.com box.example.org
Харилцагч экспортлогдсон файл систем рүү хандахын
тулд эрх нь байх ёстой. Тухайн харилцагч /etc/exports
файл дотор бүртгэлтэй эсэхийг шалгаарай.
/etc/exports файл дотор мөр болгон нь
нэг файл системийг нэг хост руу экспортлох мэдээллийг
төлөөлнө. Алслагдсан хост аль нэг файл системийн хувьд
зөвхөн ганц удаа л тодорхойлогдсон байх ёстой ба үүнд харгалзах
ганцхан анхдагч бичлэг байж болно. Жишээ нь, /usr нь
нэг файл систем гэж бодъё. /etc/exports файл доторх
дараах бичлэгүүд нь буруу юм:
# Invalid when /usr is one file system
/usr/src client
/usr/ports client
Учир нь /usr гэсэн файл системийг client
гэсэн хост руу экспортолсон хоёр бичлэг байна. Энэ тохиолдолд
дараах форматаар бичвэл зөв болно:
/usr/src /usr/ports client
Нэг хост руу экспортлогдож байгаа файл системийн хувьд
шинжүүдийг бүгдийг нэг мөрөнд жагсаан бичих ёстой.
Харилцагчийг зааж өгөөгүй мөрүүдийг энгийн хост гэж үзнэ.
Энэ нь файл системийг экспортлох боломжийг хязгаарлана,
гэвч энэ нь ихэнх хүмүүст хүнд асуудал биш байдаг.
Дараагийн жишээн дээр /usr ба /exports
гэсэн дотоод файл системийг экспортолсон байна:
# Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# The client machines have root and can mount anywhere
# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=root client01 client02
/exports/obj -ro
/etc/exports файл дотор гарсан
өөрчлөлтүүдийг хүчинтэй болгохын тулд,
өөрчлөлт орсон тухай бүрд mountd дэмонг
албадан /etc/exports-г дахин уншуулах хэрэгтэй болдог.
Үүний тулд эсвэл HUP дохиог ажиллаж байгаа дэмонд өгөх хэрэгтэй:
&prompt.root; kill -HUP `cat /var/run/mountd.pid`
эсвэл mountd &man.rc.8; скриптийг зохих параметрийн
хамт ажиллуулах хэрэгтэй:
&prompt.root; /etc/rc.d/mountd onereload
rc скриптийг хэрэглэх зааврыг хэсгээс
үзнэ үү.
Бас нэг боломж нь, FreeBSD-г эхнээс нь ачаалж, бүх процессийг дахин
эхлүүлэх юм. Гэвч үүний тулд заавал системийг дахин ачаалах шаардлага байхгүй.
root эрхээр дараах тушаалуудыг өгснөөр зөвхөн хэрэгтэй процессуудаа
дахин эхлүүлэх боломжтой.
NFS сервер дээр:
&prompt.root; rpcbind
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -r
NFS харилцагч дээр:
&prompt.root; nfsiod -n 4
Одоо алсын файл системийг холбоход бэлэн боллоо.
Доорх жишээнүүд дээр серверийн нэрийг server,
харилцагчийн нэрийг client гэж авсан болно.
Хэрэв та алсын файл системийг зөвхөн түр хугацаагаар холбох гэж байгаа
эсвэл тохиргоогоо шалгах гэж байгаа бол, харилцагч талд
root эрхээр дараах тушаалыг өгөхөд хангалттай:
NFS
холболт
&prompt.root; mount server:/home /mnt
Энэ тушаалыг өгснөөр та сервер талд байгаа /home
гэсэн санг харилцагч талд байгаа /mnt сантай
холбох болно. Хэрэв бүх зүйл зөв тохируулагдсан бол, та харилцагч талын
/mnt сан дотор орж сервер дээр байгаа файлуудыг
харж чадах ёстой.
Хэрэв систем шинээр ачаалах бүрд ямар нэг алсын
файл системийг холбох хүсэлтэй байгаа бол,
түүнийгээ /etc/fstab файл дотор нэмж бичих хэрэгтэй.
Жишээ нь:
server:/home /mnt nfs rw 0 0
Боломжит бүх сонголтуудын талаар &man.fstab.5; заавар хуудаснаас үзнэ үү.
Цоожлолт
Зарим програмууд (ж.н. mutt)
зөв ажиллахын тулд файл цоожлолтыг шаарддаг.
NFS-н хувьд, rpc.lockd-г
файл цоожлолтонд хэрэглэж болно. Түүнийг идэвхжүүлэхийн тулд,
сервер болон харилцагч талд хоёуланд нь /etc/rc.conf
файл дотор дараах мөрүүдийг нэмж өгөх хэрэгтэй
(NFS сервер болон харилцагч талуудыг аль хэдийн тохируулчихсан
гэж үзэв):
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
Програмыг дараах байдалтай эхлүүлнэ:
&prompt.root; /etc/rc.d/lockd start
&prompt.root; /etc/rc.d/statd start
Хэрэв NFS харилцагч болон NFS
сервер талуудын хооронд жинхэнэ файл цоожлолт хийгдэх
шаардлагагүй бол, NFS харилцагч талд &man.mount.nfs.8;-д
тохируулгыг өгөн дотоод цоожлолт хийлгэж болно.
Дэлгэрэнгүй мэдээллийг &man.mount.nfs.8; заавар хуудаснаас үзнэ үү.
Практик хэрэглээ
NFS нь олон практик хэрэглээтэй. Хамгийн элбэг
тохиолддог хэрэглээг доор жагсаав:
NFS
хэрэглээ
Олон машиныг нэг CDROM эсвэл төхөөрөмжийг дундаа
хэрэглэдэг байхаар зохион байгуулах. Энэ нь нэг програмыг
олон машин дээр суулгах хамгийн хямд, хялбар арга юм.
Том сүлжээний хувьд, бүх хэрэглэгчдийн гэрийн санг хадгалдаг
төвлөрсөн NFS серверийг тохируулах. Эдгээр гэрийн сангуудыг
дараа нь сүлжээний орчинд экспортолсноор хэрэглэгчид аль машин дээр
ажиллаж буйгаас үл хамааран өөрийн нэг л сан дотор ажиллах боломжтой
болно.
Олон машин дундаа нэг /usr/ports/distfiles
сантай байх. Ийм замаар, нэг портыг олон машин дээр суулгах
хэрэгтэй үед машин бүр дээр эх файлыг татаж авалгүйгээр хурдан суулгах
боломжтой болно.
Вылий
Стилвэл
Хувь нэмрээ оруулсан
Шерн
Лий
Дахин эмхтгэсэн
Лодойсамбын
Баянзул
Орчуулсан
amd-р автоматаар холбох нь
amd
автоматаар холбогч дэмон
&man.amd.8; (автоматаар холбогч дэмон)
нь алсын файл системийн файл эсвэл санд хэрэглэгч
хандах тухай бүрт уг файл системийг автоматаар холбодог.
Хэсэг хугацааны туршид идэвхгүй байгаа файл системийг
amd мөн автоматаар салгана. amd-г
хэрэглэснээр /etc/fstab дотор бичигддэг байнгын
холболтоос гадна, холболт хийх боломжийг олгодог.
amd нь өөрийгөө, /host ба /net
сангууд дээр NFS сервер байдлаар холбож ажиллах бөгөөд эдгээр
сангууд доторх файлд хандах үед, amd
харгалзах алсын холболтыг хайж олоод автоматаар холбох болно.
/net нь экспортлогдсон файл системийг
IP хаягаар нь холбоход, харин /host нь
хост нэрээр нь холбоход хэрэглэгдэнэ.
/host/foobar/usr сан доторх
файлд хандана гэдэг нь amd-г
foobar гэсэн хост дээр экспортлогдсон /usr
санг холбохын зааж өгнө.
Экспортыг amd-р холбох
Алсын хост дээр байгаа боломжит холболтуудын
жагсаалтыг showmount тушаалын тусламжтай харж болно.
Жишээлбэл, foobar нэртэй хостын экспортыг харахын тулд:
&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usr
Жишээн дээр үзүүлснээр showmount нь /usr-г
экспортлогдсон болохыг харуулж байна. /host/foobar/usr сан
дотор ороход, amd нь foobar гэсэн хост нэрийг
тайлахыг оролдох ба заасан санг холбоно.
amd-г эхлэл скриптүүдээр эхлүүлж болох ба
үүний тулд /etc/rc.conf файл дотор дараах мөрийг нэмэх хэрэгтэй:
amd_enable="YES"
Мөн, amd програмд amd_flags тохируулгын
тусламжтай тугуудыг өгч болно. amd_flags-н анхдагч утга нь:
amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"
/etc/amd.map файл дотор экспортуудыг холбох анхдагч
тохируулгуудыг зааж өгсөн байна. /etc/amd.conf файл дотор
amd-н илүү дээд түвшний чанаруудыг тодорхойлж өгнө.
Дэлгэрэнгүй мэдээллийг &man.amd.8; ба &man.amd.conf.5; заавар хуудаснаас
үзнэ үү.
Жон
Линд
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
Бусад системтэй нэгтгэхэд тохиолдох асуудлууд
ISA PC системд зориулсан зарим Ethernet адаптерууд
учир дутагдалтай байдгаас сүлжээний орчинд ажиллахад, тэр дундаа
NFS-тэй ажиллахад нилээд асуудалтай байдаг.
Энэ асуудал зөвхөн FreeBSD-д тохиолддоггүй боловч FreeBSD систем үүнд нилээд
өртөмтгий байдаг.
Энэ асуудал нь (FreeBSD) PC системийг өндөр үзүүлэлттэй машинуудтай (жишээлбэл,
Silicon Graphics, Inc., ба Sun Microsystems, Inc компаниудын хийсэн)
сүлжээнд холбох үед бараг үргэлж тохиолддог. NFS холболт хийхэд асуудалгүй,
зарим үйлдлүүдийг хийхэд амжилттай байх боловч, гаднаас ирж явж байгаа
хүсэлтүүдийг боловсруулж чадаж байгаа хэдий ч сервер гэнэт харилцагчид
хариу өгөхгүй болдог. Энэ асуудал мөн харилцагчийн хувьд, харилцагч
FreeBSD систем эсвэл ажлын машин байхаас үл шалтгаалан тохиолдоно.
Ихэнх системийн хувьд, нэгэнт ийм асуудалд орсон бол харилцагч талыг
ном ёсных нь дагуу унтраах боломжгүй болдог. Ганц авдаг арга хэмжээ бол системийг
хүчээр унтрааж асаах юм. Учир нь, NFS-н энэ асуудал одоо хир нь шийдэгдээгүй
байна.
Хэдийгээр зөв
шийдэл бол
FreeBSD системд тохирох илүү өндөр үзүүлэлттэй, илүү багтаамжтай
Ethernet адаптерийг олж авах боловч,
боломжит ажиллагааг хангахын тулд нэг арга байна.
Хэрэв FreeBSD систем нь сервер бол, харилцагч талаас
холболт хийхдээ тохируулгыг оруулж өгөх явдал юм.
Хэрэв FreeBSD систем нь харилцагч бол, NFS файл системтэй
холбогдохдоо тохируулгыг хэрэглэх юм.
Эдгээр тохируулгуудыг автомат холболтын хувьд
fstab бичлэгийн дөрөв дэх талбарыг ашиглан,
гар аргаар холболт хийх бол &man.mount.8; тушаалын
параметрыг ашиглан зааж өгч болно.
NFS сервер болон харилцагчид өөр өөр сүлжээнд
байхад гардаг өөр нэг асуудлыг энэ асуудалтай
хольж хутгах тохиолдол байдгийг энд дурдах нь зүйтэй болов уу.
Хэрэв тийм бол, чиглүүлэгчид шаардлагатай UDP
мэдээллийг дамжуулж чадаж байгаа эсэхийг
нягталж үзээрэй. Үгүй бол, өөр юу ч хийлээ гээд
та үр дүнд хүрч чадахгүй.
Дараах жишээн дээр, fastws нь өндөр үзүүлэлттэй
ажлын машины хост (интерфэйс) нэр, freebox нь
бага үзүүлэлттэй Ethernet адаптертай FreeBSD системийн
нэр юм. Мөн, /sharedfs нь экспортлогдох гэж байгаа NFS
файл систем (&man.exports.5;-г үз), ба /project нь
харилцагч талын экспортлогдсон файл системийг холбох цэг байх болно.
Аль ч тохиолдолд, эсвэл ба
зэрэг нэмэлт тохируулгууд таны хувьд хэрэгтэй байж болох юм.
FreeBSD системийг (freebox) freebox дээр
/etc/fstab дотор харилцагч байдлаар зааж өгөх жишээ:
fastws:/sharedfs /project nfs rw,-r=1024 0 0
freebox дээр гараар холбохдоо:
&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project
FreeBSD системийг (freebox) fastws дээр
/etc/fstab дотор сервер байдлаар зааж өгөх жишээ:
freebox:/sharedfs /project nfs rw,-w=1024 0 0
fastws дээр гараар холбохдоо:
&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /project
Бараг бүх 16-битийн Ethernet адаптерийн хувьд
унших ба бичих хэмжээн дээр дээрх байдлаар хязгаарлалт
хийлгүйгээр ажиллах боломжтой байдаг.
Сонирхсон улсуудад толилуулахад, дээрх алдаа гарахад
чухам юу тохиолддог, яагаад засагдах боломжгүй болох талаар
дор тайлбарлав. NFS нь голчлон 8 K (хэдийгээр илүү бага хэмжээтэй
хэсэг дээр ажиллаж чадах боловч) хэмжээтэй блок
ууд дээр
ажилладаг. Хамгийн урт Ethernet пакет 1500 байт орчим байх ба,
NFS блок
нь хэд хэдэн Ethernet пакетуудад хуваагдах
хэрэгтэй болдог. Дээд түвшний програмын хувьд
энэ нь нэг нэгж хэвээр байх ба хүлээж аваад, нийлүүлээд, бататгал
хийхэд ч мөн нэг нэгж хэвээр байдаг. Өндөр үзүүлэлттэй ажлын машинууд
NFS нэгжийг бүрдүүлж байгаа тэдгээр пакетуудыг стандартад
заасны дагуу аль болох ойрхон ойрхон, нэг нэгээр нь цувуулж
гаргана. Жижиг, бага багтаамжтай картууд дээр, дээд түвшний програмд
дамжуулахаас өмнө сүүлийн пакет нь өмнөх пакетаа дарснаар
тухайн нэгжийг буцааж нийлүүлж, бататгах боломжгүй болно.
Үүнээс болж, ажлын машины болзоот хугацаа дуусаж бүхэл бүтэн 8 K
нэгжийг дахин дамжуулах болно. Энэ үйл ажиллагаа дахин дахин хязгааргүй
давтагдах болно.
Нэгжийн хэмжээг Ethernet пакетийн хэмжээнээс бага
байлгаснаар, бид Ethernet пакет тус бүрийг бататгаж
мухардалд орохоос сэргийлж чадна.
Өндөр үзүүлэлттэй ажлын машинууд PC систем рүү өгөгдлийг
цацсаар байх үед давхцал үүссээр байх боловч, илүү сайн карт
ашигласнаар NFS нэгж
ийн хувьд заавал тийм давхцал үүсэх
албагүй болно. Давхцал үүссэн тохиолдолд, түүнд өртсөн нэгжийг
дахин дамжуулах ба түүнийг хүлээн авч, нийлүүлж, бататгах боломж өндөртэй.
Билл
Свингл
Бичсэн
Эрик
Огрен
Сайжруулсан
Удо
Эрделхофф
Лодойсамбын
Баянзул
Орчуулсан
Сүлжээний Мэдээллийн Систем (NIS/YP)
Энэ юу вэ?
NIS
Solaris
HP-UX
AIX
Linux
NetBSD
OpenBSD
NIS,
нь Network Information Services буюу Сүлжээний Мэдээллийн Үйлчилгээнүүд
гэсэн үгийн товчлол бөгөөд &unix; (анхандаа &sunos;) системүүдийн
удирдлагыг төвлөрүүлэх зорилгоор Sun Microsystems анх хөгжүүлсэн.
Одоо энэ салбарын үндсэн стандарт болжээ; бүх гол &unix; төрлийн системүүд
(&solaris;, HP-UX, &aix;, Линукс, NetBSD, OpenBSD, FreeBSD, гэх мэт) NIS-г дэмждэг.
шар хуудасNIS
NIS анх Yellow Pages буюу Шар Хуудас
гэсэн нэртэй байсан боловч худалдааны тэмдгийн асуудлаас болж
Sun нэрийг нь сольсон. Хуучин нэр (ба yp) нь одоо хир нь хэрэглэгдсээр байдаг.
NIS
домэйнууд
Энэ нь RPC дээр үндэслэсэн, нэг NIS домэйнд байгаа
бүлэг машинууд дундаа адилхан тохиргооны файлтай боломжийг
олгодог харилцагч/сервер систем юм. Үүний тусламжтай
системийн администратор NIS харилцагч системийг
зайлшгүй байх үндсэн тохиргоотойгоор үүсгэх, тохиргооны өгөгдлийг
нэг дор нэмэх, хасах, өөрчлөх зэрэг үйлдлүүдийг хийх
боломжтой болдог.
Windows NT
Энэ нь &windowsnt;-н домэйн системтэй төстэй.
Хэдийгээр тэдгээрийн дотоод ажиллагаа нь ердөө ч адилхан биш боловч
үндсэн үүргийг нь адилтгаж болох юм.
Таны мэдэж байх ёстой Нэр томъёо/Процессууд
NIS сервер эсвэл NIS харилцагч байдлаар ажилладаг NIS-г FreeBSD дээр
зохион байгуулахын тулд нилээд хэдэн нэр томъёо, чухал хэрэглэгчийн
процессуудтай та тааралдах болно:
rpcbind
portmap
Нэр томъёо
Тайлбар
NIS домэйн нэр
NIS мастер сервер болон түүний бүх харилцагчид
(түүний зарц серверийг оруулаад) бүгд NIS домэйн нэртэй байна.
&windowsnt;-н домэйн нэртэй адилаар, NIS домэйн нэр DNS-тэй
ямар ч хамаагүй.
rpcbind
RPC-г (Remote Procedure Call буюу Алсын Процедур Дуудах, NIS-н
ашигладаг сүлжээний протокол) идэвхтэй байлгахын тулд заавал ажиллаж
байх ёстой. Хэрэв rpcbind ажиллахгүй бол,
NIS сервер ажиллуулах, NIS харилцагч болох боломжгүй.
ypbind
NIS харилцагчийг NIS сервертэй холбоно
.
NIS домэйн нэрийг системээс авч, RPC ашиглан сервертэй холбоно.
ypbind нь NIS орчны харилцагч-серверийн харилцааны цөм нь болж
өгдөг; Хэрэв харилцагчийн машин дээр ypbind үхвэл,
NIS сервер рүү хандах боломжгүй болно.
ypserv
Зөвхөн NIS сервер дээр ажиллаж байх ёстой;
энэ бол NIS сервер процесс өөрөө юм. Хэрэв &man.ypserv.8; үхвэл,
сервер NIS хүсэлтэд хариу өгөх боломжгүй болно (магадгүй,
түүний үүргийг үргэлжлүүлэх зарц сервер байгаа байх). Зарим
NIS-н хувьд (FreeBSD-гийх биш), анх холбогдож байсан сервер байхгүй болбол
өөр сервертэй холбоо тогтоохыг оролддоггүй хувилбарууд байдаг.
Ихэнхдээ, ийм үед ганц тус болох зүйл бол сервер процессийг
дахин эхлүүлэх (эсвэл серверийг бүхлээр нь), эсвэл харилцагч талын
ypbind процессийг дахин эхлүүлэх юм.
rpc.yppasswdd
Зөвхөн NIS эзэн сервер дээр ажиллаж байх ёстой өөр
нэг процесс; Энэ дэмон NIS харилцагч нарыг өөрсдийн нэвтрэх үгийг
солих боломжийг олгоно. Хэрэв энэ дэмон ажиллахгүй бол,
хэрэглэгчид NIS эзэн сервер рүү нэвтэрч орон тэнд нэвтрэх үгээ солих
хэрэгтэй болно.
Хэрхэн ажилладаг вэ?
NIS орчинд гурван төрлийн хост байна:
эзэн сервер, зарц сервер, ба харилцагч. Серверүүд нь
хостуудын тохиргооны мэдээллийг хадгалсан агуулахын үүргийг
гүйцэтгэнэ. Эзэн сервер энэ мэдээллийн бүрэн эрхтэй хуулбарыг
хадгалж байдаг бол, зарц сервер нь энэ мэдээллийн хуулбарыг
нөөцөнд хадгалж байдаг. Серверүүд харилцагчдыг эдгээр мэдээллээр
хангана.
Олон файлд байгаа мэдээллийг энэ маягаар хуваалцаж хэрэглэнэ.
master.passwd, group, ба hosts гэсэн файлуудыг
ихэвчлэн NIS тусламжтай хуваалцана. Эдгээр файлд байдаг мэдээлэл
харилцагч талын нэг процессод хэрэгтэй боллоо гэхэд түүнийг өөрийн дотоодоос
хайхын оронд түүнд оноогдсон NIS серверээс асуулга хийнэ.
Машины төрөл
NIS
эзэн сервер
NIS эзэн сервер. Энэ сервер, &windowsnt;-н анхдагч
домэйн сервер хянагчийн нэг адил, NIS харилцагчдын хэрэгцээний бүх файлуудыг
агуулсан байна. passwd, group ба NIS харилцагчийн хэрэглэх
бусад олон файлууд эзэн сервер дээр байна.
Нэг машин нэгээс олон NIS домэйны хувьд NIS эзэн
сервер байж болно. Гэхдээ, энд бид бага хэмжээний NIS орчны талаар
ярилцах тул энэ талаар энд үзэхгүй.
NIS
зарц сервер
NIS зарц сервер. &windowsnt;-н нөөц домэйн хянагчтай адилаар,
NIS зарц сервер нь NIS эзэн серверийн өгөгдлийн файлын хуулбарыг хадгална.
NIS зарц серверүүд нь нөөцөнд байдаг. Тэдгээр нь мөн эзэн серверийн
ачааллыг хуваалцаж байдаг: NIS Харилцагчид нь хамгийн түрүүнд хариу өгсөн
серверт холбогдох ба үүний тоонд зарц серверүүд ч бас орно.
NIS
харилцагч
NIS харилцагч. NIS харилцагч нь ихэнх
&windowsnt; ажлын машины адилаар, NIS серверт шалгуулж (эсвэл &windowsnt; ажлын
машины хувьд &windowsnt; домэйн хянагчид) нэвтэрнэ.
NIS/YP-г хэрэглэх нь
Энэ хэсэгт жишээ NIS орчныг үүсгэх болно.
Төлөвлөх
Та өөрийгөө нэгэн их сургуулийн жижигхэн лабораторын
администратор гэж бод. Энэ лаб 15 FreeBSD машинаас бүрдэх ба
одоогоор төвлөрсөн удирдлага байхгүй; машин бүр өөрийн
/etc/passwd ба /etc/master.passwd файлуудтай. Эдгээр файлуудыг
адилхан байлгахын тулд гараараа зөөж тавьдаг; одоогийн байдлаар лабораторид шинэ
хэрэглэгч нэмэхийн тулд, бүх 15 машин дээр нэг бүрчлэн adduser
тушаалыг оруулах хэрэгтэй байгаа. Мэдээж үүнийг өөрчлөх хэрэгтэй,
иймээс та лабораторидоо NIS хэрэглэхээр боллоо. Машинуудаасаа хоёрыг
нь сервер болгохоор сонгож авлаа.
Тиймээс, лабораторын тохиргоо дараах байдалтай байна:
Машины нэр
IP хаяг
Машины үүрэг
ellington
10.0.0.2
NIS эзэн
coltrane
10.0.0.3
NIS зарц
basie
10.0.0.4
Факультетийн ажлын машин
bird
10.0.0.5
Харилцагч машин
cli[1-11]
10.0.0.[6-17]
Бусад харилцагч машинууд
Хэрэв та NIS зураглалыг анх удаа хийж байгаа бол,
хаанаас эхлэхээ эхлээд сайн бодох хэрэгтэй. Сүлжээ чинь ямар ч
хэмжээтэй байж болно, гол нь хэд хэдэн сонголт хийх хэрэгтэй.
NIS Домэйн Нэрийг сонгох нь
NIS
домэйннэр
Өөрийн тань байнга хэрэглэдэг домэйн нэр
байж болохгүй.
Залруулж хэлбэл NIS домэйн нэр
байх ёстой. Харилцагч мэдээлэл
олж авахын тулд хүсэлтээ цацах үед NIS домэйн нэрийг хэрэглэнэ.
Үүгээр нэг сүлжээнд байгаа олон серверүүд хэн нь хэний асуултанд хариулах
ёстойгоо мэдэж авна. NIS домэйн нэрийг хоорондоо ямар нэг байдлаар
хамаатай бүлэг хостын нэр гэж ойлгож болно.
Зарим байгууллагууд өөрийн Интернэтийн домэйн нэрийг
NIS домэйн нэрээр хэрэглэх нь байдаг. Энэ нь сүлжээний ямар нэг асуудлыг
задлан шинжлэх явцад түвэг удах тул энэ аргыг зөвлөдөггүй. NIS домэйн нэр нь
сүлжээний орчинд цор ганц байх ёстой бөгөөд төлөөлж байгаа бүлэг машинаа онцолсон
нэр байвал дөхөм байдаг. Жишээлбэл, Acme Inc. компаний Урлагийн хэлтэс acme-art
гэсэн NIS домэйнтой байж болох юм. Бид өөрсдийн жишээндээ test-domain гэсэн
домэйн нэрийг авлаа.
SunOS
Гэвч, зарим үйлдлийн системүүд (цохон дурдвал &sunos;)
өөрийн NIS домэйн нэрийг Интернэт домэйн нэрээр хэрэглэдэг.
Хэрэв таны сүлжээний нэг болон түүнээс дээш тооны машин
ийм асуудалтай бол, та Интернэт домэйн нэрээ NIS домэйндоо хэрэглэх
ёстой.
Серверт тавигдах шаардлагууд
NIS серверт зориулсан машин сонгон авахдаа
анхаарах хэд хэдэн зүйлс бий. NIS-тэй холбоотой нэг учир дутагдалтай
зүйл бол харилцагчдын серверээс хамаарах хамаарал юм. Хэрэв
харилцагч өөрийн NIS домэйныг асуухаар сервертэй холбогдож чадахгүй бол,
тэр машин ашиглагдах боломжгүй болдог. Хэрэглэгч болон бүлгийн мэдээлэл
дутуугаас ихэнх системүүд түр хугацаанд зогсдог. Тиймээс, дахин дахин
асааж унтраалгаад байхааргүй, эсвэл туршилтад хэрэглэгдэхээр
машиныг сонгох хэрэгтэй. NIS сервер нь тусдаа, зөвхөн NIS серверт зориулагдсан
машин байх ёстой. Хэрэв ачаалал багатай сүлжээнд ажиллаж байгаа бол,
NIS серверийг өөр үйлчилгээ ажиллаж байгаа машин дээр тавьж болох талтай.
Хамгийн гол нь NIS сервер чинь ажиллахгүй болбол, бүх NIS харилцагчид чинь
мөн ажиллахгүй болохыг санаарай.
NIS Серверүүд
Бүх NIS мэдээлэл он цагийн дарааллаараа
NIS эзэн сервер дээр хадгалагдаж байдаг.
Энэ мэдээллийг хадгалж байгаа өгөгдлийн санг NIS буулгалт гэж нэрлэнэ.
FreeBSD-д, эдгээр буулгалтууд /var/yp/[domainname] файл дотор байрлана.
[domainname] нь NIS домэйн нэр болно. Нэг NIS сервер хэд хэдэн
домэйныг зэрэг агуулж чадах тул домэйн тус бүрт зориулсан хэд хэдэн
ийм сан байж болно. Домэйн бүр өөрийн гэсэн буулгалтуудтай байна.
NIS эзэн болон зарц серверүүд бүх NIS хүсэлтийг ypserv дэмоны
тусламжтай удирдаж явуулна. ypserv нь NIS харилцагч нараас
ирж буй хүсэлтийг хүлээн авч, домэйныг хөрвүүлэн, уг домэйн нэрд харгалзах
өгөгдлийн файлын замыг хайж олоод, өгөгдлийг буцаан харилцагчид дамжуулах үүрэгтэй.
NIS Эзэн Серверийг зохион байгуулах нь
NIS
серверийн тохиргоо
Эзэн NIS серверийг зохион байгуулах нь харьцангуй
ойлгомжтой. FreeBSD нь бэлэн NIS суучихсан ирдэг. Зөвхөн /etc/rc.conf
файл дотор дараах мөрүүдийг нэмэхэд л хангалттай, үлдсэнийг нь
FreeBSD таны өмнөөс хийгээд өгөх болно.
nisdomainname="test-domain"
Энэ мөр сүлжээ асахад (жишээ нь, систем дахин ачаалсны дараа)
NIS домэйн нэрийг test-domain болгоно.
nis_server_enable="YES"
Энэ мөр нь сүлжээ асахад NIS сервер процессуудыг
асаахыг хэлж өгнө.
nis_yppasswdd_enable="YES"
Энэ мөр нь rpc.yppasswdd дэмонг идэвхжүүлнэ. Дээр хэлсэнчлэн,
энэ дэмон нь харилцагч машин дээрээс хэрэглэгч өөрийн NIS нэвтрэх
үгийг солих боломжтой болгодог.
Таны NIS тохиргооноос хамааран, нэмэлт мөрүүдийг оруулах
хэрэгтэй болж магадгүй. NIS сервер мөртлөө давхар NIS
харилцагч серверийн тухай хэсгээс, доор, дэлгэрэнгүй
мэдээллийг авна уу.
Дээрхийг тохируулсны дараа супер хэрэглэгчийн эрхээр
/etc/netstart тушаалыг ажиллуулна. Энэ нь
таны /etc/rc.conf файл дотор
тодорхойлж өгсөн утгуудыг ашиглан бүх зүйлсийг таны өмнөөс
хийх болно. Хамгийн сүүлд нь NIS буулгалтуудыг эхлүүлэхээс өмнө
ypserv демоныг гараар ажиллуулах
хэрэгтэй.
&prompt.root; /etc/rc.d/ypserv start
NIS Буулгалтуудыг эхлүүлэх нь
NIS
буулгалтууд
NIS буулгалтууд нь өгөгдлийн сангийн
файлууд бөгөөд /var/yp сан дотор хадгалагдана.
Тэдгээрийг NIS эзэн серверийн /etc сан дотор байгаа
/etc/master.passwd файлаас бусад тохиргооны файлуудаас үүсгэдэг.
Энэ нь их учиртай. Мэдээж та өөрийн root болон удирдах
эрхтэй дансуудынхаа нэвтрэх үгийг NIS домэйн дахь бүх сервер дээр
тарааж тавих хүсэлгүй байгаа биз дээ. Тиймээс,
NIS буулгалтуудыг эхлүүлэхийн өмнө, дараах зүйлсийг хийх хэрэгтэй:
&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwd
Системийн дансуудад хамаарах мөрүүдийг (bin,
tty, kmem,
games, гэх мэт), мөн NIS харилцагч дээр тарааж
тавих хүсэлгүй байгаа дансуудад хамаарах мөрүүдийг (жишээлбэл
root ба бусад UID 0 (супер хэрэглэгчийн) дансууд) бүгдийг
устгах хэрэгтэй.
/var/yp/master.passwd файл бүлгийн болон нийтийн хувьд
унших эрхгүй (600 төлөв) байгааг нягтална уу! Шаардлагатай бол
chmod тушаалыг хэрэглээрэй.
Tru64 UNIX
Дээр дурдсаныг гүйцэтгэж дууссаны дараа,
сая NIS буулгалтуудыг эхлүүлнэ! FreeBSD нь танд үүнийг хийж өгөх
ypinit нэртэй скриптийг (холбогдох заавар хуудаснаас
дэлгэрэнгүй мэдээллийг авна уу) агуулж байдаг.
Энэ скрипт ихэнх &unix; үйлдлийн системд байдаг боловч,
заримд нь байхгүй байх тохиолдол бий.
Digital UNIX/Compaq Tru64 UNIX дээр энэ скрипт ypsetup гэсэн
нэртэй байдаг. Бид NIS эзэн серверийн хувьд буулгалтуудыг
үүсгэж байгаа тул ypinit тушаалыг
тохируулгын хамт өгнө. Дээрх алхмуудыг бүгдийг хийсний дараа,
NIS буулгалтуудыг үүсгэхдээ дараах тушаалыг өгнө:
ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..output from map generation..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.
ypinit нь /var/yp/Makefile.dist-с
/var/yp/Makefile-г үүсгэсэн байх ёстой.
Үүсэхдээ, энэ файл таныг ганц NIS сервертэй орчинд
зөвхөн FreeBSD машинуудтай ажиллаж байна гэж үзнэ.
test-domain нь зарц сервертэй тул,
та /var/yp/Makefile файлыг засах хэрэгтэй:
ellington&prompt.root; vi /var/yp/Makefile
Доорх мөрийг далдлах хэрэгтэй
NOPUSH = "True"
(хэрэв далдлагдаагүй бол).
NIS Зарц Серверийг зохион байгуулах нь
NIS
зарц сервер
NIS зарц серверийг зохион байгуулах нь
эзэн серверийг зохион байгуулахаас ч хялбар байдаг.
Зарц сервер рүү нэвтэрч ороод түрүүн хийсэн шигээ
/etc/rc.conf файлыг засах хэрэгтэй.
Ганц ялгаа нь ypinit тушаалыг өгөхдөө
тохируулгыг өгнө. тохируулга нь
NIS эзэн серверийн нэрийг хамт оруулахыг шаардах тул бидний
тушаалын мөр дараах байдалтай байна:
coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.
Одоо /var/yp/test-domain нэртэй сан
үүссэн байх ёстой. NIS эзэн серверийн буулгалтуудын хуулбарууд
энэ сан дотор байх ёстой. Эдгээр файлууд шинэчлэгдэж
байгаа эсэхийг нягтлаж байх хэрэгтэй.
Таны зарц серверийн /etc/crontab доторх дараах мөрүүд
үүнийг хийх болно:
20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuid
Энэ хоёр мөр нь зарц сервер өөрийн буулгалтуудыг
эзэн сервертэй ижилхэн байлгахыг хүчилнэ. Хэдийгээр
эдгээр мөрүүдийг заавал хэрэглэх шаардлагагүй боловч,
эзэн сервер өөрийх нь NIS буулгалтад гарсан өөрчлөлтүүд
зарц серверүүдийн хувьд дамжигдсан эсэхийг шалгадаг,
нэвтрэх үгийн тухай мэдээлэл нь системийн хувьд амин чухал зэргээс
дээрх шинэчлэлтийг хүчлэх нь зүгээр.
Одоо, зарц сервер талд мөн /etc/netstart тушаалыг өгч
NIS серверийг ажиллуулна.
NIS Харилцагчид
NIS харилцагч нь ypbind дэмоны тусламжтай
тодорхой нэг NIS сервертэй холбоо тогтооно. ypbind
системийн анхдагч домэйныг шалгах ба (domainname тушаалаар
өгөгдсөн), дотоод сүлжээнд RPC хүсэлтийг цацаж эхлэнэ.
Эдгээр хүсэлтүүд нь ypbind-н холбоо тогтоох гэж байгаа
домэйн нэрийг зааж өгнө. Хэрэв тухайн домэйнд
үйлчлэхээр тохируулагдсан сервер дээрх хүсэлтийг
хүлээн авбал, ypbind-д хариу өгөх ба хариуг хүлээж авсан
тал серверийн хаягийг тэмдэглэж авна. Хэрэв хэд хэдэн сервер
хариу өгсөн бол (нэг эзэн ба хэд хэдэн зарц), ypbind
хамгийн түрүүнд хариу өгсөн серверийг сонгон авна. Түүнээс хойш,
харилцагч өөрийн бүх NIS хүсэлтүүдээ тэр сервер рүү явуулна.
ypbind нь хааяа сервер амьд байгаа эсэхийг нягтлахын тулд
ping
хийж үзнэ. Хэрэв хангалттай хугацааны дотор хариу хүлээж
аваагүй бол, ypbind энэ домэйнтой холбоо тасарлаа гэж үзээд
өөр сервер олохын тулд хүсэлтээ цацаж эхэлнэ.
NIS Харилцагчийг зохион байгуулах
NIS
харилцагчийг тохируулах нь
FreeBSD машин дээр NIS харилцагчийг зохион байгуулах нь
нилээд хялбар байдаг.
/etc/rc.conf файлыг нээгээд, NIS
домэйн нэрийг зааж өгөх ба сүлжээ асах үед ypbind-г
ажиллуулдаг болгохын тулд дараах мөрүүдийг нэмж бичнэ:
nisdomainname="test-domain"
nis_client_enable="YES"
NIS серверээс хэрэгтэй нэвтрэх үгүүдийг импортолж
авахын тулд /etc/master.passwd файл дотор байгаа
бүх хэрэглэгчийн дансыг устгаад, файлын төгсгөлд
дараах мөрийг нэмэхийн тулд vipw тушаалыг
ашиглана:
+:::::::::
Энэ мөр нь NIS серверийн нэвтрэх үгийн буулгалтад
байгаа хүчинтэй хэрэглэгчид данс олгоно. Энэ мөрийг өөрчлөх замаар
NIS харилцагчийг хэд хэдэн янзаар тохируулж болно. Дэлгэрэнгүй
мэдээллийг доорх netgroups
section хэсгээс үзнэ үү. Цааш гүнзгийрүүлэн судлах хүсэлтэй бол
NFS ба NIS-г удирдах нь тухай O'Reilly-н номыг үзнэ үү.
Дор хаяж нэг дотоод эрхийг (өөрөөр хэлбэл NIS-с импортолж аваагүй)
/etc/master.passwd файл дотор авч үлдэх хэрэгтэй.
Энэ данс wheel бүлгийн гишүүн байх ёстой. Хэрэв NIS дээр ямар нэг
асуудал гарлаа гэхэд энэ эрхээр алсаас нэвтрэн орж, root болоод
асуудлыг шийдвэрлэх болно.
NIS серверээс бүх бүлгүүдийг импортолж авахын тулд
дараах мөрийг /etc/group файлд нэмнэ:
+:*::
NIS клиентийг нэн даруй эхлүүлэхийн тулд дараах тушаалыг
супер хэрэглэгчийн эрхээр ажиллуулах хэрэгтэй:
&prompt.root; /etc/netstart
&prompt.root; /etc/rc.d/ypbind start
Үүний дараа, ypcat passwd тушаалыг өгч
NIS серверийн passwd буулгалтыг харж чадаж байх ёстой.
NIS-н Аюулгүй байдал
Ер нь ямар ч алсын хэрэглэгчийн хувьд өөрийн чинь
домэйн нэрийг мэдэж байвал RPC хүсэлтийг &man.ypserv.8;-д явуулж
NIS буулгалтыг харах боломжтой. Ийм төрлийн зөвшөөрөгдөөгүй
үйлдлээс сэргийлэхийн тулд &man.ypserv.8; нь зөвхөн зааж өгсөн хостуудаас
ирсэн хандалтыг зөвшөөрдөг securenets
гэсэн функцыг агуулж
байдаг. Систем анх ачаалахад, &man.ypserv.8; нь securenets-н мэдээллийг
/var/yp/securenets гэсэн файлаас ачаална.
Энэ замыг тохируулгаар зааж өгөх ба янз бүр байж болно.
Энэ файлд сүлжээг сүлжээний багийн хамт зайгаар тусгаарлан
оруулж өгсөн байна. #
тэмдгээр эхэлсэн мөрүүд нь тайлбар болно.
Жишээ securenets файл дараах байдалтай байна:
# allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0
Хэрэв &man.ypserv.8;-н хүсэлт хүлээж авсан хаяг
эдгээр дүрмүүдийн аль нэгэнд тохирч байвал хүсэлтийг
ердийн байдлаар боловсруулна. Хэрэв энэ хаяг ямар ч дүрмэнд
тохирохгүй байвал, хүсэлтийг үл анхаарах бөгөөд
анхааруулах бичлэгийг бүртгэлд нэмнэ. Хэрэв
/var/yp/securenets гэсэн файл байхгүй бол,
ypserv нь гаднаас ирсэн бүх хүсэлтийг хүлээн авна.
ypserv програм нь Wietse Venema-н TCP Wrapper багцыг
дэмждэг. Энэ нь администраторуудын хувьд /var/yp/securenets-ны оронд
TCP Wrapper-н тохиргооны файлыг хандалтыг хянахад хэрэглэх
боломжтой болгодог.
Хэдийгээр эдгээр хандалтыг хянах механизмууд нь
аюулгүй байдлыг адил түвшинд хангах боловч,
хоёул IP залилах
халдлагад өртөмтгий байдаг. NIS-тэй холбоотой
бүх урсгалыг галт хана дээрээ хааж өгөх хэрэгтэй.
/var/yp/securenets хэрэглэж байгаа серверүүд
хуучин TCP/IP дээр ажиллаж байгаа зүй ёсны NIS харилцагчид үйлчилж
чадахгүй байж магадгүй. Учир нь, тэдгээр нь өргөн цацалт хийхдээ
хост битүүдийг бүгдийг тэглэдэг ба өргөн цацалтын хаягийг тооцоолохдоо
дэд сүлжээний багийг таньж чаддаггүй болно. Хэдийгээр эдгээр асуудлуудыг
харилцагчийн тохиргоог өөрчилснөөр шийдэж болох боловч,
бусад асуудлууд нь харилцагчийн системийг цааш ашиглах боломжгүй эсвэл
/var/yp/securenets-г болиулах шаардлагатай болдог.
Ийм хуучин TCP/IP дээр ажилладаг сервер дээр
/var/yp/securenets-г хэрэглэх нь үнэхээр хэрэггүй бөгөөд
сүлжээний ихэнх хэсэгт NIS-г ашиглах боломжгүй байдаг.
TCP Wrapper-ууд
TCP Wrapper багцыг ашиглах нь
NIS серверийн хоцролтыг ихэсгэдэг. Энэ нэмэлт саатал нь
харилцагчийн програм дээр ялангуяа ачаалал ихтэй сүлжээнд,
эсвэл удаан NIS сервертэй бол хүлээх хугацаа дуусахад хүргэх талтай.
Хэрэв таны харилцагч систем чинь дээрх шинж тэмдгүүдийн аль нэгийг
агуулж байгаа бол та энэ харилцагч системээ NIS зарц сервер болгож өөрчлөн
хүчээр өөрөөсөө өөртөө холбогдохоор тохируулах хэрэгтэй.
Зарим хэрэглэгчдийн нэвтрэхийг хаах
Манай лабораторын жишээн дээр, basie нэртэй нэг
машин байгаа. Энэ машиныг зөвхөн багш нар хэрэглэх ёстой.
Бид энэ машиныг NIS домэйн дотроос гаргахыг хүсэхгүй байгаа, дээр нь
эзэн NIS сервер дээр байгаа passwd файл нь
багш нар болон оюутнуудын дансыг хоёуланг агуулж байгаа.
Бид одоо яах ёстой вэ?
NIS өгөгдлийн сан дотор бүртгэл нь байгаа ч, зарим
хэрэглэгчдийг тухайн машин руу нэвтрэхийг хаах нэг арга байна.
Үүний тулд -username гэсэн мөрийг
харилцагч машин дээр /etc/master.passwd файлын төгсгөлд нэмэх
хэрэгтэй. Энд username гэдэг нь
нэвтрэхийг нь хаах гэж байгаа хэрэглэгчийн нэр юм.
Дээрх үйлдлийг хийхдээ vipw-г ашиглахыг зөвлөж байна.
vipw нь /etc/master.passwd файл дотор хийгдсэн өөрчлөлтийг
хянах бөгөөд өөрчлөлт хийж дууссаны дараа нэвтрэх үгийн санг автоматаар
дахин үүсгэж өгдөг. Жишээ нь, хэрэв бид bill гэсэн хэрэглэгчийг
basie хост дээр нэвтрэхийг хаахыг хүсэж байгаа бол:
basie&prompt.root; vipw
[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;
Удо
Эрделхофф
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
Netgroups-г Хэрэглэх нь
netgroups
Цөөхөн тооны машин эсвэл хэрэглэгчийн хувьд
тусгай дүрэм хэрэгтэй үед өмнөх хэсэгт дурдсан аргыг
хэрэглэх нь илүү тохиромжтой. Харин том сүлжээний хувьд
зарим хэрэглэгчийн чухал машин руу нэвтрэх эрхийг хаахаа мартах,
эсвэл бүх машиныг нэг бүрчлэн гараараа тохируулж өгөх, өөрөөр хэлбэл
NIS-н төвлөрсөн удирдлага гэсэн гол санааг ашиглаж чадахгүй байх
тохиолдлууд гарах болно.
NIS-г хөгжүүлэгчид энэ асуудлыг шийдэхийн тулд
netgroups буюу сүлжээний бүлгүүд гэсэн шинэ зүйлийг бий болгожээ.
Түүний зорилго болон семантикийг &unix; файл системийн
жирийн бүлэгтэй дүйцүүлж болох юм. Гол ялгаанууд нь гэвэл
тоон дугаар байхгүй, мөн сүлжээний бүлгийг тодорхойлж өгөхдөө
хэрэглэгч болон өөр сүлжээний бүлгийг оруулж болдог.
Сүлжээний бүлэг нь хэдэн зуун хэрэглэгч болон машинтай
том, төвөгтэй сүлжээтэй ажиллахад зориулж бүтээгдсэн юм.
Нэг талаар, хэрэв та үнэхээр тийм том сүлжээнд ажиллаж байгаа бол
энэ нь Сайн Зүйл юм. Харин нөгөө талаас, энэ байдал нь
жижигхэн сүлжээнд хялбар жишээн дээр сүлжээний бүлгийг тайлбарлах
бараг боломжгүй болгож байна. Энэ хэсгийн үлдсэн хэсэгт хэрэглэж
байгаа жишээн дээр энэ асуудлыг харуулахыг оролдлоо.
NIS-г лабораторидоо нэвтрүүлсэн тань танай удирдлагуудын
анхаарлыг татсан гэж бодьё. Одоо оюутны хотхон дотор байгаа
бусад машиныг NIS домэйнд оруулж өргөтгөх ажлыг хийхийг танд
даалгажээ. Дараах хоёр хүснэгтэнд шинээр нэмэх хэрэглэгч болон
машины нэрийг товч тайлбарын хамт үзүүллээ.
Хэрэглэгчийн нэр
Тайлбар
alpha, beta
IT хэлтсийн ердийн ажилчид
charlie, delta
IT хэлтсийн шинэ дагалдан
echo, foxtrott, golf, ...
бусад ердийн ажилчид
able, baker, ...
дадлагажигчид
Машины нэр
Тайлбар
war, death,
famine,
pollution
Таны хамгийн чухал серверүүд. Зөвхөн IT хэлтсийн
ажилчид л нэвтрэх эрхтэй.
pride, greed,
envy, wrath,
lust, sloth
Харьцангуй чухал биш серверүүд. IT хэлтэст харъяалагддаг бүх
хүмүүс нэвтрэх эрхтэй.
one, two,
three, four,
...
Ердийн ажлын машинууд. Зөвхөн үндсэн ажилчид
нэвтрэх эрхтэй.
trashcan
Чухал зүйл байхгүй маш хуучин машин.
Дадлагажигчид хүртэл нэвтрэх эрхтэй.
Хэрэв та дээрх хязгаарлалтуудыг
тус бүрд нь хэрэглэгчийг хаах замаар хийх гэж оролдвол
бүх машин дээр хаах хэрэглэгч тус бүрийн хувьд
-user мөрийг passwd
файл дотор нэмж өгөх ёстой болно. Хэрэв нэг л мөрийг
нэмэхээ мартвал асуудалд орно гэсэн үг.
Энэ байдалд сүлжээний бүлгийг ашиглах нь
нилээд олон давуу талтай. Хэрэглэгч бүрийг тус тусад нь
авч үзнэ; нэг хэрэглэгчийг нэг болон түүнээс дээш тооны
сүлжээний бүлэгт оноож, тухайн сүлжээний бүлгийн бүх гишүүдийн хувьд
нэвтрэхийг эсвэл зөвшөөрч эсвэл хаана. Хэрэв та шинэ машин нэмбэл,
зөвхөн сүлжээний бүлгүүдийн хувьд л нэвтрэх эрхийг зааж өгнө. Хэрэв шинэ
хэрэглэгч нэмбэл, тухайн хэрэглэгчийг нэг болон түүнээс дээш
тооны сүлжээний бүлэгт нэмэхэд л хангалттай. Эдгээр өөрчлөлтүүд нь нэг
нэгнээсээ хамааралгүй: хэрэглэгч ба машины бүх хувилбарт нэмэх...
шаардлагагүй болно. Хэрэв та NIS-г анхнаас нь бодлоготой хийх юм бол,
машинууд руу нэвтрэх эрхийг хянахдаа
зөвхөн ганцхан тохиргооны файлыг өөрчлөхөд хангалттай.
Хамгийн эхний алхам бол NIS сүлжээний бүлгийн буулгалтыг
эхлүүлэх юм. FreeBSD-н &man.ypinit.8; нь энэ буулгалтыг анхдагч байдлаар
үүсгэдэггүй, гэвч хэрэв нэгэнт үүсгэчихвэл түүний NIS-тэй ажиллах хэсэг нь
энэ буулгалт дээр ажиллах чадвартай. Хоосон буулгалт үүсгэхийн тулд:
ellington&prompt.root; vi /var/yp/netgroup
гэж бичээд дараах зүйлсийг нэмж бичнэ. Манай жишээний хувьд,
бидэнд дор хаяж дөрвөн сүлжээний бүлэг хэрэгтэй: IT ажилчид,
IT дагалдангууд, ердийн ажилчид болон дадлагажигчид.
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
INTERNS (,able,test-domain) (,baker,test-domain)
IT_EMP, IT_APP гэх мэт нь сүлжээний бүлгийн
нэр. Хаалтан дотор байгаа бүлэг нь хэрэглэгч нэмж байгаа нь. Бүлэг доторх
гурван талбар нь:
Дараах зүйлүүд хүчинтэй байх хостын нэр. Хэрэв хостын нэр зааж өгөхгүй бол,
бүх хостын хувьд хүчинтэй гэсэн үг. Хэрэв хостын нэр зааж өгвөл,
та үл ойлгогдох, толгой эргүүлсэн хачин зүйлстэй тулгарах болно.
Энэ сүлжээний бүлэгт хамаарах дансны нэр.
Тухайн дансны NIS домэйн. Хэрэв та нэгээс олон NIS
домэйнд харъяалагддаг азгүй залуусын нэг бол,
өөрийн сүлжээний бүлэгт өөр NIS домэйноос данс импортолж болно.
Эдгээр талбаруудын алинд ч орлуулагддаг тэмдэгт ашиглаж болно.
Дэлгэрэнгүй мэдээллийг &man.netgroup.5; заавар хуудаснаас үзнэ үү.
сүлжээний бүлгүүд
Сүлжээний бүлгүүдийн нэр 8-с дээш тэмдэгт байж
болохгүй, ялангуяа тухайн NIS домэйнд өөр үйлдлийн системтэй
машинууд ажиллаж байгаа бол. Нэрүүд нь том жижиг үсгийн ялгаатай;
сүлжээний бүлгийн нэрийг том үсгээр бичих нь
хэрэглэгчийн нэр, машины нэр болон сүлжээний бүлгийн нэрийг
хооронд нь ялгахад хялбар болгодог.
Зарим NIS харилцагчид (FreeBSD-с бусад) олон тооны гишүүдтэй
сүлжээний бүлэгтэй ажиллаж чаддаггүй. Жишээлбэл,
&sunos;-н зарим хуучин хувилбарууд сүлжээний бүлэг
15-с дээш тооны гишүүн-тэй бол асуудалтай байдаг.
Энэ хязгаарыг давахын тулд 15 ба түүнээс доош тооны хэрэглэгчтэй
дэд сүлжээний бүлгүүд үүсгээд, дараа нь эдгээр дэд сүлжээний бүлгүүдээс
тогтсон жинхэнэ сүлжээний бүлэг үүсгэх замаар үүсгэж болно:
BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3
Хэрэв танд нэг сүлжээний бүлэгт 225-с дээш хэрэглэгч хэрэгтэй
бол, дээрх үйлдлийг давтах маягаар цааш үргэлжлүүлж болно.
Шинээр үүсгэсэн NIS буулгалтаа идэвхжүүлэх болон тараах нь амархан:
ellington&prompt.root; cd /var/yp
ellington&prompt.root; make
Ингэснээр netgroup,
netgroup.byhost ба
netgroup.byuser гэсэн гурван NIS буулгалт үүсэх болно.
Дээрх шинэ буулгалтууд идэвхтэй болсон эсэхийг &man.ypcat.1; ашиглан
шалгаарай:
ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuser
Эхний тушаалын үр дүн /var/yp/netgroup файл доторхтой
төстэй байх ёстой. Хэрэв та хостоор тусгайлан сүлжээний бүлэг үүсгээгүй бол
хоёр дахь тушаалын үр дүнд юу ч гарах ёсгүй. Гурав дахь тушаалын
тусламжтай тухайн хэрэглэгчийн сүлжээний бүлгүүдийн жагсаалтыг
харахад хэрэглэгдэнэ.
Харилцагчийг тохируулахад нилээд хялбар.
war нэртэй серверийг тохируулахын тулд, &man.vipw.8;-г
ажиллуулаад
+:::::::::
гэсэн мөрийг
+@IT_EMP:::::::::
гэсэн мөрөөр сольж бичих хэрэгтэй.
Ингэснээр, зөвхөн IT_EMP сүлжээний бүлэгт заагдсан
хэрэглэгчдийн мэдээлэл war-н нэвтрэх үгийн санд импортлогдож,
зөвхөн эдгээр хэрэглэгчид л энэ машин руу нэвтрэх эрхтэй боллоо.
Харамсалтай нь, энэ хязгаарлалт нь
бүрхүүлийн ~ функцад, мөн хэрэглэгчийн нэр ба тоон дугаарыг
хооронд нь хөрвүүлдэг бүх дэд програмуудад хамаатай. Өөрөөр хэлбэл,
cd ~user тушаал ажиллахгүй,
ls -l тушаал хэрэглэгчийн нэрийн оронд
түүний тоон дугаарыг харуулах ба find . -user joe -print тушаал
Тийм хэрэглэгч байхгүй гэсэн алдааны мэдээлэл өгч амжилтгүй
болох болно. Үүнийг засахын тулд, бүх хэрэглэгчдийн бүртгэлийг
сервер рүү нэвтрэх эрхгүйгээр импортлох хэрэгтэй болно.
Үүний тулд өөр нэг мөрийг /etc/master.passwd файлд нэмж өгөх хэрэгтэй.
Энэ мөр нь:
+:::::::::/sbin/nologin гэсэн бичлэгийг агуулж байх ёстой бөгөөд,
энэ нь бүх бүртгэлийг импортол, гэхдээ импортлогдож байгаа бүртгэлүүдийн
бүрхүүлийг /sbin/nologin-р соль
гэсэн утгатай. Үүнтэй адилаар
passwd файлын ямар ч талбарыг /etc/master.passwd файл дахь анхдагч
утгыг сольж бичсэнээр өөрчилж болно.
+:::::::::/sbin/nologin гэсэн мөр +@IT_EMP::::::::: гэсэн мөрийн
дараа бичигдсэн эсэхийг сайтар нягтлаарай. Үгүй бол, NIS-с импортлогдсон бүх
хэрэглэгчдийн бүрхүүл /sbin/nologin болчихно шүү.
Дээрх өөрчлөлтийг хийсний дараа,
хэрэв IT хэлтэст шинэ ажилчин орвол,
зөвхөн ганцхан NIS буулгалтыг өөрчлөх боллоо. Чухал бус бусад серверийн хувьд
ижилхэн арга хэрэглэж, тэдгээрийн өөрийн /etc/master.passwd файл дотор байгаа
хуучин +::::::::: мөрийг:
+@IT_EMP:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologin
гэсэн мөрөөр сольж бичих хэрэгтэй. Ердийн ажлын машины хувьд:
+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologin
байх ёстой. Ингээд бүх зүйл асуудалгүй ажиллах болно.
Гэтэл хэдэн долоо хоногийн дараа дүрэм, журманд өөрчлөлт орлоо:
IT хэлтэс дадлагажигч авч эхэллээ. IT хэлтсийн дадлагажигчид
ердийн ажлын машин болон чухал бус серверүүдэд нэвтрэх эрхтэй;
IT дагалдангууд гол сервер рүү нэвтрэх эрхтэй болжээ. Одоо IT_INTERN
гэсэн шинэ сүлжээний бүлэг нэмж, энэ бүлэгт шинэ IT дадлагажигчдийг
нэмээд, энэ өөрчлөлтийг бүх машины тохиргоонд оруулж эхлэх хэрэгтэй...
Бидний хэлж заншсанаар: Төвлөрсөн төлөвлөгөөн дээрх алдаа,
бүх юмыг орвонгоор нь эргүүлнэ
.
Энэ мэт тохиолдолуудад NIS-н
өөр сүлжээний бүлгээс шинэ сүлжээний бүлэг үүсгэх боломж нь тус болно.
Нэг боломж нь үүрэг дээр үндэслэсэн сүлжээний бүлэг юм.
Жишээ нь, чухал серверүүд рүү нэвтрэх эрхийг хянахын тулд
BIGSRV гэсэн нэртэй сүлжээний бүлэг үүсгэж болох ба,
чухал бус серверүүдийн хувьд өөр SMALLSRV гэсэн бүрэг үүсгэж,
USERBOX гэсэн гурав дахь бүлгийг ердийн ажлын машинуудад зориулж
үүсгэж болох юм. Эдгээр сүлжээний бүлэг тус бүр
дээрх гурван төрлийн машинд нэвтрэх эрхтэй
сүлжээний бүлгүүдийг агуулна. NIS сүлжээний бүлгийн буулгалт
дараах байдалтай байна:
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
Нэвтрэх эрхийг хязгаарлах энэ арга нь
ижил төрлийн хязгаарлалттай машинуудыг нэг бүлэг болговол илүү
үр дүнтэй ажиллана. Харамсалтай нь, заавал тийм байх албагүй.
Ихэнх тохиолдолд, машин тус бүрээр нэвтрэх эрхийг хязгаарлах
боломжтой байх шаардлага зайлшгүй тулгардаг.
Машин дээр үндэслэсэн сүлжээний бүлэг тодорхойлох нь
дээрх мэтийн дүрэм журамд өөрчлөлт ороход хэрэглэж болох
хоёр дахь боломж юм. Энэ тохиолдолд, машин бүрийн
/etc/master.passwd файл дотор +
-р эхэлсэн хоёр
мөр бичлэг байна. Эхнийх нь энэ машин руу нэвтрэх эрхтэй дансуудаас бүрдсэн
сүлжээний бүлгийг нэмж өгнө, хоёр дахь нь бусад дансуудыг
/sbin/nologin бүрхүүлтэйгээр нэмнэ. Сүлжээний бүлгийн нэрийг
машины нэрийг БҮХ ҮСГИЙГ ТОМООР
байхаар сонгож авах нь
тохиромжтой. Өөрөөр хэлбэл, мөрүүд дараах байдалтай харагдах ёстой:
+@BOXNAME:::::::::
+:::::::::/sbin/nologin
Бүх машины хувьд дээрх үйлдлийг хийж дууссаны дараа,
өөрийн /etc/master.passwd файлыг дахин өөрчлөх шаардлагагүй болно.
Бусад бүх өөрчлөлтүүдийг NIS буулгалтыг өөрчилснөөр шийдэх болно. Дээрх асуудалд
тохирох сүлжээний бүлгийн буулгалтыг зарим нэмэлт өөрчлөлтүүдийн хамт
дор жишээ болгож үзүүлэв:
# Define groups of users first
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITINTERN (,kilo,test-domain) (,lima,test-domain)
D_INTERNS (,able,test-domain) (,baker,test-domain)
#
# Now, define some groups based on roles
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
#
# And a groups for a special tasks
# Allow echo and golf to access our anti-virus-machine
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
#
# machine-based netgroups
# Our main servers
WAR BIGSRV
FAMINE BIGSRV
# User india needs access to this server
POLLUTION BIGSRV (,india,test-domain)
#
# This one is really important and needs more access restrictions
DEATH IT_EMP
#
# The anti-virus-machine mentioned above
ONE SECURITY
#
# Restrict a machine to a single user
TWO (,hotel,test-domain)
# [...more groups to follow]
Хэрэв та хэрэглэгчдийнхээ дансыг удирдахын тулд
ямар нэг өгөгдлийн санг ашигладаг бол, дээрх буулгалтын эхний
хэсгийг өгөгдлийн сангийнхаа тайлан бэлтгэх багажуудыг
ашиглах үүсгэх боломжтой. Энэ замаар, шинэ хэрэглэгчид машинуудад
хандах эрхийг автоматаар олж авах болно.
Эцэст нь анхааруулж хэлэх нэг зүйл байна: Машин дээр үндэслэсэн
сүлжээний бүлгийг хэрэглэхийг байнга зөвлөхгүй. Хэрэв
оюутны лабораторид зориулсан, хэдэн арван эсвэл хэдэн зуун
нэг ижил машинтай ажиллаж байгаа бол, NIS буулгалтыг тодорхой хэмжээнд барьж
байхын тулд машин дээр үндэслэсэн сүлжээний бүлгийн оронд үүрэг дээр үндэслэсэн
сүлжээний бүлгийг хэрэглэх хэрэгтэй.
Санаж явах чухал зүйлс
NIS орчинд ороод, өөрөөр хийх ёстой хэд хэдэн зүйлс байна.
Лабораторид шинэ хэрэглэгч нэмэх бүрдээ
зөвхөн эзэн NIS серверт нэмэх ёстой,
ба NIS буулгалтыг заавал дахин үүсгэх ёстой.
Хэрэв ингэхээ мартвал, шинэ хэрэглэгч эзэн NIS серверээс
өөр хаашаа ч нэвтэрч чадахгүй болно. Жишээ нь,
бид jsmith гэсэн шинэ хэрэглэгчийг лабораторид нэмэх боллоо:
&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domain
pw useradd jsmith-н оронд adduser jsmith-г мөн хэрэглэж болно.
Администратор эрхтэй дансуудыг NIS буулгалтад оруулах ёсгүй.
Администратор эрхээр орох ёсгүй хэрэглэгчдийн машин дээр администратор эрхтэй
дансууд болон нэвтрэх үгүүдийг тараах хүсэлгүй байгаа биз дээ.
NIS эзэн болон зарц серверийн аюулгүй байдлыг хангаж,
ажиллахгүй байх хугацааг багасгах хэрэгтэй. Хэрэв хэн нэг нь
серверт нууцаар нэвтэрч, эсвэл унтрааж орхивол хүмүүсийг лабораторын машинууд руу
нэвтрэх боломжгүй болгож, саад болох болно.
Энэ нь ямар ч төвлөрсөн удирдах системийн
гол сул тал юм. Хэрэв та өөрийн NIS серверийг хамгаалахгүй бол,
та маш олон ууртай хэрэглэгчидтэй таарах болно шүү!
NIS v1 нийцтэй байдал
FreeBSD-н ypserv нь NIS v1 харилцагчдад үйлчлэх
зарим дэмжигчтэй ирдэг. FreeBSD-н NIS нь зөвхөн NIS v2 протоколыг хэрэглэдэг,
гэхдээ бусад нь хуучин системүүдтэй нийцтэй ажиллахын тулд
v1 протоколыг дэмждэг байхаар бүтээгдсэн байдаг.
Эдгээр системтэй хамт ирсэн ypbind дэмонууд
хэдийгээр үнэн хэрэг дээрээ хэзээ ч хэрэглэхгүй боловч
NIS v1 сервертэй холболт үүсгэхийг оролддог (ба
v2 серверээс хариу хүлээж авсан ч өргөн цацалт хийж
хайлтаа үргэлжлүүлдэг талтай). Хэдийгээр
ердийн харилцагчийн хүсэлтийг дэмждэг боловч,
ypserv-н энэ хувилбар v1 буулгалтыг зөөх хүсэлттэй ажиллаж чадахгүй;
иймээс, зөвхөн v1 протоколыг дэмждэг хуучин NIS серверүүдтэй
холбоотойгоор эзэн эсвэл зарц байдлаар ажиллаж чадахгүй.
Аз болоход, ийм серверийг одоо хэрэглэж байгаа газар байхгүй.
NIS Сервер мөртлөө NIS Харилцагч
Сервер машин нь мөн NIS харилцагч байдлаар ажилладаг
олон сервертэй домэйнд ypserv-г ажиллуулахдаа
анхааралтай байх хэрэгтэй. Ийм серверийг өргөн цацалт хийлгэж,
өөр нэг сервертэй холбоо тогтоохыг зөвшөөрөхийн оронд өөрөө өөртэй нь
хүчээр холбох нь ихэвчлэн дээр байдаг. Хэрэв нэг сервер унтарч, бусад
серверүүд түүнээс хамааралтай байх юм бол хачин алдаанууд гарч болзошгүй.
Эцэст нь бүх харилцагчдын хүлээх хугацаа дуусаж,
бүгд өөр сервертэй холбогдохыг оролдох болно. Хэдийгээр бүх серверүүд
холболтуудаа сэргээж буцаад хэвийн байдалдаа орсон ч, саатлаас болж
харилцагчид холбогдож чадахгүй хэвээр байх болно.
Хостыг ямар нэг сервертэй холбогдохыг
ypbind тушаалыг тугийн хамт ажиллуулж,
урдаас зааж өгч болно. Хэрэв NIS серверийг дахин ачаалах тоолонд энэ
тушаалыг гараар оруулах хүсэлгүй байгаа бол, дараах мөрүүдийг
өөрийн /etc/rc.conf файл дотор нэмээрэй:
nis_client_enable="YES" # run client stuff as well
nis_client_flags="-S NIS domain,server"
Дэлгэрэнгүй мэдээллийг &man.ypbind.8; заавар хуудаснаас үзнэ үү.
Нэвтрэх үгийн хэлбэр
NIS
нэвтрэх үгийн хэлбэр
NIS-г зохион байгуулах явцад ихэвчлэн тохиолддог асуудлуудын нэг бол
нэвтрэх үгийн хэлбэрийн нийцгүй байдал юм. Хэрэв таны NIS
сервер DES хувиргалттай нэвтрэх үгийг хэрэглэдэг бол,
зөвхөн DES хэрэглэдэг харилцагчид үйлчлэх чадвартай. Жишээлбэл,
хэрэв сүлжээнд чинь &solaris; NIS харилцагчид байгаа бол,
та бараг л DES хувиргалттай нэвтрэх үг хэрэглэх шаардлагатай гэсэн үг.
Таны сервер болон харилцагчид ямар хэлбэрийн нэвтрэх үг хэрэглэдгийг
шалгахдаа /etc/login.conf файлыг үзээрэй. Хэрэв тухайн хост
DES хувиргалттай нэвтрэх үг хэрэглэдэг бол, default буюу анхдагч ангилал
нь дараах мөрүүдийг агуулсан байх болно:
default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[Further entries elided]
passwd_format нь өөр blf ба md5 гэсэн
утгуудыг авч болно (Blowfish болон MD5 хувиргалттай нэвтрэх үгийн хувьд).
Хэрэв та /etc/login.conf файлд өөрчлөлт хийсэн бол,
нэвтрэх чадварын санг дахин үүсгэх шаардлагатай. Үүний тулд дараах тушаалыг
root эрхээр өгөх хэрэгтэй:
&prompt.root; cap_mkdb /etc/login.conf
/etc/master.passwd файл дотор аль хэдийн үүссэн нэвтрэх үгийн
хэлбэр нь хэрэглэгч нэвтрэх чадварын сан дахин үүссэнээс хойш анх удаа нэвтрэх
үгээ солих хүртэл өөрчлөгдөхгүй.
Мөн, таны сонгосон хэлбэрээр нэвтрэх үгүүдэд
хувиргалт хийгддэг болгохын тулд,
/etc/auth.conf файл доторх crypt_default утга
таны сонгосон хэлбэрийг хамгийн түрүүнд оруулсан байгаа эсэхийг
шалгах хэрэгтэй. Жишээ нь, DES хувиргалттай нэвтрэх үгийг хэрэглэх үед:
crypt_default = des blf md5
&os; дээр тулгуурласан NIS сервер болон харилцагч бүр дээр дээрх
үйлдлүүдийг хийснээр, нэвтрэх үгийн хэлбэр бүгд таарч байгаа гэдэгт
санаа амар байж болно. Хэрэв NIS харилцагч дээр нэвтэрч ороход асуудал
гарвал, асуудлыг тодруулах нэг газар байна.
Хэрэв та холимог сүлжээний хувьд NIS сервер босгох гэж байгаа бол,
ихэнх систем дээр зайлшгүй байх хамгийн бага стандарт тул,
бүх системүүд дээрээ DES ашиглах хэрэгтэйг санаарай.
Грег
Саттер
Бичсэн
Лодойсамбын
Баянзул
Орчуулсан
Автомат Сүлжээний Тохиргоо (DHCP)
DHCP гэж юу вэ?
Динамик Хостын Тохиргооны Протокол
DHCP
Internet Systems Consortium (ISC)
DHCP, Dynamic Host Configuration Protocol буюу Динамик Хостын Тохиргооны Протокол нь
систем ямар байдлаар сүлжээнд холбогдох,
тухайн сүлжээнд харилцаанд орохын тулд шаардагдах
мэдээллийг хэрхэн олж авахыг зааж өгдөг. FreeBSD-н
6.0-с өмнөх хувилбарууд ISC (Internet Systems Consortium) DHCP харилцагчийг
(&man.dhclient.8;) хэрэглэдэг.
Хамгийн сүүлийн хувилбар дээр OpenBSD 3.7-с авсан
OpenBSD-н dhclient-г хэрэглэдэг. Энэ бүлэгт гарах
dhclient-р ISC ба OpenBSD DHCP харилцагчийг хоёуланг
нь төлөөлүүлсэн болно. DHCP серверийн хувьд ISC тархацын
серверийг авч үзэх болно.
Энэ хэсэгт авч үзэх зүйлс
Энэ хэсэгт ISC ба OpenBSD DHCP харилцагчийн харилцагч талыг бүтээж байгаа элементүүд,
болон ISC DHCP системийн сервер талыг бүтээж байгаа элементүүдийг хоёуланг нь
авч үзэх болно. Харилцагч талын програм, dhclient, нь
FreeBSD-тэй нэгдмэл байдлаар ирдэг бол, сервер талын хэсэг нь
net/isc-dhcp31-server портоос суулгах боломжтой байдлаар ирдэг.
&man.dhclient.8;, &man.dhcp-options.5;, ба &man.dhclient.conf.5; заавар хуудсууд болон доор өгөгдсөн зөвлөмжүүд
нь хэрэг болно.
Хэрхэн ажилладаг вэ?
UDP
Харилцагч машин дээр dhclient DHCP харилцагчийг
ажиллуулахад, тохиргооны мэдээллийг хүссэн хүсэлтийг цацаж эхэлнэ.
Анхдагч байдлаар, эдгээр хүсэлтүүд нь UDP 68-р портоос гарч, серверийн
UDP 67 порт руу илгээгдэнэ. Сервер харилцагчид IP хаяг болон сүлжээний баг,
чиглүүлэгч, DNS серверийн хаяг зэрэг хэрэгтэй мэдээллийг хариу илгээнэ.
Энэ бүх мэдээллийг DHCP түрээслэх
хэлбэрээр өгөх ба зөвхөн тодорхой
хугацааны туршид хүчинтэй байна (DHCP серверийг хариуцагч тохируулж өгсөн байна).
Ийм байдлаар, сүлжээнд холбогдохоо больсон харилцагчийн ашиглагдаагүй
IP хаягуудыг автоматаар буцааж авах боломжтой болно.
DHCP харилцагч серверээс өргөн мэдээллийг
авч чадна. Бүрэн жагсаалтыг &man.dhcp-options.5;-с олж үзэж болно.
FreeBSD-тэй нэгдмэл байдал
&os; нь ISC эсвэл OpenBSD DHCP харилцагч,
dhclient-г өөртэйгөө бүрэн нэгтгэсэн байдаг (&os; хувилбараас хамааран).
DHCP сервер ажиллаж байгаа сүлжээнд сүлжээний тохиргоог хийх нарийн
чимхлүүр ажлаас хөнгөвчлөх үүднээс, DHCP харилцагчийг систем суулгагч
болон үндсэн системийн аль алинд хамт оруулж өгсөн байдаг.
dhclient нь FreeBSD-н 3.2-с хойших бүх тархацуудад нэгтгэгдсэн байгаа.
sysinstall
sysinstall нь DHCP-г дэмждэг. sysinstall-р
сүлжээний интерфэйсийг тохируулахад асуудаг хоёр дахь асуулт бол:
Та энэ интерфэйсийг DHCP-р тохируулахыг хүсэж байна уу?
.
Зөвшөөрсөн хариулт өгсөн тохиолдолд dhclient-г ажиллуулах бөгөөд,
хэрэв амжилттай бол сүлжээний тохиргоо автоматаар хийгдэнэ.
Систем ачаалах үед DHCP ашигладаг болгохын тулд,
хоёр зүйлийг хийх хэрэгтэй:
DHCP
шаардлагууд
bpf төхөөрөмж цөмтэй хамт эмхэтгэгдсэн байх ёстой.
Үүний тулд, device bpf мөрийг цөмийн
тохиргооны файлд нэмж бичээд цөмийг дахин бүтээх
хэрэгтэй. Цөмийг бүтээх талаар дэлгэрэнгүй мэдээллийг
хэсгээс авна уу.
bpf төхөөрөмж нь FreeBSD-н GENERAL цөмийн нэг хэсэг
бөгөөд, DHCP-г ажиллуулахын тулд тусгайлан шинээр цөм бүтээх шаардлагагүй.
Аюулгүй байдлын талаар сэтгэл зовнидог хүмүүст зөвлөхөд,
bpf нь пакет шиншлэгчдийг зөв ажиллах боломжийг олгодог
төхөөрөмж болохыг анхааралдаа авна уу (хэдийгээр тэдгээр програм ажиллахын
тулд root эрх хэрэгтэй боловч). DHCP-г ашиглахын тулд
bpf заавал хэрэгтэй, гэвч хэрэв та аюулгүй байдлыг
маш ихээр анхааралдаа авдаг бол, зөвхөн хэзээ нэгэн цагт DHCP-г
ашиглахын тулд bpf-г цөмд нэмэх хэрэггүй.
/etc/rc.conf файлыг нээгээд дараах мөрийг нэмж бичнэ:
ifconfig_fxp0="DHCP"
-д тайлбарласан ёсоор,
fxp0-г динамикаар тохируулах гэж байгаа
интерфэйсийн нэрээр сольж бичнэ.
Хэрэв таны dhclient өөр газар байгаа бол, эсвэл
хэрэв та dhclient-г нэмэлт тугуудын хамт ажиллуулах хүсэлтэй бол,
дараах мөрүүдийг нэмж бичнэ үү (эсвэл шаардлагатай хэсгийг засаж бичнэ үү):
dhclient_program="/sbin/dhclient"
dhclient_flags=""
DHCP
сервер
DHCP сервер dhcpd нь портуудын цуглуулгад байгаа
net/isc-dhcp31-server портын нэг хэсэг байдлаар ирдэг. Энэ порт нь
ISC DHCP сервер болон түүний баримтуудыг агуулсан байдаг.
Файлууд
DHCP
тохиргооны файлууд
/etc/dhclient.conf
dhclient нь /etc/dhclient.conf гэсэн тохиргооны
файлыг шаарддаг. Ихэвчлэн энэ файл зөвхөн тайлбаруудаас бүрдэх ба
анхдагч утгууд нь харьцангуй өөрчлөх шаардлагагүйгээр өгөгдсөн байдаг.
Энэ тохиргооны файлыг &man.dhclient.conf.5; заавар хуудсанд тайлбарласан байгаа.
/sbin/dhclient
dhclient нь статикаар холбогдсон байх ба
/sbin дотор байрлана. &man.dhclient.8; хуудаснаас
dhclient-н талаар дэлгэрэнгүй мэдээллийг авна уу.
/sbin/dhclient-script
dhclient-script нь зөвхөн FreeBSD-д байдаг, DHCP харилцагчийг
тохируулах зориулалттай тусгай скрипт юм. Энэ скриптийг
&man.dhclient-script.8; заавар хуудсанд тайлбарласан байх ба, ажиллуулахын
тулд хэрэглэгч ямар нэг засвар хийх шаардлагагүй.
/var/db/dhclient.leases
DHCP харилцагч нь түрээсэлж авсан хаягуудаа агуулсан өгөгдлийн
санг энэ файлд хадгалах бөгөөд бүртгэл маягаар бичдэг. &man.dhclient.leases.5; хэсэгт
илүү дэлгэрэнгүй тайлбар бий.
Гүнзгийрүүлэн унших
DHCP протокол нь бүрэн хэмжээгээр RFC 2131-д
тодорхойлогдсон байдаг. Нэмэлт эх үүсвэрүүд -д мөн бий.
DHCP Серверийг Суулгах болон Тохируулах
Энэ хэсэгт авч үзэх зүйлс
Энэ хэсэгт ISC (Internet Systems Consortium) DHCP серверийг
ашиглан FreeBSD системийг хэрхэн DHCP сервер байдлаар ажиллуулах
талаар авч үзэх болно.
Сервер нь FreeBSD-н нэг хэсэг байдлаар ирдэггүй бөгөөд
ийм үйлчилгээ үзүүлэхийн тулд net/isc-dhcp31-server портыг
суулгах хэрэгтэй болдог. Портуудын цуглуулгын хэрхэн ашиглах талаар
хэсгээс дэлгэрэнгүй мэдээллийг авна уу.
DHCP Серверийг суулгах нь
DHCP
суулгах
FreeBSD системийг DHCP сервер байдлаар тохируулахын тулд,
&man.bpf.4; төхөөрөмж цөмд эмхэтгэгдсэн байх ёстой. Үүний тулд,
цөмийн тохиргооны файл дотор bpf төхөөрөмжийг нэмээд цөмийг дахин
бүтээх хэрэгтэй. Цөмийг бүтээх талаар дэлгэрэнгүй мэдээллийг
хэсгээс үзнэ үү.
bpf төхөөрөмж нь FreeBSD-н GENERAL цөмийн нэг хэсэг бөгөөд,
DHCP-г ажиллуулахын тулд
тусгайлан шинээр цөм бүтээх шаардлагагүй.
Аюулгүй байдлын талаар сэтгэл зовнидог хүмүүст зөвлөхөд,
bpf нь пакет шиншлэгчдийг зөв ажиллах боломжийг олгодог
төхөөрөмж болохыг анхааралдаа авна уу (хэдийгээр тэдгээр програм ажиллахын
тулд root эрх хэрэгтэй боловч). DHCP-г ашиглахын тулд
bpf заавал хэрэгтэй, гэвч хэрэв та аюулгүй байдлыг
маш ихээр анхааралдаа авдаг бол, зөвхөн хэзээ нэгэн цагт DHCP-г
ашиглахын тулд bpf-г цөмд нэмэх хэрэггүй.
Үүний дараа net/isc-dhcp31-server
порттой хамт ирсэн жишээ dhcpd.conf файлыг засах хэрэгтэй.
Анхдагч байдлаар, /usr/local/etc/dhcpd.conf.sample гэсэн файл байх ба
өөрчлөлт хийхийнхээ өмнө энэ файлыг /usr/local/etc/dhcpd.conf
нэртэйгээр хуулж тавих хэрэгтэй.
DHCP Серверийг тохируулах
DHCP
dhcpd.conf
dhcpd.conf нь
дэд сүлжээ болон хостуудтай холбоотой өгөгдөл зарлалтаас
бүрдэх ба жишээн дээр тайлбарлавал илүү амархан байх болов уу:
option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}
Энэ тохируулга нь анхдагч хайлтын домэйн байдлаар
харилцагчид өгөх домэйныг заана. Энэ талаар дэлгэрэнгүй мэдээллийг
&man.resolv.conf.5; хэсгээс үзнэ үү.
Энэ тохируулга нь харилцагчийн хэрэглэх ёстой
DNS серверүүдийг таслалаар холбосон жагсаалт байна.
Хэрэглэгчид өгөх сүлжээний багийг заана.
Түрээслэлт (lease) хүчинтэй байх тийм тусгай хугацааг
харилцагч хүсэж болох юм. Хэрэв харилцагч хүсээгүй бол сервер энд заасан дуусах
хугацаагаар (секундээр) түрээс хийх болно.
Серверийн түрээслүүлэх хамгийн дээд хугацааг заана.
Харилцагч үүнээс урт хугацаагаар түрээслэх хүсэлт тавибал
хүсэлтийг хүлээж авах боловч зөвхөн max-lease-time секундын туршид
хүчинтэй байна.
Түрээслэх болон эргүүлж авахад DHCP сервер
DNS-г шинэчлэхийг оролдох шаардлагатай эсэхийг зааж өгнө.
ISC шийдлийн хувьд, энэ тохируулга заавал байх ёстой.
Харилцагчид оноох IP хаягуудын хүрээг заана. Энэ хүрээнд багтах
IP хаягуудыг харилцагчид өгөх болно.
Харилцагчид өгөх анхдагч гарцыг заана.
Хостын MAC хаягийг заана (ингэснээр DHCP сервер тухайн хостыг
хүсэлт тавихад таньж чадна).
Хостод тогтмол IP хаяг оноохыг заана.
Энд хостын нэрийг хэрэглэж болохыг тэмдэглэх хэрэгтэй.
DHCP сервер IP хаяг түрээслүүлэх
хариуг өгөхөөс өмнө хост нэрийг тайлах болно.
dhcpd.conf файлыг бичиж дууссаны дараа,
/etc/rc.conf файл дотор DHCP серверийг идэвхжүүлэх хэрэгтэй,
өөрөөр хэлбэл доорх мөрүүдийг нэмж бичих хэрэгтэй:
dhcpd_enable="YES"
dhcpd_ifaces="dc0"
dc0-г өөрийн тань DHCP сервер DHCP харилцагчдын хүсэлтийг
хүлээж авах ёстой интерфэйсийн нэрээр (эсвэл интерфэйсүүдийг зайгаар
тусгаарлан) сольж бичих хэрэгтэй.
Дараа нь, доорх тушаалыг өгөн серверийг ажиллуулах хэрэгтэй:
&prompt.root; /usr/local/etc/rc.d/isc-dhcpd start
Серверийнхээ тохиргооны файлд өөрчлөлт оруулах бүрдээ,
SIGHUP дохиог dhcpd-д өгөх нь бусад дэмонуудын
хувьд тохиргоог дахин дууддаг шиг биш харин тохиргоог дахин
ачаалахгүй болохыг анхаарах хэрэгтэй. Процессийг зогсоохын
тулд SIGTERM дохиог өгөх хэрэгтэй ба дээрх тушаалыг өгөн дахин эхлүүлэх хэрэгтэй.
Файлууд
DHCP
тохиргооны файлууд
/usr/local/sbin/dhcpd
dhcpd нь статикаар холбогдсон байх ба
/usr/local/sbin дотор байрлана. Порттой хамт суусан
&man.dhcpd.8; заавар хуудаснаас dhcpd-н талаар дэлгэрэнгүй мэдээллийг
авна уу.
/usr/local/etc/dhcpd.conf
dhcpd нь /usr/local/etc/dhcpd.conf гэсэн тохиргооны
файлыг шаарддаг. Энэ файл дотор харилцагчид өгөх бүх мэдээллээс гадна
серверийн өөрийн үйл ажиллагаатай холбоотой мэдээлэл байх ёстой. Энэ
тохиргооны файлыг портоос суусан &man.dhcpd.conf.5; заавар хуудсанд тайлбарласан байгаа.
/var/db/dhcpd.leases
DHCP сервер нь түрээслүүлсэн хаягуудаа агуулсан
өгөгдлийн санг энэ файлд хадгалах бөгөөд бүртгэл маягаар бичдэг.
Портоос суусан &man.dhcpd.leases.5; заавар хуудсанд илүү дэлгэрэнгүй
тайлбар бий.
/usr/local/sbin/dhcrelay
dhcrelay-г нэг DHCP сервер
харилцагчаас хүлээн авсан хүсэлтийг өөр сүлжээнд байгаа
нөгөө DHCP сервер рүү дамжуулдаг, нарийн бүтэцтэй орчинд хэрэглэнэ.
Хэрэв энэ функцыг ашиглах шаардлагатай бол,
net/isc-dhcp31-relay портыг суулгаарай.
Порттой хамт ирэх &man.dhcrelay.8; заавар хуудаснаас дэлгэрэнгүй
мэдээллийг авна уу.
Шерн
Лий
Хувь нэмрээ оруулсан
Том
Родес
Даниэл
Гэрзо
Лодойсамбын
Баянзул
Орчуулсан
Домэйн Нэрийн Систем (DNS)
Удиртгал
BIND
&os; анхдагч байдлаар DNS протоколын
хамгийн өргөн хэрэглэгддэг хэрэгжүүлэлт болох BIND (Berkeley
Internet Name Domain)-н аль нэг хувилбарыг агуулсан байдаг.
DNS нь нэрүүдийг IP хаягууд руу, мөн
эсрэгээр нь буулгахад хэрэглэгддэг протокол юм.
Жишээ нь, www.FreeBSD.org-г асуусан DNS асуулга явуулахад,
хариуд нь &os; Төсөлийн вэб серверийн IP хаяг ирэх бол,
ftp.FreeBSD.org-н хувьд асуулга явуулахад,
хариуд нь харгалзах FTP машины IP хаяг ирэх болно.
Яг үүнтэй адилаар эсрэгээр нь хийж болно. Ямар нэг IP-р асуулга
явуулахад түүний хост нэрийг олж болно. DNS хайлт хийхийн тулд
тухайн системд домэйн нэрийн сервер ажиллаж байх ёстой.
&os; нь одоо BIND9
DNS сервер програмын хамт ирдэг болсон.
Бидний суулгац нь файл системийн шинэчилсэн зохион байгуулалт,
автомат &man.chroot.8; тохиргоо зэрэг аюулгүй байдлыг дээд зэргээр
хангах функцүүдтэй ирдэг.
DNS
DNS бол Интернэт дээр тулгуурласан,
бүрэн эрхт root буюу эх сервер, Top Level Domain буюу Дээд Түвшний Домэйн (TLD)
сервер, болон домэйн тус бүрийн мэдээллийг агуулж байдаг
бусад жижиг нэрийн серверүүдээс бүтсэн нарийн төвөгтэй
систем юм.
BIND одоо
Internet Systems Consortium
-н мэдэлд байдаг.
Нэр Томъёо
Энэ баримтыг ойлгохын тулд, DNS-тэй холбоотой
зарим нэр томъёог ойлгосон байх шаардлагатай.
resolver
reverse DNS
root zone
Нэр
Тайлбар
Forward буюу Ердийн DNS
Хост нэрийг IP хаяг руу буулгана.
Origin буюу Үүсэл
Тухайн бүсийн файлд хамрагдаж байгаа домэйныг заана.
named, BIND
&os;-н BIND нэрийн серверийг нэрлэх түгээмэл нэршил.
Resolver буюу Тайлагч
Машин, бүсийн мэдээллийн талаар нэрийн серверээс асуулга
явуулахын тулд ашигладаг системийн процесс.
Reverse буюу Урвуу DNS
IP
хаягийг хост нэр рүү буулгана.
Root zone буюу Эх бүс
Интернэт бүсийн шатлалын эхлэл.
Файл системийн бүх файлууд эх санд харъяалагддаг шиг,
бүх бүсүүд эх бүсэд харъяалагдана.
Zone буюу Бүс
Нэг бүрэн эрхт газраар удирдуулж байгаа
домэйн, дэд домэйн, эсвэл DNS-н нэг хэсэг.
бүсүүд
жишээнүүд
Бүсүүдийн жишээ:
. нь баримтад ихэвчлэн эх бүс гэж заагддаг.
org. бол эх бүсийн доорх Top Level Domain буюу
Дээд Түвшний Домэйн (TLD).
example.org. бол org. TLD-н
доорх бүс.
1.168.192.in-addr.arpa бол 192.168.1.*
IP хаягийн хүрээнд багтаж байгаа бүх IP
хаягуудыг агуулсан бүс.
Хост нэр зүүн тал руугаа явах тусам илүү тодорхой
болж байгааг та бүхэн анзаарсан байх. Жишээлбэл, example.org.
нь org.-с илүү тодорхой, харин org. нь эх бүсээс
илүү тодорхой байна. Хост нэрийн зохион байгуулалт нь
файл системийнхтэй төстэй: /dev директор нь
эх директорт харъяалагдана, гэх мэт.
Нэрийн Сервер ажиллуулах Шалтгаанууд
Нэрийн Серверүүд ерөнхийдөө хоёр янз байна: authoritative буюу бүрэн эрхт нэрийн сервер,
ба caching буюу түр тогтоогч нэрийн сервер.
Бүрэн эрхт нэрийн сервер нь дараах тохиолдлуудад хэрэгтэй:
DNS мэдээллийг өөртөө агуулж, энэ мэдээллийг нийтэд зарлан,
ирсэн асуулгуудад бүрэн эрхтэйгээр хариулах хүсэлтэй үед.
Бүртгэлтэй домэйны хувьд, жишээлбэл example.org,
түүний дор орших хост нэрүүдэд IP хаяг оноож өгөх хэрэгтэй үед.
Бүлэг IP хаягуудад урвуу DNS мэдээлэл хэрэгтэй үед
(IP-с хост нэр рүү).
Нөөц эсвэл хоёрдогч нэрийн сервер, зарц гэж нэрлэнэ,
асуулгуудад хариулуулах шаардлагатай үед.
Түр тогтоогч нэрийн сервер дараах тохиолдлуудад хэрэгтэй:
Дотоод DNS сервер нь асуулгын хариуг
түр тогтоосноор гадаад нэрийн серверээс илүү хурдан хариу өгч
байгаа үед.
www.FreeBSD.org-р асуулга явуулсан үед, тайлагч ихэвчлэн
үйлчилгээ авдаг ISP-нхаа нэрийн серверээс асуугаад хариуг олж авна.
Дотоод, түр тогтоогч DNS сервер ажиллуулснаар,
асуулгыг гадаад интернэтээс зөвхөн ганц удаа явуулах бөгөөд,
хариуг тогтоож авна. Нэмэлт асуулгуудад түр тогтоогч нэрийн сервер
хариулах ба гадагшаа дахин асуулга явуулах шаардлага байхгүй.
Хэрхэн ажилладаг вэ?
&os;-д BIND дэмонг named гэж нэрлэнэ.
Файл
Тайлбар
&man.named.8;
BIND дэмон.
&man.rndc.8;
Нэрийн серверийг хянах хэрэгсэл.
/etc/namedb
BIND-н бүсийн мэдээлэл хадгалагдаж байгаа сан.
/etc/namedb/named.conf
дэмоны тохиргооны файл.
Тухайн бүс сервер дээр хэрхэн тохируулагдсанаас хамаарч
энэ бүстэй хамааралтай файлууд /etc/namedb
директорын master,
slave, эсвэл dynamic
гэсэн дэд сангуудад байрлана. Эдгээр файлуудад
гадны асуулгад хариу болгон өгөх DNS мэдээллүүд
байрлана.
BIND-г ажиллуулах нь
BIND
ажиллуулах
BIND нь анхдагч байдлаар суучихсан ирдэг тул тохируулахад
хялбар байдаг.
named-н анхдагч тохиргоо нь
&man.chroot.8; орчинд ажиллах, тайлагч нэрийн сервер байдлаар хийгдсэн байдаг
бөгөөд локал IPv4 loopback хаяг (127.0.0.1) дээр ажиллахаар
хязгаарлагдсан байдаг.
Энэ тохиргоогоор серверийг ажиллуулахын тулд дараах тушаалыг өгөх хэрэгтэй:
&prompt.root; /etc/rc.d/named onestart
named дэмонг систем ачаалах үед
ажиллуулдаг болгохын тулд /etc/rc.conf дотор дараах мөрүүдийг нэмэх
хэрэгтэй:
named_enable="YES"
Мэдээж /etc/namedb/named.conf файл дотор
өөр олон тохируулгууд байгаа боловч энэ баримтын мэдлээс халих
тул энд дурдсангүй. Хэрэв &os; дээрх named-н эхлэл
тохируулгуудын талаар сонирхож байгаа бол /etc/defaults/rc.conf
дотор байгаа named_* тугуудыг нэг ороод үзээрэй.
Мөн &man.rc.conf.5; заавар хуудаснаас тусламж авч болно.
хэсгийг уншихад илүүдэхгүй.
Тохиргооны файлууд
BIND
тохиргооны файлууд
named-н тохиргооны файлууд нь
/etc/namedb директор дотор байрлах ба
хэрэв хялбар тайлагчаас өөр түвшинд ажиллах хэрэгтэй бол
ажиллуулахаасаа өмнө тохиргооны файлд засвар хийх хэрэгтэй.
Ихэнх тохиргоог энэ сан дотор гүйцэтгэнэ.
/etc/namedb/named.conf
// $FreeBSD$
//
// Refer to the named.conf(5) and named(8) man pages, and the documentation
// in /usr/share/doc/bind9 for more details.
//
// If you are going to set up an authoritative server, make sure you
// understand the hairy details of how DNS works. Even with
// simple mistakes, you can break connectivity for affected parties,
// or cause huge amounts of useless Internet traffic.
options {
// Relative to the chroot directory, if any
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
// If named is being used only as a local resolver, this is a safe default.
// For named to be accessible to the network, comment this option, specify
// the proper IP address, or delete this option.
listen-on { 127.0.0.1; };
// If you have IPv6 enabled on this system, uncomment this option for
// use as a local resolver. To give access to the network, specify
// an IPv6 address, or the keyword "any".
// listen-on-v6 { ::1; };
// These zones are already covered by the empty zones listed below.
// If you remove the related empty zones below, comment these lines out.
disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the Internet.
/*
forwarders {
127.0.0.1;
};
*/
// If the 'forwarders' clause is not empty the default is to 'forward first'
// which will fall back to sending a query from your local server if the name
// servers in 'forwarders' do not have the answer. Alternatively you can
// force your name server to never initiate queries of its own by enabling the
// following line:
// forward only;
// If you wish to have forwarding configured automatically based on
// the entries in /etc/resolv.conf, uncomment the following line and
// set named_auto_forward=yes in /etc/rc.conf. You can also enable
// named_auto_forward_only (the effect of which is described above).
// include "/etc/namedb/auto_forward.conf";
Тайлбар дээр хэлсэнчлэн
дээд гарцын түр тогтоогчоос хүртэхийн тулд
forwarders-г идэвхжүүлж болох юм.
Энгийн үед, нэрийн сервер нь хариултыг олтлоо давталттай байдлаар
хэд хэдэн нэрийн серверүүдээр дамжин асууна.
Энэ тохируулгыг идэвхжүүлснээр, дээд гарцынхаа нэрийн серверээс
(эсвэл зааж өгсөн нэрийн сервер) хамгийн түрүүнд асууж, энэ серверийн
түр санах ойд байгаа мэдээллээс хүртэхийг эрмэлзэнэ.
Хэрэв дээд гарцын нэрийн сервер нь олон асуулгад хариулдаг, хурдан үйлчилдэг
сервер байвал дээрх тохируулгыг идэвхжүүлсний үр ашиг гарна.
127.0.0.1 энд ажиллахгүй. Энэ
IP хаягийг өөрийн дээд гарцын нэрийн серверээр сольж бичнэ үү.
/*
Modern versions of BIND use a random UDP port for each outgoing
query by default in order to dramatically reduce the possibility
of cache poisoning. All users are strongly encouraged to utilize
this feature, and to configure their firewalls to accommodate it.
AS A LAST RESORT in order to get around a restrictive firewall
policy you can try enabling the option below. Use of this option
will significantly reduce your ability to withstand cache poisoning
attacks, and should be avoided if at all possible.
Replace NNNNN in the example with a number between 49160 and 65530.
*/
// query-source address * port NNNNN;
};
// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.
// The traditional root hints mechanism. Use this, OR the slave zones below.
zone "." { type hint; file "named.root"; };
/* Slaving the following zones from the root name servers has some
significant advantages:
1. Faster local resolution for your users
2. No spurious traffic will be sent from your network to the roots
3. Greater resilience to any potential root server failure/DDoS
On the other hand, this method requires more monitoring than the
hints file to be sure that an unexpected failure mode has not
incapacitated your server. Name servers that are serving a lot
of clients will benefit more from this approach than individual
hosts. Use with caution.
To use this mechanism, uncomment the entries below, and comment
the hint zone above.
*/
/*
zone "." {
type slave;
file "slave/root.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
zone "arpa" {
type slave;
file "slave/arpa.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
zone "in-addr.arpa" {
type slave;
file "slave/in-addr.arpa.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
*/
/* Serving the following zones locally will prevent any queries
for these zones leaving your network and going to the root
name servers. This has two significant advantages:
1. Faster local resolution for your users
2. No spurious traffic will be sent from your network to the roots
*/
// RFC 1912
zone "localhost" { type master; file "master/localhost-forward.db"; };
zone "127.in-addr.arpa" { type master; file "master/localhost-reverse.db"; };
zone "255.in-addr.arpa" { type master; file "master/empty.db"; };
// RFC 1912-style zone for IPv6 localhost address
zone "0.ip6.arpa" { type master; file "master/localhost-reverse.db"; };
// "This" Network (RFCs 1912 and 3330)
zone "0.in-addr.arpa" { type master; file "master/empty.db"; };
// Private Use Networks (RFC 1918)
zone "10.in-addr.arpa" { type master; file "master/empty.db"; };
zone "16.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "17.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "18.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "19.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "20.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "21.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "22.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "23.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "24.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "25.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "26.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "27.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "28.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "29.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "30.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "31.172.in-addr.arpa" { type master; file "master/empty.db"; };
zone "168.192.in-addr.arpa" { type master; file "master/empty.db"; };
// Link-local/APIPA (RFCs 3330 and 3927)
zone "254.169.in-addr.arpa" { type master; file "master/empty.db"; };
// TEST-NET for Documentation (RFC 3330)
zone "2.0.192.in-addr.arpa" { type master; file "master/empty.db"; };
// Router Benchmark Testing (RFC 3330)
zone "18.198.in-addr.arpa" { type master; file "master/empty.db"; };
zone "19.198.in-addr.arpa" { type master; file "master/empty.db"; };
// IANA Reserved - Old Class E Space
zone "240.in-addr.arpa" { type master; file "master/empty.db"; };
zone "241.in-addr.arpa" { type master; file "master/empty.db"; };
zone "242.in-addr.arpa" { type master; file "master/empty.db"; };
zone "243.in-addr.arpa" { type master; file "master/empty.db"; };
zone "244.in-addr.arpa" { type master; file "master/empty.db"; };
zone "245.in-addr.arpa" { type master; file "master/empty.db"; };
zone "246.in-addr.arpa" { type master; file "master/empty.db"; };
zone "247.in-addr.arpa" { type master; file "master/empty.db"; };
zone "248.in-addr.arpa" { type master; file "master/empty.db"; };
zone "249.in-addr.arpa" { type master; file "master/empty.db"; };
zone "250.in-addr.arpa" { type master; file "master/empty.db"; };
zone "251.in-addr.arpa" { type master; file "master/empty.db"; };
zone "252.in-addr.arpa" { type master; file "master/empty.db"; };
zone "253.in-addr.arpa" { type master; file "master/empty.db"; };
zone "254.in-addr.arpa" { type master; file "master/empty.db"; };
// IPv6 Unassigned Addresses (RFC 4291)
zone "1.ip6.arpa" { type master; file "master/empty.db"; };
zone "3.ip6.arpa" { type master; file "master/empty.db"; };
zone "4.ip6.arpa" { type master; file "master/empty.db"; };
zone "5.ip6.arpa" { type master; file "master/empty.db"; };
zone "6.ip6.arpa" { type master; file "master/empty.db"; };
zone "7.ip6.arpa" { type master; file "master/empty.db"; };
zone "8.ip6.arpa" { type master; file "master/empty.db"; };
zone "9.ip6.arpa" { type master; file "master/empty.db"; };
zone "a.ip6.arpa" { type master; file "master/empty.db"; };
zone "b.ip6.arpa" { type master; file "master/empty.db"; };
zone "c.ip6.arpa" { type master; file "master/empty.db"; };
zone "d.ip6.arpa" { type master; file "master/empty.db"; };
zone "e.ip6.arpa" { type master; file "master/empty.db"; };
zone "0.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "1.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "2.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "3.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "4.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "5.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "6.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "7.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "8.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "9.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "a.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "b.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "0.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "1.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "2.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "3.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "4.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "5.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "6.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "7.e.f.ip6.arpa" { type master; file "master/empty.db"; };
// IPv6 ULA (RFC 4193)
zone "c.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "d.f.ip6.arpa" { type master; file "master/empty.db"; };
// IPv6 Link Local (RFC 4291)
zone "8.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "9.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "a.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "b.e.f.ip6.arpa" { type master; file "master/empty.db"; };
// IPv6 Deprecated Site-Local Addresses (RFC 3879)
zone "c.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "d.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "e.e.f.ip6.arpa" { type master; file "master/empty.db"; };
zone "f.e.f.ip6.arpa" { type master; file "master/empty.db"; };
// IP6.INT is Deprecated (RFC 4159)
zone "ip6.int" { type master; file "master/empty.db"; };
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example slave zone config entries. It can be convenient to become
// a slave at least for the zone your own domain is in. Ask
// your network administrator for the IP address of the responsible
// master name server.
//
// Do not forget to include the reverse lookup zone!
// This is named after the first bytes of the IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended, or ".IP6.ARPA" for IPv6.
//
// Before starting to set up a master zone, make sure you fully
// understand how DNS and BIND work. There are sometimes
// non-obvious pitfalls. Setting up a slave zone is usually simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
/* An example dynamic zone
key "exampleorgkey" {
algorithm hmac-md5;
secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
type master;
allow-update {
key "exampleorgkey";
};
file "dynamic/example.org";
};
*/
/* Example of a slave reverse zone
zone "1.168.192.in-addr.arpa" {
type slave;
file "slave/1.168.192.in-addr.arpa";
masters {
192.168.1.1;
};
};
*/
named.conf доторх эдгээр жишээнүүд нь
ердийн болон урвуу бүсийн зарц бүртгэлүүд болно.
Шинэ бүс нэмэхдээ, named.conf файл дотор шинэ бүртгэл
оруулах хэрэгтэй.
Жишээ нь, example.org домэйны хувьд
хамгийн хялбар бүртгэл дараах байдалтай байна:
zone "example.org" {
type master;
file "master/example.org";
};
Энэ бүс нь эзэн бүс болохыг илэрхийллээс харж болно.
Мөн бүсийн мэдээллийг /etc/namedb/master/example.org файл дотор агуулж байгааг
илэрхийллээс харж болно.
zone "example.org" {
type slave;
file "slave/example.org";
};
Зарц бүсийн хувьд, тухайн бүсийн хувьд бүсийн мэдээлэл
эзэн нэрийн серверээс зөөгдөж ирэх ба зааж өгсөн файлд хадгалагдана.
Эзэн сервер унтарсан эсвэл холбоо тогтоох боломжгүй болбол,
зарц нэрийн серверт бүсийн мэдээлэл байгаа тул асуулгуудад хариулах
чадвартай байна.
Бүсийн Файлууд
BIND
бүсийн файлууд
example.org домэйны хувьд жишээ эзэн бүсийн файлыг
дор үзүүлэв (/etc/namedb/master/example.org файл):
$TTL 3600 ; 1 hour default TTL
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
300 ; Negative Reponse TTL
)
; DNS Servers
IN NS ns1.example.org.
IN NS ns2.example.org.
; MX Records
IN MX 10 mx.example.org.
IN MX 20 mail.example.org.
IN A 192.168.1.1
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5
; Aliases
www IN CNAME example.org.
.
тэмдэгтээр төгссөн хост нэрүүд нь жинхэнэ хост нэрүүд бөгөөд
.
тэмдэгтээр төгсөөгүй нэрүүдэд үүсэл залгагдахыг анхаарна уу.
Жишээлбэл, ns1 нь ns1.example.org.-руу
хөрвүүлэгдэх болно.
Бүсийн файл дараах хэлбэртэй байна:
recordname IN recordtype value
DNS
бичлэгүүд
Хамгийн өргөн хэрэглэгддэг DNS бичлэгүүд:
SOA
start of zone authority буюу бүсийн бүрэн эрхт мэдээллийн эхлэл
NS
бүрэн эрхт нэрийн сервер
A
хостын хаяг
CNAME
хуурамч дүрд өгөх хүлээн зөвшөөрөгдсөн нэр
MX
захидал солилцогч
PTR
домэйн нэрийг заагч (урвуу DNS-д хэрэглэнэ)
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
300 ) ; Negative Reponse TTL
example.org.
домэйн нэр, мөн энэ бүсийн файлын хувьд үүсэл
болно.
ns1.example.org.
энэ бүсийн гол/бүрэн эрхт нэрийн
сервер.
admin.example.org.
энэ бүсийг хариуцагч хүн, @
тэмдэгтийг нь
орлуулсан цахим захидлын хаяг.
(admin@example.org нь admin.example.org болно)
2006051501
Файлын сериал дугаар. Бүсийн файлд өөрчлөлт оруулах болгонд
энэ дугаарыг нэмэгдүүлэх шаардлагатай. Одоо цагт ихэнх админууд энэ сериал дугаарыг
yyyymmddrr хэлбэрээр хэрэглэх болсон. 2006051501 гэдэг нь
хамгийн сүүлд 05/15/2006-нд засвар хийсэн, хамгийн сүүлийн 01 гэдэг нь
энэ өдөр хийгдсэн хамгийн анхны засвар гэдгийг илтгэнэ. Энэ сериал дугаар
нь зарц серверүүдэд бүсийн мэдээлэл өөрчлөгдсөн талаар мэдээлэл өгдөг тул их чухал зүйл
байгаа юм.
IN NS ns1.example.org.
Энэ бол NS бичлэг. Тухайн бүсийн хувьд бүрэн эрхт хариултыг
өгч чадах сервер бүрийн хувьд энэ бичлэг байх ёстой.
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5
A бичлэг нь машины нэрийг заана. Дээр үзүүлсэнчлэн,
ns1.example.org нь 192.168.1.2-руу буулгагдана.
IN A 192.168.1.1
Энэ мөр нь 192.168.1.1 гэсэн IP хаягийг
үүсэлд оноож байна, бидний жишээн дээр example.org.
www IN CNAME @
Хүлээн зөвшөөрөгдсөн нэрийн бичлэг нь машинд хуурамч дүр
өгөхөд хэрэглэгдэнэ. Энэ жишээн дээр, www нь
example.org (192.168.1.1) гэсэн домэйн нэртэй
master
машины хуурамч дүрийн нэр юм. CNAME-г тухайн хостын нэрийн хувьд
өөр төрлийн бичлэгтэй хэзээ ч цуг хэрэглэж болохгүй.
MX бичлэг
IN MX 10 mail.example.org.
MX бичлэг нь аль захидлын серверүүд тухайн бүсийн захидлыг
хүлээж авах үүрэгтэй болохыг зааж өгнө. mail.example.org
нь захидлын серверийн хост нэр бөгөөд 10 нь энэ захидлын серверийн
зэрэглэлийг зааж байна.
Нэг бүсэд 10, 20 гэх мэт ялгаатай зэрэглэлтэй
хэд хэдэн захидлын сервер байж болно. example.org
домэйн руу захидал явуулах гэж байгаа сервер эхлээд
хамгийн өндөр зэрэглэлтэй MX сервертэй (хамгийн бага зэрэглэлийн дугаартай), дараа нь дараагийн хамгийн өндөр зэрэглэлтэй
сервертэй гэх мэтчилэн захидлыг явуулж чадтал дарааллаар нь холбоо тогтооно.
in-addr.arpa бүсийн файл (урвуу DNS) нь ижил хэлбэртэй байна. Ганцхан ялгаа нь
A болон CNAME бичлэгийн оронд PTR бичлэгийг хэрэглэнэ.
$TTL 3600
1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
300 ) ; Negative Reponse TTL
IN NS ns1.example.org.
IN NS ns2.example.org.
1 IN PTR example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
4 IN PTR mx.example.org.
5 IN PTR mail.example.org.
Энэ файлд дээрх домэйны IP-с хост нэр рүү буулгасан
зохих шаардлагатай буулгалтуудыг үзүүлсэн байна.
PTR бичлэгийн баруун талын бүх нэрс төгссөн байх
ёстой (өөрөөр хэлбэл .
-ээр төгссөн
байна).
Түр тогтоогч Нэрийн Сервер (Caching Name Server)
BIND
түр тогтоогч нэрийн сервер
Түр тогтоогч нэрийн сервер гэдэг нь
рекурсив хүсэлтэд хариу өгөх гол үүрэгтэй нэрийн серверийг хэлнэ.
Ийм төрлийн сервер нь зөвхөн асуулга явуулах бөгөөд
хариултыг дараа хэрэглэхээр тогтоож авдаг.
Аюулгүй байдал
Хэдийгээр BIND нь хамгийн өргөн хэрэглэгддэг DNS сервер боловч,
аюулгүй байдалтай холбоотой асуудлууд байнга тулгардаг.
Гадны халдлагад өртөж болзошгүй аюулгүй байдлын цоорхой заримдаа
олддог.
Хэдийгээр &os; named-г автоматаар &man.chroot.8; орчинд
оруулдаг боловч; DNS халдлагад ашиглаж болохуйц
хэд хэдэн механизмууд байсаар байна.
CERT-с гаргадаг аюулгүй байдлын
санамжуудыг уншихыг зөвлөж байна. Мөн &a.security-notifications;-д бүртгүүлж,
шинээр гарч байгаа Интернэт болон &os;-н аюулгүй байдлын асуудлуудын
талаар мэдээлэлтэй байхыг зөвлөе.
Хэрэв ямар нэгэн асуудал тулгарвал
эхийг байнга шинэчилж, named-г шинээр бүтээх нь тусалж болох юм.
Гүнзгийрүүлэн унших
BIND/named заавар хуудсууд:
&man.rndc.8; &man.named.8; &man.named.conf.5;
ISC BIND-н Албан ёсны Хуудас
ISC BIND-н Албан ёсны Хэлэлцүүлэг
O'Reilly
"DNS ба BIND" 5 дахь Хэвлэлт
RFC1034
- Домэйн Нэрүүд - Зарчмууд болон Боломжууд
RFC1035
- Домэйн Нэрүүд - Хэрэгжүүлэлт болон Үзүүлэлтүүд
Мюррей
Стөүкли
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
Apache HTTP Сервер
вэб серверүүд
зохион байгуулах
Apache
Удиртгал
Дэлхийн хамгийн их ачаалалтай ажилладаг
зарим вэб сайтууд &os; дээр ажилладаг. Интернэтэд ажиллаж байгаа
вэб серверүүдийн олонхи нь Apache HTTP Серверийг ашиглаж
байна. Apache програм хангамжийн багц таны FreeBSD суулгах дискэнд
орсон байгаа. Хэрэв та &os;-г анх суулгахдаа Apache-г хамт
суулгаагүй бол www/apache13 эсвэл www/apache20
портоос суулгаж болно.
Apache нэгэнт амжилттай суусан бол түүнийг тохируулах
шаардлагатай.
Apache HTTP Server-н 1.3.X хувилбар нь
&os;-д хамгийн өргөн хэрэглэгддэг тул бид энэ хэсэгт энэ хувилбарыг үзэх болно.
Apache 2.X-д олон шинэ технологи нэвтэрсэн боловч
бид энэ талаар энд үзэхгүй. Apache 2.X-н талаар
дэлгэрэнгүй мэдээллийг хаягаар орж үзнэ үү.
Тохиргоо
Apache
тохиргооны файл
&os; дээрх Apache HTTP Серверийн гол тохиргооны файл
бол /usr/local/etc/apache/httpd.conf юм. Энэ файлд,
&unix;-н текст тохиргооны файлын нэгэн адил тайлбар мөрүүдийн өмнө
# тэмдэгтийг хэрэглэдэг. Бүх боломжит тохируулгуудын
талаар дэлгэрүүлж тайлбарлах нь энэ номын хүрээнээс халих тул,
хамгийн их өөрчлөлт хийгддэг директивүүдийг энд авч үзье.
ServerRoot "/usr/local"
Энэ директив Apache суулгацын
анхдагч директор шатлалын эхийг зааж өгнө. Хоёртын файлууд
серверийн эх директорын
bin ба sbin дэд директоруудад,
тохиргооны файлууд etc/apache дэд директорт байрлана.
ServerAdmin you@your.address
Сервертэй холбоотой асуудлуудын талаар
илгээх цахим захидлын хаягийг заана. Энэ хаяг алдааны хуудсууд гэх зэрэг
сервер талаас автоматаар үүсгэгддэг зарим хуудсууд дээр
бичигдэх болно.
ServerName www.example.com
ServerName нь хост дээр тохируулагдсан хост нэрээс
өөр нэрийг сервертээ өгөх боломжийг танд олгоно (өөрөөр хэлбэл, хостын жинхэнэ
хост нэрийн оронд www-г хэрэглэх). Энэ нэрээр таны сервер харилцагч
нартай харилцах болно.
DocumentRoot "/usr/local/www/data"
DocumentRoot: Энэ директорт байгаа вэб баримтуудыг
харилцагч нарт үзүүлэх болно. Анхдагч байдлаар, бүх хүсэлтүүд энэ
директорт өгөгдөнө. Гэвч симбол холбоосууд болон хуурамч дүрүүдийг
ашиглан өөр газар руу зааж өгч болно.
Apache-н тохиргооны файлд ямар нэг
өөрчлөлт хийхээсээ өмнө нөөц хуулбарыг авч үлдэхээ мартуузай.
Тохиргоо хийж дууссан бол одоо Apache-г ажиллуулах
хэрэгтэй.
Apache-г ажиллуулах нь
Apache
эхлүүлэх ба зогсоох
Бусад олон сүлжээний орчны серверүүд
inetd супер серверээс ажилладаг бол,
Apache тэгдэггүй. Харилцагч вэб хөтчүүдээс
ирэх HTTP хүсэлтүүдэд хариулахдаа илүү өндөр үзүүлэлттэй ажиллуулахын тулд
түүнийг бие даан ажилладаг байхаар тохируулсан байдаг.
Эхлүүлэх, зогсоох болон дахин эхлүүлэх зэрэг үйлдлийг
аль болох хялбар болгохын тулд бүрхүүлийн скрипт хялбаршуулагч
хамт ирдэг. Apache-г анх удаа эхлүүлэхийн тулд, дараах
тушаалыг өгнө:
&prompt.root; /usr/local/sbin/apachectl start
Хүссэн үедээ серверийг дараах тушаалаар зогсооно:
&prompt.root; /usr/local/sbin/apachectl stop
Тохиргооны файлд өөрчлөлт оруулсны дараа,
серверийг дахин эхлүүлэх шаардлагатай:
&prompt.root; /usr/local/sbin/apachectl restart
Тогтсон холболтуудыг таслалгүйгээр Apache-г
дахин эхлүүлэхийн тулд дараах тушаалыг өгнө:
&prompt.root; /usr/local/sbin/apachectl graceful
Нэмэлт мэдээллийг &man.apachectl.8; заавар хуудаснаас авна уу.
Систем ачаалах үед Apache-г эхлүүлэхийн тулд
дараах мөрүүдийг /etc/rc.conf файлд нэмж бичнэ:
apache_enable="YES"
буюу эсвэл Apache 2.2-ийн хувьд:
apache22_enable="YES"
Хэрэв систем ачаалах үед эхэлдэг Apache
httpd програмд нэмэлт тушаалын мөрний тохируулгуудыг
оруулах хүсэлтэй бол, дараах мөрийг мөн rc.conf файлд
нэмэх хэрэгтэй:
apache_flags=""
Одоо таны вэб сервер ажиллаж байна.
Та өөрийн вэб сайтыг вэб хөтөч дээрээ http://localhost/
хаягийг оруулан харж болно. Энд гарах анхдагч вэб хуудас бол
/usr/local/www/data/index.html юм.
Давхар байршуулалт
Apache нь хоёр төрлийн давхар
байршуулах үйлчилгээг дэмждэг. Эхнийх нь
нэр дээр үндэслэсэн давхар байршуулалт юм.
Нэр дээр үндэслэсэн давхар байршуулалт дээр
хост нэрийг ялгаж мэдэхдээ харилцагчийн HTTP/1.1 толгойн хэсгийг ашигладаг.
Иим байдлаар олон өөр домэйнууд нэг IP хаягийг хуваан хэрэглэх
боломжтой болдог.
Apache дээр, нэр дээр үндэслэсэн
давхар байршуулалтыг хэрэглэхийн тулд
доор дурдсантай төстэй бүртгэлийг httpd.conf
файл дотор нэмж бичих хэрэгтэй:
NameVirtualHost *
Таны вэб серверийн нэр www.domain.tld
бөгөөд www.someotherdomain.tld нэртэй домэйныг
давхар байршуулах хүсэлтэй бол, та дараах бүртгэлийг
httpd.conf файлд нэмэх хэрэгтэй болно:
<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain.tld
</VirtualHost>
<VirtualHost *>
ServerName www.someotherdomain.tld
DocumentRoot /www/someotherdomain.tld
</VirtualHost>
Дээрх хаягуудын оронд хэрэгтэй хаягуудыг, замуудын оронд
баримтууд байгаа зохих замуудыг сольж бичнэ үү.
Давхар хостуудыг зохион байгуулах талаар
дэлгэрэнгүй мэдээллийг Apache-н албан ёсны баримтжуулалт:
-с олж үзнэ үү.
Apache Модулиуд
Apache
модулиуд
Үндсэн серверийн үүрэг функцыг сайжруулахын
тулд бүтээгдсэн Apache-н олон модулиуд байдаг.
FreeBSD Портуудын Цуглуулга нь Apache-г түүний
өргөн хэрэглэгддэг зарим модулиудын хамт хялбар суулгах
боломжийг олгодог.
mod_ssl
вэб серверүүд
аюулгүй
SSL
криптограф
mod_ssl модуль нь Secure Sockets Layer (SSL v2/v3) ба
Transport Layer Security (TLS v1) протоколоор дамжуулан өндөр
нууцлалыг хангахын тулд OpenSSL санг ашигладаг.
Энэ модуль нь батламж олгодог итгэмжлэгдсэн байгууллагаас
батламж авахын тулд шаардлагатай бүх зүйлсээр хангадаг тул
та үүнийг ашиглан &os; дээр аюулгүй вэб сервер ажиллуулж чадна.
Хэрэв та Apache-г суулгаж амжаагүй бол,
mod_ssl модулийг агуулдаг
Apache-н 1.3.X хувилбарыг www/apache13-modssl
портоос суулгаж болох юм.
Apache 2.X-н хувьд SSL дэмжлэгийг www/apache22
портоос авч болно. SSL дэмжлэг автоматаар идэвхжсэн байдаг.
Хэлний холболтууд
Ихэнх гол скрипт хэлнүүдэд зориулсан Apache-ийн
модулиуд байдаг. Эдгээр модулиуд нь
Apache-ийн модулиудыг
бүхэлд нь скрипт хэл дээр бичих боломжийг ихэвчлэн
бүрдүүлдэг. Эдгээр нь бас гадаад тайлбарлагчийг эхлүүлэх нэмэлт
зардал болон димамик вэб сайтуудын хувьд байдаг эхлүүлэх
хугацааны алдагдлыг тойрон гарах, серверт багтааж хийгдсэн
байнгын тайлбарлагч болон дараагийн хэсэгт тайлбарлагдсан
шигээр ихэвчлэн ашиглагддаг.
Динамик вэб сайтууд
web servers
dynamic
Сүүлийн 10 жилд, өөрийн ашиг орлогыг нэмэгдүүлэх,
хүмүүст хүрэх зорилгоор илүү олон компаниуд
бизнесээ Интернэтээр явуулах болжээ. Энэ нь
динамик агуулгатай вэб хуудсууд төрөн гарах
хэрэгцээ шаардлагыг улам нэмэгдүүлсэн. µsoft; гэх мэт зарим компаниуд
ч өөрийн бүтээгдэхүүнүүдэд тэдгээрээс оруулах болсон хэдий ч,
нээлттэй эхийн нэгдэл энэ асуудалд хариу өгсөн юм. Динамик вэб агуулгыг
бий болгох орчин үеийн боломжууд бол Django, Ruby on Rails,
mod_perl болон
mod_php юм.
Django
Python
Django
Django нь өндөр ажиллагаатай, гоёмсог вэб програмыг
хурдан бичих боломжийг хөгжүүлэгчдэд олгохоор хийгдсэн,
BSD лицензтэй тогтолцоо юм. Энэ нь өгөгдлийн төрлүүд
Python обьект хэлбэрээр хөгжүүлэгддэг байхаар болгосон
обьектийн харилцааг оноогчтой бөгөөд тэдгээр обьектуудад зориулсан
хөгжүүлэгчдэд SQL бичих шаардлагагүй болгож өгдөг, баялаг
динамик өгөгдлийн сангийн хандалтын API-тай юм. Энэ нь бас
програмын логикийг HTML үзүүлбэрээс тусгаарлах боломжийг
бүрдүүлэх нэмэлт загварын системтэй байдаг.
Django нь mod_python,
Apache, болон таны сонгосон SQL өгөгдлийн
сангийн хөдөлгүүрээс хамаардаг. FreeBSD порт нь эдгээр бүх
хамаарлуудыг тохирсон сонголтуудтай нь танд суулгаж өгөх болно.
Django-г Apache2, mod_python3, болон PostgreSQL-тэй суулгах нь
&prompt.root; cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL
Django болон бусад хамаарлууд суулгагдсаны дараа та
Django төслийн санг үүсгэх хэрэгтэй бөгөөд өөрийн сайт дээрх
тухайн URL дээр өөрийн програмыг дуудахын тулд суулгагдсан
Python тайлбарлагчийг ашиглахаар болгож Apache-г тохируулах хэрэгтэй.
Django/mod_python-д зориулсан Apache-ийн тохиргоо
Та өөрийн вэб програм руу тодорхой URL-уудад зориулсан
хүсэлтүүдийг дамжуулахаар Apache-г тохируулахын тулд
apache-ийн httpd.conf файлд мөр
нэмэх шаардлагатай:
<Location "/">
SetHandler python-program
PythonPath "['/dir/to/your/django/packages/'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAutoReload On
PythonDebug On
</Location>
Ruby on Rails
Ruby on Rails
Ruby on Rails нь бүрэн гүйцэд хөгжүүлэлтийн стекийн
боломжийг олгодог бөгөөд вэб хөгжүүлэгчдийг хүчирхэг
програмыг хурдан шуурхай, илүү үр бүтээлтэй бичдэг байхаар
оновчлогдсон, нээлттэй эхийн вэб тогтолцоо юм. Үүнийг портын
системээс хялбараар суулгаж болно.
&prompt.root; cd /usr/ports/www/rubygem-rails; make all install clean
mod_perl
mod_perl
Perl
Apache/Perl нэгтгэх төсөл
Perl програмчлалын хэл ба Apache HTTP Серверийн
бүх хүч чадлыг нэгтгэсэн юм. mod_perl модулийн
тусламжтай Apache модулиудыг тэр чигээр нь
Perl дээр бичих боломжтой. Дээр нь, серверт суулгасан
шургуу хөрвүүлэгч, гадны хөрвүүлэгч ашиглах илүү ажил болон
Perl эхлүүлэх хугацааны алдагдлаас зайлсхийж чадсан юм.
mod_perl-г хэд хэдэн янзаар хэрэглэж болно.
mod_perl-г хэрэглэж эхлэхээс өмнө
mod_perl 1.0 зөвхөн Apache 1.3-тай ажилладаг,
mod_perl 2.0 зөвхөн Apache 2.X-тэй ажилладаг гэдгийг
санаарай. mod_perl 1.0-г www/mod_perl портоос,
түүний статикаар эмхэтгэсэн хувилбарыг www/apache13-modperl
портоос суулгаж болно. mod_perl 2.0-г
www/mod_perl2 портоос суулгаж болно.
Том
Рөүдс
Бичсэн
Лодойсамбын
Баянзул
Орчуулсан
mod_php
mod_php
PHP
PHP буюу PHP:Hypertext Preprocessor
бол
вэб хөгжүүлэлтэд тусгайлан тохируулсан, энгийн хэрэглээний
скрипт хэл юм. HTML дотор суулгах боломжтой түүний
синтакс C, &java;, ба Perl-с гаралтай. Энэ нь вэб хөгжүүлэгчдэд
динамикаар үүсгэгдэх вэб хуудсыг хурдан бичих боломжтой болгох
үүднээс тэгсэн хэрэг.
Apache вэб серверийг
PHP5-г дэмждэг болгохын тулд, lang/php5
портыг суулгаж эхлэх хэрэгтэй.
Хэрэв lang/php5 портыг
анх удаа суулгаж байгаа бол, боломжит
ТОХИРУУЛГУУД автоматаар дэлгэцэн дээр гарч ирнэ.
Хэрэв цэс гарч ирэхгүй бол, өөрөөр хэлбэл
lang/php5 портыг өмнө нь хэзээ нэгэн цагт
суулгаж байсан бол, тохируулгуудын харилцах цонхыг гаргаж ирэхийн тулд
дараах тушаалыг:
&prompt.root; make config
порт директор дотор өгөх хэрэгтэй.
Тохируулгуудын харилцах цонхонд,
mod_php5-г Apache-н
ачаалах боломжтой модуль байдлаар бүтээхийн тулд
APACHE тохируулгыг идэвхжүүлнэ.
Олон сайтууд PHP4-г янз бүрийн шалтгааны улмаас
(өөрөөр хэлбэл, нийцтэй байдал эсвэл аль хэдийн үйлчилгээнд гаргачихсан
вэб програмууд) ашигласаар байна. Хэрэв
mod_php4-г mod_php5-н оронд ашиглах
шаардлагатай бол, lang/php4 портыг ашиглаарай.
lang/php4 порт нь lang/php5 портод
байдаг тохиргооны болон бүтээх үеийн олон тохируулгуудыг дэмждэг.
Энэ хэсэг код динамик PHP програмыг дэмждэг болгоход
шаардлагатай модулиудыг суулгаж тохируулах болно. Доорх мөрүүд
/usr/local/etc/apache/httpd.conf файл дотор нэмэгдсэн эсэхийг шалгаарай:
LoadModule php5_module libexec/apache/libphp5.so
AddModule mod_php5.c
<IfModule mod_php5.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
Үүний дараа, PHP модулийг ачаалахын тулд,
дараах тушаалыг өгч серверийг дахин ачаалах хэрэгтэй:
&prompt.root; apachectl graceful
Дараа, PHP-н хувилбарыг дээшлүүлэх үедээ,
make config тушаалыг өгөх шаардлагагүй;
идэвхжүүлсэн ТОХИРУУЛГУУД &os; Портуудын
тогтолцоонд автоматаар хадгалагдсан байгаа.
&os;-н PHP дэмжлэг нь дээд зэргээр
модульчлагдсан тул үндсэн суулгац нь маш хязгаарлагдмал
байдаг. lang/php5-extensions портыг ашиглан дэмжлэг
нэмэх нь үнэхээр амархан асуудал. PHP өргөтгөлийг суулгах явцад,
энэ порт танд цэсээс тогтсон интерфэйсийг санал болгоно. Өөрөөр,
өргөтгөлүүдийг нэг нэгээр нь харгалзах портуудаас суулгаж болно.
Жишээлбэл, PHP5-д MySQL өгөгдлийн
сангийн серверийн дэмжлэгийг нэмэхийн тулд,
databases/php5-mysql портыг суулгахад хангалттай.
Ямар нэг өргөтгөл суулгасны дараа,
тохиргооны өөрчлөлтийг хүчин төгөлдөр болгохын тулд Apache
серверийг дахин ачаалах шаардлагатайг анхаарна уу:
&prompt.root; apachectl graceful
Мюррей
Стөүкли
Хувь нэмрээ оруулсан
Файл Дамжуулах Протокол (FTP)
FTP серверүүд
Удиртгал
File Transfer Protocol буюу Файл Дамжуулах Протокол (FTP) нь хэрэглэгчдэд
FTP серверээс файлыг авах болон тавих хялбар
замыг бий болгодог. &os; үндсэн систем дотроо FTP
сервер програм ftpd-г агуулж байдаг. Энэ нь FreeBSD дээр
FTP серверийг босгох, удирдах ажлыг төвөггүй болгодог.
Тохиргоо
Тохиргоо хийхийн өмнөх хамгийн чухал алхам бол
ямар дансууд FTP серверт хандах эрхтэй байх вэ гэдгийг шийдэх байдаг.
Ердийн FreeBSD систем нь янз бүрийн дэмонуудад хэрэглэгддэг
олон тооны системийн дансуудтай байдаг ба гадны хэрэглэгчид
эдгээр дансыг ашиглан нэвтрэх ёсгүй. /etc/ftpusers файл дотор
FTP хандалт зөвшөөрөгдөөгүй хэрэглэгчдийн жагсаалтыг хадгална.
Анхдагч байдлаар, дээр дурдсан системийн дансууд энэ файлд байна.
FTP хандалтыг зөвшөөрөх ёсгүй өөр хэрэглэгчдийг ч мөн энэ файлд
нэмж болно.
Зарим хэрэглэгчдийн FTP хэрэглэхийг нь бүр болиулчихалгүйгээр,
зөвхөн зарим нэг эрхийг нь хязгаарлаж бас болно. Үүнийг
/etc/ftpchroot файлын тусламжтай гүйцэтгэж болно.
Энэ файл дотор FTP хандалтыг нь хязгаарлах хэрэглэгчид болон
бүлгүүдийн жагсаалт байна. &man.ftpchroot.5; заавар хуудсанд
бүх мэдээлэл байгаа тул энд дурдсангүй.
FTP
нийтийн
Хэрэв сервертээ нийтийн FTP хандалтыг зөвшөөрөх хүсэлтэй байгаа бол,
&os; систем дээрээ ftp нэртэй хэрэглэгч нэмэх хэрэгтэй.
Ингэснээр хэрэглэгчид таны FTP сервер рүү ftp эсвэл
anonymous гэсэн нэрээр ямар ч нэвтрэх үг шаардагдахгүйгээр
(тогтсон заншил ёсоор хэрэглэгч цахим шуудангийн хаягаа
нэвтрэх үгийн оронд хэрэглэх шаардлагатай) нэвтрэн орох болно.
Нийтийн хэрэглэгч системд орж ирэхэд FTP сервер түүний эрхийг
зөвхөн ftp хэрэглэгчийн гэрийн сан дотор
хязгаарлахын тулд &man.chroot.2;-г дуудна.
FTP харилцагчдад зориулсан мэндчилгээний үгнүүдийг
агуулсан хоёр текст файл байдаг. /etc/ftpwelcome файл
дотор байгааг нэвтрэлт хүлээх мөр гарахаас өмнө хэрэглэгчдэд дэлгэцэн дээр
хэвлэнэ. Амжилттай нэвтэрч орсны дараа /etc/ftpmotd файл
дотор байгааг дэлгэцэн дээр хэвлэнэ. Энэ файлын зам нь
нэвтэрч орсон орчинтой харьцангуйгаар авсан зам гэдгийг
анхаарна уу, тиймээс нийтийн хэрэглэгчдийн хувьд
~ftp/etc/ftpmotd файлыг хэвлэх болно.
FTP серверийн тохиргоог зохих ёсоор хийсний дараа,
/etc/inetd.conf файл дотор идэвхжүүлэх хэрэгтэй.
Үүний тулд, ftpd гэсэн мөрний өмнөх #
тэмдэгтийг арилгахад хангалттай:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
хэсэгт тайлбарласан ёсоор
энэ тохиргооны файлд өөрчлөлт оруулсны дараа
inetd-г дахин ачаалах шаардлагатай. Өөрийн
систем дээр inetd-г идэвхжүүлэх талаар
дэлгэрэнгүйг -с үзнэ үү.
Мөн ftpd-ийг дангаар нь ажиллуулахаар
тохируулж болно. Энэ тохиолдолд /etc/rc.conf файлд
тохирох хувьсагчийг тохируулахад хангалттай байдаг:
ftpd_enable="YES"
Дээрх хувьсагчийг тохируулсны дараа сервер дараачийн ачаалалт хийхэд
ажиллах боломжтой болох бөгөөд эсвэл дараах тушаалыг root
эрхээр ажиллуулан эхлүүлж болно:
&prompt.root; /etc/rc.d/ftpd start
Одоо та дараах тушаалыг өгөн FTP сервер рүү нэвтрэн орж болно:
&prompt.user; ftp localhost
Арчилгаа
syslog
бүртгэлийн файлууд
FTP
ftpd дэмон бүртгэл хөтлөхдөө &man.syslog.3;-г ашигладаг.
Анхдагч байдлаар, системийн бүртгэлийн дэмон FTP-тэй холбоотой
зурвасуудыг /var/log/xferlog файлд бичнэ. FTP бүртгэлийн файлын
байршлыг өөрчлөхийн тулд /etc/syslog.conf файл дотор, дараах
мөрийг засах хэрэгтэй:
ftp.info /var/log/xferlog
FTP
нийтийн
Нийтийн FTP сервер ажиллуулахад тохиолдох
болзошгүй асуудлуудын талаар мэдлэгтэй байгаарай.
Ялангуяа, нийтийн хэрэглэгчдэд файл байршуулахыг
зөвшөөрөх тухайд сайн бодох хэрэгтэй. Таны FTP сайт
лицензгүй програм хангамжуудыг наймаалцдаг талбар болох, эсвэл түүнээс ч
муу зүйл тохиолдохыг үгүйсгэхгүй. Хэрэв нийтийн FTP байршуулалтыг
зөвшөөрөх шаардлагатай бол, файлуудыг нягталж үзэхээс нааш
бусад нийтийн хэрэглэгчид тэдгээр файлыг унших эрхгүй байхаар
тохируулж өгөх хэрэгтэй.
Мюррей
Стөүкли
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
µsoft.windows; харилцагчдад зориулсан Файл болон Хэвлэх Үйлчилгээ (Samba)
Samba сервер
Microsoft Windows
файл сервер
Windows харилцагчид
хэвлэх сервер
Windows харилцагчид
Ерөнхий Агуулга
Samba бол µsoft.windows; харилцагчдад
файл болон хэвлэх үйлчилгээг үзүүлдэг, өргөн хэрэглэгддэг
нээлттэй эхийн програм хангамжийн багц юм. Ийм төрлийн харилцагчид
FreeBSD файлын орчинд холбогдож, файлуудыг өөрийн дискэн дээр байгаа юм шиг,
эсвэл FreeBSD хэвлэгчийг өөрийн дотоод хэвлэгч шиг хэрэглэх боломжтой болдог.
Samba програм хангамжийн багцууд таны FreeBSD суулгах
дискэнд орсон байгаа. Хэрэв та анх FreeBSD суулгахдаа
Samba-г хамт суулгаагүй бол, net/samba3
порт эсвэл багцаас суулгаж болно.
Тохиргоо
Samba-н анхдагч тохиргооны файл
/usr/local/share/examples/samba/smb.conf.default гэж суугдсан байдаг. Энэ файлыг /usr/local/etc/smb.conf
нэртэй хуулаад, Samba-г ашиглаж
эхлэхээсээ өмнө өөртөө тааруулан засварлах ёстой.
smb.conf файл нь &windows; харилцагчтай хуваалцах
хүсэлтэй файл системийн хэсэг
ба хэвлэгчийн тодорхойлолт гэх зэрэг
Samba-н ажиллах үеийн тохиргооны мэдээллийг агуулж байдаг.
Samba багц дотор smb.conf файл дээр ажиллах хялбар
арга замыг хангасан swat нэртэй вэб дээр суурилсан
хэрэгсэл хамт ирдэг.
Samba-г Вэбээр Удирдах Хэрэгсэл (SWAT)
Samba Web Administration Tool буюу Samba-г Вэбээр Удирдах Хэрэгсэл (SWAT)
нь inetd-н дэмон хэлбэрээр ажиллана.
Тиймээс, Samba-г swat
ашиглан тохируулахын өмнө /etc/inetd.conf доторх
дараах мөрийг ил гаргах шаардлагатай:
swat stream tcp nowait/400 root /usr/local/sbin/swat swat
хэсэгт тайлбарласан ёсоор,
энэ тохиргооны файлд өөрчлөлт оруулсны дараа
inetd-ийн тохиргоог дахин ачаалах шаардлагатай.
swat-г inetd.conf дотор идэвхжүүлсний
дараа, вэб хөтөч ашиглан хаяганд холбогдоно.
Та эхлээд системийн root дансаар нэвтэрч орох ёстой.
Samba-н тохиргооны үндсэн хуудсанд
амжилттай нэвтэрч орсон бол, системийн баримтуудаар аялах,
эсвэл Globals цэсэн дээр дарж тохиргоог хийх боломжтой болно.
Globals хэсэг /usr/local/etc/smb.conf файлын
[global] хэсэгт байгаа хувьсагчдад харгалзана.
Глобал тохиргоо
swat-г хэрэглэж байгаа эсвэл
/usr/local/etc/smb.conf-г гараараа засаж байгаа аль нь ч бай,
Samba-г тохируулах явцад тааралдах хамгийн эхний
директивууд бол:
workgroup
Энэ нь сервер рүү хандах компьютеруудын NT Домэйн-Нэр эсвэл
Ажлын бүлгийн-Нэр.
netbios name
NetBIOS
Энэ директив Samba серверийн NetBIOS нэрийг заана.
Анхдагч байдлаар, хостын DNS нэрийн эхний хэсэгтэй адил байна.
серверийн мөр
Энэ директив net view тушаалын хариуд
гарч ирэх эсвэл зарим сүлжээний хэрэгслүүд дээр энэ серверийг
төлөөлж гарах мөрийг заана.
Аюулгүй байдлын Тохиргоо
/usr/local/etc/smb.conf доторх
хамгийн чухал хоёр тохиргоо бол аюулгүй байдлын загвар,
болон харилцагчдын нэвтрэх үгийн арын шугамны хэлбэр юм.
Дараах директивүүд эдгээр тохируулгуудыг хянана:
security
Энд хамгийн элбэг хэрэглэгддэг хоёр сонголт бол
security = share ба security = user юм. Хэрэв танай харилцагч нар
&os; машин дээр хэрэглэдэг хэрэглэгчийн нэртэй ижил нэрийг ашигладаг бол,
user түвшний аюулгүй байдлыг сонгохыг хүсэж байж магадгүй. Энэ бол
аюулгүй байдлын анхдагч бодлого бөгөөд эх үүсвэрт хандахаас өмнө харилцагчийг
системд нэвтэрч орохыг шаардана.
share түвшний аюулгүй байдалд, харилцагчид эх үүсвэрт хандахаас өмнө
хүчин төгөлдөр хэрэглэгчийн нэр болон нэвтрэх үгээр сервер рүү нэвтрэн орох
шаардлагагүй байдаг. Энэ бол Samba-н хуучин хувилбаруудын хувьд
аюулгүй байдлын анхдагч загвар байсан.
passdb backend
NIS+
LDAP
SQL өгөгдлийн сан
Samba-д хэд хэдэн төрлийн
арын шугамны магадлах загварууд байдаг. Харилцагчдыг
LDAP, NIS+, SQL өгөгдлийн сан, эсвэл хувиргасан нэвтрэх үгийн файлаар
магадлаж болно. Анхдагч магадлах арга бол smbpasswd бөгөөд
бид зөвхөн энэ талаар авч үзэх болно.
Анхдагч smbpasswd арын шугамыг хэрэглэж байгаа гэж үзвэл,
Samba харилцагчдыг магадлахын тулд
/usr/local/private/smbpasswd файлыг эхлээд үүсгэх ёстой.
Хэрэв &unix; хэрэглэгчийн эрхээр &windows; харилцагчаас ханддаг байх шаардлагатай бол,
дараах тушаалыг хэрэглэнэ:
&prompt.root; smbpasswd -a username
Samba 3.0.23c-аас эхлээд нэвтрэлтийн
файлуудад зориулсан сан нь /usr/local/etc/samba
сан юм. Энэ үед санал болгодог арын мэдээллийн сан нь tdbsam бөгөөд
хэрэглэгчийн бүртгэлийг нэмэхийн тулд дараах тушаалыг ашиглах ёстой:
&prompt.root; pdbedit username
Тохируулгуудын талаар нэмэлт мэдээллийг
Албан ёсны Samba HOWTO-с олж авна уу.
Энд цухас дурдсан үндсэн мэдлэгтэйгээр Samba-г ажиллуулж
эхлэх чадвартай байх ёстой.
Samba-г Эхлүүлэх нь
net/samba3 портод Samba-г
удирдахад зориулсан шинэ эхлэл скрипт орсон байгаа. Энэ
скриптийг идэвхжүүлэхийн тулд, өөрөөр хэлбэл энэ скриптийг ашиглан
Samba-г эхлүүлэх, зогсоох болон дахин эхлүүлдэг болохын тулд,
/etc/rc.conf файл дотор дараах мөрийг нэмж бичих хэрэгтэй:
samba_enable="YES"
Эсвэл илүү нарийнаар доор дурдсан шиг тохируулж болно:
nmbd_enable="YES"
smbd_enable="YES"
Ингэснээр мөн Samba-г систем ачаалах үед автоматаар
эхлүүлдэг болгоно.
Үүний дараа хүссэн үедээ Samba-г эхлүүлэхийн тулд
дараах тушаалыг өгөхөд хангалттай:
&prompt.root; /usr/local/etc/rc.d/samba start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.
rc скриптийг ашиглах талаар дэлгэрэнгүй мэдээллийг
хэсгээс авна уу.
Samba нь үнэн хэрэгтээ гурван тусдаа дэмоноос
тогтоно. nmbd ба smbd дэмонууд
samba скриптээр эхлүүлдэг болохыг та анзаарах болно.
Хэрэв smb.conf дотор winbind нэр тайлах үйлчилгээг идэвхжүүлсэн бол
winbindd дэмон бас ажиллаж эхэлсэн болохыг харж болно.
Samba-г хүссэн үедээ зогсоохын тулд дараах тушаалыг өгөхөд
хангалттай:
&prompt.root; /usr/local/etc/rc.d/samba stop
Samba бол µsoft.windows; сүлжээтэй өргөн хүрээнд
нэгдмэл ажиллах боломжийг олгодог нарийн төвөгтэй програмын цогц юм.
Энд тайлбарласан үндсэн суулгацаас хальсан функцуудын талаар дэлгэрэнгүй
мэдээллийг хаягаар орж авна уу.
Том
Хөүкинс
Хувь нэмрээ оруулсан
Лодойсамбын
Баянзул
Орчуулсан
NTP-р Цаг Тааруулах нь
NTP
Ерөнхий Агуулга
Цаг хугацаа өнгөрөхөд компьютерийн цаг зөрөх хандлагатай байдаг.
Network Time Protocol буюу Сүлжээний Цагийн Протоколыг(NTP) цагийг зөв байлгах, зөв ажиллуулахад
хэрэглэдэг.
Олон тооны Интернэт үйлчилгээнүүд компьютерийн цагаас хамаарч,
эсвэл хүртэж ажилладаг. Жишээлбэл, вэб сервер тодорхой цагаас хойш
өөрчлөлт орсон файлуудыг илгээх хүсэлт хүлээн авсан байж болох юм. Дотоод сүлжээний
орчинд, нэг файл серверээр үйлчлүүлж байгаа компьютеруудын хувьд
файлын цагийн тамга дүйж байхын тулд тэдгээрийн цагууд хоорондоо
тохирч байх ёстой. &man.cron.8; зэрэг үйлчилгээнүүд тодорхой цагт тушаалыг
гүйцэтгэхийн тулд системийн цагт бүрэн найдаж ажилладаг.
NTP
ntpd
FreeBSD &man.ntpd.8; NTP серверийн хамт ирдэг.
&man.ntpd.8; NTP нь таны машины цагийг тааруулахын тулд
бусад NTP серверүүдээс асуух эсвэл бусдад цагийн
мэдээллийг түгээх үйлчилгээг үзүүлдэг.
Зохимжтой NTP Серверийг Сонгох нь
NTP
серверийг сонгох нь
Цагаа тааруулахын тулд, та нэг болон түүнээс дээш тооны
NTP серверийг хэрэглэх хэрэгтэй болно.
Танай сүлжээний администратор эсвэл ISP үүнд зориулсан
NTP сервертэй байж болох юм—тийм эсэхийг тэдний заавраас шалгана уу.
нийтэд зориулсан NTP серверүүдийн
онлайн жагсаалтыг ашиглан өөртөө ойрхон байгаа NTP серверийг
олно уу. Сонгож авсан серверийнхээ ашиглах журмыг судлаарай.
Мөн хэрэв шаардлагатай бол зөвшөөрөл аваарай.
Таны сонгосон сервер холбогдох боломжгүй,
эсвэл цаг нь бүрэн итгэж болохооргүй үе гарах тул,
хоорондоо хамааралгүй хэд хэдэн NTP серверүүдийг сонгох нь хамгийн зөв
сонголт болдог. &man.ntpd.8; бусад серверээс хүлээн авсан
хариултуудыг маш ухаалгаар хэрэглэдэг—итгэж болох серверүүдийг
илүү авч үздэг.
Өөрийн Машиныг Тохируулах нь
NTP
тохиргоо
Үндсэн Тохиргоо
ntpdate
Хэрэв та машин асахад цагаа тааруулах хүсэлтэй
байгаа бол, &man.ntpdate.8;-г ашиглаж болно. Энэ нь олон дахин тааруулах
шаардлагагүй, ойр ойрхон асааж унтраадаг ширээний компьютерийн
хувьд зохимжтой байж болох юм. Гэхдээ ихэнх машины хувьд
&man.ntpd.8;-г ажиллуулах нь зүйтэй.
Систем ачаалах үед &man.ntpdate.8;-г ашиглах нь
&man.ntpd.8; ажиллаж байгаа машинуудын хувьд зөв санаа юм.
Учир нь &man.ntpd.8; програм нь цагийг алгуур өөрчилдөг байхад,
&man.ntpdate.8; машины одоогийн цаг болон зөв цагын хооронд
хир их ялгаа байгааг үл хайхран цагийг тааруулдаг.
&man.ntpdate.8;-г систем ачаалах үед идэвхжүүлэхийн тулд,
ntpdate_enable="YES" гэсэн мөрийг /etc/rc.conf файлд
нэмэх хэрэгтэй. Мөн цаг авах гэж байгаа бүх серверүүд болон
&man.ntpdate.8;-д өгөх тугуудыг ntpdate_flags-д зааж өгөх хэрэгтэй.
NTP
ntp.conf
Ерөнхий Тохиргоо
NTP-г /etc/ntp.conf файлын тусламжтай,
&man.ntp.conf.5;-д заасан хэлбэрээр тохируулна. Доор хялбар жишээг
үзүүлэв:
server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.drift
server тохируулгаар
ямар серверүүдийг ашиглахыг заана. Нэг мөрөнд нэг серверийг бичнэ.
Хэрэв аль нэг серверийг prefer гэсэн аргументаар
онцолсон бол, ntplocal.example.com шиг, тэр серверийг
бусдаас илүүд үзнэ. Илүүд үзсэн серверээс ирсэн хариу
бусад серверүүдийн хариунаас мэдэгдэхүйцээр
зөрж байгаа үед хариуг тоохгүй өнгөрөөнө. Түүнээс бусад тохиолдолд
бусад серверийн хариуг үл харгалзан тэр серверийн хариуг
хэрэглэх болно. prefer аргументийг ер нь
өндөр нарийвчлалтай, тусгай цаг хянадаг тоног төхөөрөмж дээр тулгуурласан NTP
серверийн хувьд хэрэглэнэ.
driftfile тохируулгаар
ямар файлд системийн цагийн алдах зөрүү утгыг хадгалж байгааг заана.
&man.ntpd.8; програм энэ утгыг ашиглан цагийн алдсан зөрүүг автоматаар нөхнө.
Ингэснээр цагийн бүх гадаад эх үүсвэрүүдтэй холбоо тогтоох боломжгүй болсон
үед, хэсэг хугацааны туршид ч гэсэн цагийг харьцангуй зөв ажиллуулах боломжийг
олгоно.
driftfile тохируулгаар ямар файлд таны зааж өгсөн
NTP серверүүдийн өмнөх хариунуудын тухай мэдээллийг
хадгалж байгааг заана. Энэ файлд NTP-н дотоод үйл ажиллагааны мэдээллийг
хадгалдаг. Энэ мэдээллийг өөр ямар ч процесс өөрчлөх ёсгүй.
Өөрийн Сервер рүү Хандах Хандалтыг Хянах нь
Анхдагч байдлаар, таны NTP сервер рүү Интернэтэд байгаа бүх хост
хандах боломжтой. /etc/ntp.conf файл дотор
restrict тохируулгаар ямар машинууд таны сервер рүү хандаж болохыг
хянаж болно.
Хэрэв та өөрийн NTP сервер рүү хэнийг ч хандуулахыг хүсэхгүй байгаа бол
/etc/ntp.conf файл дотор дараах мөрийг нэмэх хэрэгтэй:
restrict default ignore
Энэ нь таны серверээс өөрийн чинь локал тохиргоонд жагсаагдсан
аль ч сервер үрүү хандах боломжийг бас хаана.
Хэрэв та өөрийн NTP серверийг гадаад NTP сервертэй
синхрончлох хэрэгтэй бол ямар нэг серверийг зөвшөөрөх
ёстой. Дэлгэрэнгүй мэдээллийг &man.ntp.conf.5; гарын авлагаас
үзнэ үү.
Хэрэв та зөвхөн өөрийн сүлжээнд байгаа машинуудыг
таны сервертэй цагаа тааруулахыг зөвшөөрөөд, гэхдээ
таны серверийн тохиргоог өөрчлөх болон тэгш эрхтэй серверүүд шиг
цагийн мэдээллийг хуваахыг зөвшөөрөхгүй бол дээр дурдсаны оронд:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
гэсэн мөрийг бичнэ үү. Энд 192.168.1.0 нь таны сүлжээний
IP хаяг, 255.255.255.0 нь таны сүлжээний баг болно.
/etc/ntp.conf дотор олон тооны restrict
тохируулгууд байж болно. Илүү дэлгэрэнгүй мэдээллийг &man.ntp.conf.5;-н
Хандалтыг Удирдах Дэмжлэг дэд хэсгээс үзнэ үү.
NTP Серверийг Ажиллуулах нь
NTP серверийг систем ачаалах үед эхлүүлэхийн тулд,
ntpd_enable="YES" гэсэн мөрийг /etc/rc.conf файлд нэмж бичих
хэрэгтэй. Хэрэв &man.ntpd.8;-д нэмэлт тугуудыг өгөх хүсэлтэй бол,
/etc/rc.conf файлд байгаа ntpd_flags параметрийг засах хэрэгтэй.
Машиныг дахин ачаалалгүйгээр серверийг эхлүүлэхийн тулд,
ntpd тушаалыг /etc/rc.conf-д заасан
ntpd_flags нэмэлт параметрүүдийн хамтаар өгөх хэрэгтэй. Жишээлбэл:
&prompt.root; ntpd -p /var/run/ntpd.pid
ntpd-г Түр зуурын Интернэт Холболттой үед Хэрэглэх нь
&man.ntpd.8; програм зөв ажиллахын тулд байнгын Интернэт
холболт шаардлагагүй. Гэхдээ, хэрэгцээтэй үедээ гадагшаа залгадаг
тийм төрлийн түр зуурын холболттой бол, NTP трафикийг
гадагшаа залгах болон холболтыг бариад байхаас сэргийлэх нь чухал.
Хэрэв та PPP хэрэглэдэг бол, /etc/ppp/ppp.conf файл дотор байгаа
filter директивийг ашиглаж болно. Жишээ нь:
set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0
Дэлгэрэнгүй мэдээллийг &man.ppp.8;-н PACKET FILTERING
хэсгээс болон /usr/share/examples/ppp/-д байгаа жишээнүүдээс авч болно.
Зарим Интернэт үйлчилгээ үзүүлэгчид бага дугаартай портуудыг хаасан байдаг бөгөөд
ингэснээр хариу нь таны машинд хэзээ ч хүрэхгүй болж NTP ажиллахгүй болдог.
Цааших Мэдээлэл
NTP серверийн баримтжуулалтыг HTML хэлбэрээр
/usr/share/doc/ntp/-с олж үзэж болно.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
syslogd ашиглан алсын хост руу бүртгэх нь
Системийн бүртгэлтэй ажиллах нь аюулгүй байдлын болоод системийг
удирдах ажиллагааны чухал асуудал юм. Хостууд дунд зэргийн эсвэл том
сүлжээнд тархсан эсвэл тэдгээр нь төрөл бүрийн олон янзын сүлжээний хэсэг
болсон байх тохиолдолд эдгээр олон хостын бүртгэлийн файлуудыг
монитор хийх нь ихээхэн төвөгтэй болдог. Энэ тохиолдолд алсаас бүртгэхийг
тохируулах нь бүх л процессийг илүү тухтай болгодог.
Тусгайлан заасан бүртгэх хост руу төвлөрүүлэн бүртгэх нь бүртгэлийн
файлын удирдлагатай холбоотой зарим хүндрэлүүдийг багасгаж чаддаг.
&man.syslogd.8; болон &man.newsyslog.8; зэрэг &os;-ийн эх хэрэгслүүдийг
ашиглан бүртгэлийн файлын цуглуулга, нийлүүлэлт болон багасгалтыг нэг газар тохируулж
болдог. Дараах жишээ тохиргоонд logserv.example.com
гэж нэрлэгдсэн хост A локал сүлжээнээс бүртгэлийн мэдээллийг
цуглуулах болно. logclient.example.com гэж
нэрлэгдсэн хост B бүртгэлийн мэдээллийг сервер систем рүү
дамжуулах болно. Жинхэнэ тохиргоонд эдгээр хостууд зохих дамжуулах болон буцах
DNS эсвэл /etc/hosts файлд
оруулгууд шаардана. Тэгэхгүй бол өгөгдлийг сервер хүлээн авахгүй татгалзах
болно.
Бүртгэлийн серверийн тохиргоо
Бүртгэлийн серверүүд нь алсын хостуудаас бүртгэлийн мэдээллийг хүлээн
авахаар тохируулагдсан машинууд юм. Ихэнх тохиолдолд энэ нь тохиргоог
хялбар болгох зорилготой бөгөөд зарим тохиолдолд энэ нь удирдлагыг арай
сайжруулж байгаа хэлбэр байж болох юм. Аль ч шалтгаан байсан гэсэн
үргэлжлүүлэхээсээ өмнө цөөн хэдэн шаардлагыг дурдъя.
Зөв тохируулсан бүртгэлийн сервер дараах хамгийн бага шаардлагыг хангасан
байх шаардлагатай:
Клиент болон сервер дээр 514-р порт руу
UDP-г дамжуулах боломжийг бүрдүүлэх галт хананы
дүрэм;
Клиент машинаас алсын мэдэгдлүүдийг хүлээн авахаар syslogd
тохируулагдсан байх;
syslogd сервер болон бүх клиент машинууд нь дамжуулах
болон буцах DNS-ийн хувьд зөв оруулгуудтай
эсвэл /etc/hosts файлд зөв тохируулсан
байх шаардлагатай.
Бүртгэлийн серверийг тохируулахын тулд клиент нь
/etc/syslog.conf-д нэмэгдсэн байх
ёстой бөгөөд бүртгэх боломжийг зааж өгсөн байх шаардлагатай:
+logclient.example.com
*.* /var/log/logclient.log
Төрөл бүрийн дэмжигдсэн, байгаа facility
буюу боломжуудын талаарх дэлгэрэнгүй мэдээллийг
&man.syslog.conf.5; гарын авлагын хуудаснаас олж болно.
Нэмсэний дараа бүх facility мэдэгдлүүд
өмнө заасан /var/log/logclient.log файл руу
бүртгэгдэх болно.
Сервер машин дараах тохиргоог бас /etc/rc.conf
файлдаа хийсэн байх шаардлагатай:
syslogd_enable="YES"
syslogd_flags="-a logclient.example.com -vv"
Эхний тохиргоо нь syslogd демоныг эхлүүлэхийг
заах бөгөөд хоёр дахь нь клиетийн өгөгдлийг энэ сервер дээр хүлээн авахыг
зөвшөөрнө. Сүүлийн хэсэг нь бүртгэж байгаа
мэдэгдлүүдийн гаралтыг илүү дэлгэрэнгүй болгоно. Энэ нь facility-г
тохируулахад ихээхэн ашигтай байдаг. Администраторууд ямар төрлийн
мэдэгдлүүд ямар facility-р бүртгэгдэж байгааг хянах боломжийг энэ нь
бүрдүүлдэг.
Олон клиентээс бүртгэлийг хүлээн авахын тулд олон
сонголтыг зааж өгч болно. IP хаягууд болон
бүхэл сүлжээний блокийг бас зааж өгч болох бөгөөд боломжит сонголтуудын
бүх жагсаалтыг &man.syslog.3; гарын авлагын хуудаснаас үзнэ үү.
Төгсгөлд нь бүртгэлийн файлыг үүсгэх хэрэгтэй. Хэрэглэгсэн арга нь
хамаагүй боловч &man.touch.1; үүнтэй адил тохиолдлуудад сайн
ажилладаг:
&prompt.root; touch /var/log/logclient.log
Энэ үед syslogd демоныг дахин
ажиллуулж шалгах ёстой:
&prompt.root; /etc/rc.d/syslogd restart
&prompt.root; pgrep syslog
Хэрэв PID буцаагдвал сервер нь амжилттай
дахин эхэлсэн гэсэн үг бөгөөд клиентийн тохиргоо ажиллаж эхэлнэ. Хэрэв
сервер дахин эхлээгүй бол ямар нэг зүйл болсон эсэхийг
/var/log/messages файл дахь мэдэгдлүүдээс
шалгаарай.
Клиентийн бүртгэлийн тохиргоо
Бүртгэл илгээгч клиент нь өөр дээрээ хуулбараа үлдээхээс гадна
бас бүртгэлийн сервер рүү бүртгэлийн мэдээллийг явуулдаг машин юм.
Бүртгэлийн серверүүдийн нэгэн адил клиентүүд нь бас хамгийн бага
шаардлагыг хангасан байх ёстой:
&man.syslogd.8; нь бүртгэлийн сервер хүлээн авах ёстой
заасан төрлийн мэдэгдлүүдийг бүртгэлийн сервер рүү илгээхээр
тохируулагдсан байх ёстой;
Галт хана UDP пакетуудыг
514-р порт руу зөвшөөрөх ёстой;
Дамжуулах болон буцах DNS
тохируулагдсан эсвэл /etc/hosts файл зохих
оруулгуудтай байх шаардлагатай.
Клиентийн тохиргоо нь серверийнхтэй харьцуулах юм бол арай зөөлөн
байдаг. Клиент машин нь /etc/rc.conf файлдаа
дараахийг нэмж өгсөн байх шаардлагатай байдаг:
syslogd_enable="YES"
syslogd_flags="-s -vv"
Өмнө дурдсаны адил эдгээр тохиргоонууд нь
syslogd демоныг ачаалж эхлэхэд эхлүүлэхийг
заах бөгөөд бүртгэх мэдэгдлүүдийг дэлгэрэнгүйгээр харуулах болно.
сонголт нь бусад хостуудаас бүртгэлийг энэ
клиент хүлээн авахаас сэргийлдэг.
Facility нь мэдэгдэл үүсгэгдэж байгаа тэр системийн хэсгийг
тайлбарладаг. Жишээ нь ftp болон
ipfw нь хоёулаа facility юм. Эдгээр хоёр
үйлчилгээний хувьд бүртгэлийн мэдэгдлүүд үүсэхэд ихэвчлэн дээрх
хоёр хэрэгслийг бүртгэлийн мэдэгдэл бүртээ агуулсан байдаг.
Facility нь бүртгэлийн мэдэгдэл ямар чухлыг тэмдэглэхэд хэрэглэгдэх
дараалал эсвэл түвшинтэй байдаг. Хамгийн түгээмэл нь
warning ба info юм.
Боломжит бүх facilty болон дарааллуудын жагсаалтыг
&man.syslog.3; гарын авлагын хуудаснаас үзнэ үү.
Бүртгэлийн серверийг клиентийн /etc/syslog.conf
файлд заасан байх шаардлагатай. Энэ жишээн дээр алсын сервер рүү
бүртгэлийн өгөгдлийг илгээхийн тулд @
тэмдгийг ашигласан бөгөөд доор дурдсан мөртэй төстэй
харагдана:
*.* @logserv.example.com
Нэмсэний дараа өөрчлөлтийг хүчинтэй болгохын тулд
syslogd-г дахин эхлүүлэх шаардлагатай:
&prompt.root; /etc/rc.d/syslogd restart
Сүлжээгээр бүртгэлийн мэдэгдлүүдийг илгээж байгаа эсэхийг
тест хийхийн тулд клиент дээр &man.logger.1;-г ашиглаж мэдэгдлийг
syslogd руу илгээнэ:
- &prompt.root; logger "Test message from logclient"
+ &prompt.root; logger "Test message from logclient"
Энэ мэдэгдэл клиент дээрх
/var/log/messages болон
сервер дээрх /var/log/logclient.log
файлд одоо орсон байх ёстой.
Бүртгэлийн серверүүдийг дибаг хийх
Зарим тохиолдолд хэрэв бүртгэлийн сервер дээр мэдэгдлүүд нь
хүлээн авагдаагүй бол дибаг хийх шаардлагатай байж болох юм.
Хэд хэдэн шалтгаанаас болж ийм байдалд хүрч болох юм. Хамгийн
түгээмэл хоёр нь сүлжээний холболтын болон DNS-тэй
холбоотой асуудлууд юм. Эдгээр тохиолдлуудыг тест хийхийн тулд
хоёр хост хоёулаа /etc/rc.conf файлд заагдсан
хостын нэрээрээ нэг нэгэн рүүгээ хүрч чадаж байгааг шалгах
хэрэгтэй. Хэрэв энэ зөв ажиллаж байгаа бол /etc/rc.conf
файлд syslogd_flags тохиргоог өөрчлөх
шаардлагатай болно.
Дараах жишээн дээр /var/log/logclient.log нь хоосон
бөгөөд /var/log/messages файл нь амжилтгүй болсон
шалтгааныг харуулна. Дибаг хийж байгаа гаралтыг илүү дэлгэрэнгүй харуулахын
тулд дараах жишээтэй төстэйгөөр syslogd_flags
тохируулгыг өөрчилж дахин ачаалах хэрэгтэй:
syslogd_flags="-d -a logclien.example.com -vv"
&prompt.root; /etc/rc.d/syslogd restart
Доор дурдсантай төстэй дибаг өгөгдөл дахин ачаалсны дараа
дэлгэц дээр хурдан гарч өнгөрнө:
logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
Logging to FILE /var/log/messages
syslogd: kernel boot file is /boot/kernel/kernel
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
rejected in rule 0 due to name mismatch.
Мэдэгдлүүд нэр зөрснөөс болоод дамжихгүй байгааг эндээс
харж болно. Тохиргоог алхам алхмаар дахин шалгасны дараа
/etc/rc.conf дахь дараах мөр
буруу бичигдсэн бөгөөд асуудалтай байгааг олж харна:
syslogd_flags="-d -a logclien.example.com -vv"
Энэ мөр logclien биш
logclient гэдгийг агуулсан байх ёстой.
Зөв болгож засан дахин ачаалсны дараа хүлээж байсан үр
дүнгээ харах болно:
&prompt.root; /etc/rc.d/syslogd restart
logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
syslogd: kernel boot file is /boot/kernel/kernel
logmsg: pri 166, flags 17, from logserv.example.com,
msg Dec 10 20:55:02 <syslog.err> logserv.example.com syslogd: exiting on signal 2
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
accepted in rule 0.
logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2
Logging to FILE /var/log/logclient.log
Logging to FILE /var/log/messages
Энэ үед мэдэгдлүүдийг зөв хүлээн аван зөв
файлд бичих болно.
Аюулгүй байдлын хувьд бодолцох зүйлс
Сүлжээний аль ч үйлчилгээний нэгэн адил энэ тохиргоог
хийхээсээ өмнө аюулгүй байдлын шаардлагуудыг бодолцох ёстой. Заримдаа
бүртгэлийн файлууд нь локал хост дээр идэвхжүүлсэн үйлчилгээнүүд,
хэрэглэгчдийн бүртгэл болон тохиргооны өгөгдлийн талаарх эмзэг
өгөгдлүүдийг агуулсан байж болох юм. Клиентээс сервер рүү илгээсэн
сүлжээний өгөгдөл нь шифрлэгдээгүй эсвэл нууц үгээр хамгаалагдаагүй
байдаг. Хэрэв шифрлэх шаардлагатай бол өгөгдлийг шифрлэсэн хоолойгоор
дамжуулах security/stunnel
хэрэгслийг ашиглаж болох юм.
Локал аюулгүй байдал нь бас л асуудал юм. Бүртгэлийн файлууд нь
хэрэглэж байхад юм уу эсвэл бүртгэлийн багасгах үед шифрлэгддэггүй.
Локал хэрэглэгчид эдгээр файлуудад хандаж системийн тохиргооны талаар
нэмэлт мэдээлэл олж авч болох юм. Ийм тохиолдолд эдгээр файлууд дээр
зөв зөвшөөрлүүдийг тавих нь чухал юм. &man.newsyslog.8; хэрэгсэл нь
шинээр үүсгэгдсэн болон багасгагдсан бүртгэлийн файлууд дээр зөвшөөрөл
тавихыг дэмждэг. Бүртгэлийн файлууд дээр 600
горимыг тавьснаар хүсээгүй локал хэрэглэгчид тэдгээрийг шиншлэх
боломжийг хаах юм.