FreeBSD гарын авлага
Өмнөх | Бүлэг 13. Хэрэглэгчид ба үндсэн бүртгэл зохицуулалт | Дараах

# 13.7. Хэрэглэгчдэд хязгаарлалт хийх

Хэрэв та олон хэрэглэгчтэй бол, тэдгээрийн систем хэрэглэх боломжийг нь хязгаарлах санаа төрж магадгүй. Нэгж хэрэглэгчид зориулж системийн хэрэглээг удирдах хэд хэдэн аргыг FreeBSD хангаж өгдөг. Эдгээр хязгаарлалт нь хоёр хэсэгт хуваагддаг: дискний хуваарилалт, тэгээд бусад нөөцийн хязгаарлалтууд.

Дискийн хуваарилалт нь хэрэглэгчийн диск хэрэглэх хэмжээг зааглаж өгдөг бөгөөд тухай бүрд уг хэмжээг тооцож бодолгүй шуурхай шалгах боломж өгдөг. Хуваарилалт нь Хэсэг 18.15 бүлэгт авч хэлэлцэгдсэн.

Бусад нөөцийн хязгаарлалтуудад Процессор, санах ойн хэмжээ болон бусад хэрэглэгчийн хэрэглэх нөөцүүд ордог. Эдгээр нь нэвтрэх ангилал ашиглаж заагдаж өгдөг бөгөөд энд одоо ярих болно.

Нэвтрэх ангилал нь `/etc/login.conf`-д заагдсан байгаа. Нарийвчилсан ойлголт энэ бүлэгт ороогүй, гэхдээ login.conf(5) гарын авлагад тодорхой бичигдсэн байгаа. Хэрэглэгч бүрд нэвтрэх ангилал заагдсан байдаг гэж хэлэхэд хангалттай (анхдагч утга нь `default`), бөгөөд нэвтрэх ангилал бүр өөртөө тодорхой нэвтрэх чанаруудыг агуулсан байдаг. Нэвтрэх чанар гэдэг нь ``нэр`=`утга`` гэсэн хослол бөгөөд үүний `нэр` нь бидний мэдэх хэрэглэгчийн нэр ба `утга` нь нэртэй хамаатай боловсруулагдсан мөр байдаг. Нэвтрэх ангилал ба чанарыг тохируулах нь харьцангуй амархан бөгөөд мөн login.conf(5) дотор тодорхой бичигдсэн.

> Тэмдэглэл: Систем ердийн үед шууд `/etc/login.conf` файлыг уншдаггүй, харин түргэн хайж харахад илүүгээр нь `/etc/login.conf.db` өгөгдлийн бааз файлыг уншдаг. `/etc/login.conf` файлаас `/etc/login.conf.db` файлыг үүсгэхийн тулд дараах тушаалыг гүйцэтгэх хэрэгтэй:

>     # cap_mkdb /etc/login.conf

Нөөцийн хязгаарлалт нь энгийн нэвтрэх чанараас хоёр замаар ялгардаг. Эхнийх нь, хязгаарлалт бүр зөөлөн (одоогийн) ба хатуу хязгаарлалт гэж байдаг. Зөөлөн хязгаарлалт нь хэрэглэгчээр юм уу програмаар тохируулагдаж болдог бөгөөд хатуу хязгаарлалтаас дээгүүр биш. Харин хатуу хязгаарлалт нь хэрэглэгчээр доошоо тохируулагдаж болох боловч хэзээ ч дээшлэгдэж чадахгүй. Хоёр дахь нь, ихэнх нөөцийн хязгаарлалт нь тусгай хэрэглэгчдийн процесс дээр хэрэгжигдэх бөгөөд харин хэрэглэгч дээр бүхлээрээ хэрэгжигдэхгүй. Тэмдэглэж хэлэхэд, хэдийгээр эдгээр ялгаанууд нь онцгой хязгаарлалт хийх үед голлох боловч нэвтрэх чанарын үндсэн хүрээнд хэрэгжигдэхгүй. (өөрөөр хэлбэл, эдгээр нь үнэхээр онцгой нэвтрэх чанарын тохиолдол биш).

Тэгэхээр, элдвийг нуршилгүйгээр, энгийн байнга хэрэглэгддэг нөөцийн хязгаарлалтуудыг доор жагсаав (үлдсэн хязгаарлалтуудыг мөн тэдгээрийн нэвтрэх чанаруудыг нь login.conf(5)-с харна уу).

`coredumpsize`

  Програмаар үүсгэгдсэн үндсэн файлын хэмжээний хязгаар нь мэдээж дискний хэрэглэх хязгаарт багтана. (`файлын хэмжээ`, эсвэл диск хуваарилалт г.м). Тэгсэн хэдий ч, энэ нь дискний хэрэглэх хэмжээг хянахад хэрэглэгддэг нэг их чухал биш тохируулга: үндсэн файлыг хэрэглэгчид өөрсдөө үүсгэдэггүй бөгөөд тэдгээрийг дандаа устгаад байдаггүй учир үүгээр тохируулсан үед том програмаар хэрэглэгдэх дискний хэрэглээ хэтэрсний улмаас програм эвдэрч ( жишээ нь, emacs) зогсохоос сэргийлж болох юм.

`cputime`

  Энэ нь хэрэглэгчийн процесс хэрэглэж болох хамгийн их процессорын давтамж юм. Хэтрүүлж хэрэглэсэн процесс цөмөөс устгагддаг.

  > Тэмдэглэл: Энэ нь процессорын давтамж дээр тавигдсан хэрэглээний хязгаар бөгөөд top(1) ба ps(1)-н зарим талбарт харагддаг процессорын хувийг заасан заалт биш. Хувиар хязгаарлана гэдэг нь энэ гарын авлагыг бичиж байх үед боломжгүй байсан ба боломжтой байсан ч хэрэглэх шаардлага байхгүй: хөрвүүлэгч--зарим ноцтой үйлдлүүд -- заримдаа процессорын давтамжийг 100% хувь хэрэглэж чаддаг.

`filesize`

  Энэ хэмжээ нь хэрэглэгчийн хэрэглэж болох хамгийн их файлын хэмжээ. диск хуваарилалтаас ялгаатай нь, энэ хязгаарлалт нь файл бүрд тавигддаг бөгөөд хэрэглэгчийн эзэмшдэг бүх файлд биш.

`maxproc`

  Энэ нь хэрэглэгчийн ажиллуулж болох хамгийн их процессийн тоо юм. Үүнд нүүрэн талын болон ар талын процессууд багтана. Мэдээж, энэ нь `kern.maxproc`-д заагдсан sysctl(8) системийн хязгаараас хэтэрч болохгүй. Мөн тэмдэглэж хэлэхэд, үүнийг хэтэрхий багаар тохируулбал хэрэглэгчийн олон дахин нэвтэрч орох, дамжуулах хоолой ашиглах зэрэг бүтээмжид нөлөөлөх болно. Том програмыг хөрвүүлэх гэх мэт зарим гүйцэтгэл нь мөн олон процесс шаарддаг (жишээ нь, make(1), cc(1), ба бусад дундын хөрвүүлэлтэнд хэрэглэгддэг процессорууд).

`memorylocked`

  Энэ нь ямар нэг процесс санах ойд түгжсэн санамж шаардах үед хязгаарлах хамгийн их санах ойн хэмжээ. (жишээ нь, mlock(2)-г харна уу). Зарим amd(8) гэх мэт системийн ноцтой програмууд нь үндсэн санах ойг түгждэг бөгөөд түр шилжүүлэг хийх шаардлага гарах үед системийн зохицуулалтанд тусалдаггүй.

`memoryuse`

  Энэ нь ямар нэг процесс ямар ч үед хэрэглэж болох хамгийн их санах ойн хэмжээ. Энэ нь үндсэн санах ой болон сэлгэх зайг хоёуланд хамаатай. Санах ойн хязгаарлалтын бүгдийг нь хийдэггүй ч эндээс эхлэх нь зөв эхлэлд тооцогдоно.

`openfiles`

  Энэ нь процессийн нээж болох файлуудын хамгийн их хэмжээ. FreeBSD дээр сокет, мөн IPC сувгууд нь файл хэлбэрээр хэрэглэгддэг болохоор үүнийг маш багаар тохируулахаа тун болгоомжлох хэрэгтэй. Систем даяар хязгаарлахын тулд `kern.maxfiles`-д зааж өгнө sysctl(8).

`sbsize`

  Энэ нь сүлжээнд хэрэглэгдэх санах ойн хязгаар. Тийм болохоор хэрэглэгчийн хэрэглэж болох mbufs юм. Энэ нь хуучин ДоС халдлагаас олон сокет нээх дайралтын эсрэг үүсгэсэн гаралтай бөгөөд сүлжээний холболтыг хязгаарлахад ерөнхийдөө хэрэглэгдэж болно.

`stacksize`

  Энэ нь процессийн хэрэглэх стек санах ойн ихсэж болох хамгийн их хэмжээ. Энэ нь програмын хэрэглэж болох санах ойн хэмжээг хязгаарлахад хангалттай биш. Голдуу бусад хязгаарлалтуудтай хамтарч хэрэглэгдэх хэрэгтэй.

Нөөцийн хязгаарлалтыг тохируулж байхдаа бусад зарим зүйлсийг санаж байх хэрэг байдаг. Зарим энгийн зөвлөгөө, санал мөн төрөл бүрийн тайлбаруудыг доор жагсаав.

- Систем эхлэх үед `/etc/rc`-с ажилладаг процессууд нь `дэмон` нэвтрэх төрөлд багтдаг.

- Хэдийгээр ихэнх хязгаарлалтуудыг агуулсан `/etc/login.conf` файл системтэй цуг ирдэг ч гэсэн зөвхөн систем удирдагч та л таны системд ямар нь хамаатайг мэднэ. Тохируулгыг хэт их болговол системээ буруу хэрэглэгчдэд нээж өгөх бөгөөд хэрэв хэт багаар тохируулбал бүтээмжид хэт нарийдна.

- X цонхны системийн (X11) хэрэглэгчид бусад хэрэглэгчдийг бодвол илүү их нөөцөөр хангагдах хэрэгтэй. X11 нь өөрөө маш их нөөц авдаг бөгөөд бас хэрэглэгчдэд олон програмыг зэрэг ажиллуулах боломж өгдөг.

- Маш олон хязгаарлалт нь хэрэглэгч дээр бүхэлд нь биш харин нэгж процессууд дээр тавигддаг гэдгийг санах хэрэгтэй. Жишээлбэл, `openfiles` тохируулгыг 50 гэвэл, энэ нь хэрэглэгчийн ажиллуулж буй процесс болгон 50 файл нээж болно гэсэн үг. Тийм болохоор, хэрэглэгчийн нээж болох файлуудын нийт хэмжээ нь `openfiles`-н утгыг `maxproc`-н утгаар үржүүлж гарна. Энэ нь мөн санах ойн хэрэглээнд бас хэрэгжинэ.

Нөөцийн хязгаарлалт ба нэвтрэх ангилал, мөн ерөнхий нэвтрэх чанаруудын тухай нэмэлт мэдээллийг харгалзах гарын авлага: cap_mkdb(1), getrlimit(2), login.conf(5) нараас харна уу.

Өмнөх | Эхлэл | Дараах
Бүртгэлд өөрчлөлт хийх | Дээш | Бүлэг

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.