Ke kūkulu ʻia nei kahi hana kaʻawale e like me ka plegde a me ka wehe ʻana no FreeBSD

No FreeBSD, ua noi ʻia ka hoʻokō ʻana i kahi mīkini hoʻokaʻawale noi, e hoʻomanaʻo ana i ka plegde a wehe i nā kelepona ʻōnaehana i kūkulu ʻia e ka papahana OpenBSD. Loaʻa ka hoʻokaʻawale ʻana i ka plegde ma ka pāpā ʻana i ke komo ʻana i nā kelepona ʻōnaehana ʻaʻole i hoʻohana ʻia i ka noi, a ma ka wehe ʻana ma ka wehe ʻana i ke komo wale ʻana i nā ala faila e hiki ai i ka noi ke hana pū me. No ka noi, ua hoʻokumu ʻia kahi ʻano papa inoa keʻokeʻo o nā kelepona ʻōnaehana a me nā ala faila, a ua pāpā ʻia nā kelepona a me nā ala ʻē aʻe.

ʻO ka ʻokoʻa ma waena o ka analogue o ka plegde a me ka wehe ʻana i hoʻomohala ʻia no FreeBSD e iho mai i ka hāʻawi ʻana i kahi papa hou e hiki ai iā ʻoe ke hoʻokaʻawale i nā noi me ka ʻole e hoʻololi i kā lākou code a i ʻole nā ​​loli liʻiliʻi. E hoʻomanaʻo i ka OpenBSD, hoʻopili ʻia ka plegde a me ka wehe ʻana i ka hoʻopili paʻa ʻana me ke kaiapuni lalo a hoʻohana ʻia ma ka hoʻohui ʻana i nā annotation kūikawā i ke code o kēlā me kēia noi. No ka hoʻomaʻamaʻa ʻana i ka hoʻonohonoho ʻana o ka pale, ʻae nā kānana iā ʻoe e hoʻokaʻawale i nā kikoʻī ma ke kiʻekiʻe o nā kelepona ʻōnaehana hoʻokahi a me ka hoʻoponopono ʻana i nā papa o nā kelepona ʻōnaehana (input/output, heluhelu faila, kākau faila, sockets, ioctl, sysctl, kaʻina hana, etc.) . Hiki ke kapa ʻia nā hana hoʻopaʻa ʻana i ka palapala noi e like me ka hana ʻana o kekahi mau hana, no ka laʻana, hiki ke hōʻole ʻia ke komo ʻana i nā kumu a me nā faila ma hope o ka wehe ʻana i nā faila pono a hoʻokumu i kahi pilina pūnaewele.

ʻO ka mea kākau o ka port of plegde a wehe ʻia no FreeBSD manaʻo e hāʻawi i ka hiki ke hoʻokaʻawale i nā noi arbitrary, kahi i manaʻo ʻia ai ka pono pale, e hiki ai iā ʻoe ke hoʻopili i nā lula i wehewehe ʻia i kahi faila i nā noi. ʻO ka hoʻonohonoho i manaʻo ʻia he faila me nā hoʻonohonoho maʻamau e wehewehe i nā papa o nā kelepona ʻōnaehana a me nā ala faila maʻamau i kikoʻī i kekahi mau noi (hana me ke kani, pili pūnaewele, logging, etc.), a me kahi faila me nā lula komo no nā noi kikoʻī.

Hiki ke hoʻohana ʻia ka pono pale e hoʻokaʻawale i ka hapa nui o nā pono i hoʻololi ʻole ʻia, nā kaʻina server, nā noi kiʻi, a me nā kau papa holoʻokoʻa. Hiki ke hoʻohana ʻia ka pale me nā ʻōnaehana kaʻawale i hāʻawi ʻia e ka Jail and Capsicum subsystems. Hiki nō hoʻi ke hoʻonohonoho i ka nested kaʻawale, ke hoʻoili ʻia nā noi i hoʻoili ʻia i nā lula i hoʻonohonoho ʻia no ka noi makua, e hoʻohui iā lākou me nā kapu pākahi. Hoʻomalu ʻia kekahi mau hana kernel (nā hale debugging, POSIX/SysV IPC, PTYs) e kahi hana pale e pale ai i ke komo ʻana i nā mea kernel i hana ʻole ʻia e ke kaʻina hana o kēia manawa a makua paha.

Hiki i ke kaʻina hana ke hoʻonohonoho i kona kaʻawale ʻana ma ke kāhea ʻana i ka curtainctl a i ʻole ma ka hoʻohana ʻana i ka libcurtain's plegde() a me ka wehe ʻana () hana, e like me nā mea i loaʻa ma OpenBSD. No ka hahai ʻana i nā laka i ka wā e holo ana ka noi, hāʻawi ʻia ka sysctl 'security.curtain.log_level'. Hoʻokaʻawale ʻia ke komo ʻana i nā protocols X11 a me Wayland ma o ka wehewehe ʻana i nā koho "-X"/"-Y" a me "-W" i ka wā e holo ana i ka pale, akā ʻaʻole i paʻa pono ke kākoʻo no nā noi kiʻi a he nui nā pilikia i hoʻoholo ʻole ʻia ( ʻIke ʻia nā pilikia i ka wā e hoʻohana ai iā X11, a ʻoi aku ka maikaʻi o ke kākoʻo ʻana o Wayland). Hiki i nā mea hoʻohana ke hoʻohui i nā kaohi ʻē aʻe ma ka hana ʻana i nā faila kānāwai kūloko (~/.curtain.conf). No ka laʻana, hiki iā ʻoe ke hoʻohui i kahi ʻāpana "[firefox]" me ka lula "~/Downloads/ : rw +".

Hoʻokomo ka hoʻokō ʻana i ka module mac_curtain kernel no ka mana o ke komo ʻana (MAC, Mandatory Access Control), kahi hoʻonohonoho o nā pāpaʻi no ka FreeBSD kernel me ka hoʻokō ʻana i nā mea lawelawe pono a me nā kānana, ka hale waihona puke libcurtain no ka hoʻohana ʻana i ka plegde a wehe i nā hana i nā noi, ʻO ka pono pale, nā faila hoʻonohonoho laʻana, nā hoʻāʻo hoʻonohonoho a me nā pale no kekahi mau papahana ma kahi o ka mea hoʻohana (no ka laʻana, no ka hoʻohana ʻana i $TMPDIR e hoʻohui i ka hana me nā faila pōkole). Ma kahi e hiki ai, manaʻo ka mea kākau e hōʻemi i ka nui o nā hoʻololi e koi ai i nā pā i ka kernel a me nā noi.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka