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

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

Дискийн хуваарилалт нь хэрэглэгчийн диск хэрэглэх хэмжээг зааглаж өгдөг бөгөөд тухай бүрд уг хэмжээг тооцож бодолгүй шуурхай шалгах боломж өгдөг. Хуваарилалт нь Хэсэг 19.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

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

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

Нөөцийн хязгаарлалт ба нэвтрэх ангилал, мөн ерөнхий нэвтрэх чанаруудын тухай нэмэлт мэдээллийг харгалзах гарын авлага: 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> хаягаар цахим захидал явуулна уу.