Kwa nini nosuid huzuia msaidizi wa VPN kuwa root
Saraka ya nyumbani iliyosimbwa kwa njia fiche na mount ya nosuid ni sifa tofauti. Msaidizi anahitaji njia ya usakinishaji inayoaminika na mazingira ya kuanzisha yanayoheshimu biti yake ya upendeleo.
Usimbaji fiche wa diski na mount ya nosuid zinasikika kama aina za wazo moja, na hazina uhusiano wowote. Moja inalinda data iliyo katika hali ya utulivu, na nyingine huamua kama kernel itaheshimu biti ya upendeleo wakati programu inapoanza. Msaidizi asiyefikia utambulisho anaoutarajia analalamika kuhusu ile ya pili. Dhana kwamba ile ya kwanza ndiyo inayosababisha huwapeleka watu kusakinisha upya wateja ambao hawakuwahi kuharibika.
Sifa Mbili Zisizohusiana
Usimbaji fiche wa diski hujibu ni nani anayeweza kusoma vitalu wakati mashine imezimwa. Chaguo la mount hujibu kernel itafanya nini na biti za modi za faili wakati mtu anaiendesha. Hakuna kitu katika ile ya kwanza kinachozuia ile ya pili, na kompyuta ya kupakua iliyosimbwa kikamilifu inaweza ku-mount mfumo wa faili ukiwa na vizuizi vyote mahali pake.
Kuzisoma kama sifa moja ndiko kunakozalisha nadharia kwamba saraka ya nyumbani iliyosimbwa huzuia ufikiaji wa root. Nadharia hiyo huendelea kuwepo kwa sababu dalili hizo mbili zinaonekana kwenye mashine moja, si kwa sababu zina chanzo kimoja.
Kinachokandamiza Mpito Kwa Kweli
Rejea ya execve inaeleza jinsi faili inayotekelezeka yenye set-user-ID inavyobadilisha utambulisho tendaji wa mchakato mpya kuwa wa mmiliki wa faili. Ukurasa huo huo unaorodhesha masharti yanayokandamiza mpito huo na kifananishi chake kwa vitambulisho vya kikundi: mpangilio wa no_new_privs, mfumo wa faili uliomountwa na nosuid, na mchakato unaofuatiliwa. Uwezo wa faili hupuuzwa chini ya masharti hayo hayo. Sheria hizo nne hufunika karibu kila ripoti ya aina hii.
Orodha hiyo inaeleza kwa nini modi inayochapishwa na ls kamwe si hadithi yote ya idhini. Haikuambii ni sharti gani lilisababisha ujumbe fulani wa kushindwa, na programu inaweza kuwa inaripoti operesheni ya kitambulisho isiyohusiana kwa maneno hayo hayo. Andika programu kamili, kianzishi na mfuatano wa hitilafu kabla ya kufikia hitimisho.
Tambua faili inayotekelezeka iliyosakinishwa na kifurushi kinachotumika, mmiliki wake, njia yake halisi na sera ya mfumo wa faili unaoihifadhi. Nakala iliyo katika folda ya upakuaji si msaidizi uliosakinishwa, chochote modi yake inachosema.
Mambo ya Kutosha Kufanya
Kuweka biti za set-user-ID kwenye binary isiyothibitishwa na kuihamisha huku na kule hadi kizuizi kitoweke si ukarabati. Inabadilisha sera usiyoielewa na upendeleo ambao hauwezi kuukagua, na mbinu hiyo hiyo ikitumika kwa msaidizi ni njia inayojulikana ya kupandisha hadhi. Kuondoa nosuid kutoka kwenye mount ni mbaya zaidi, kwa sababu inaathiri kila programu kwenye mfumo huo wa faili, si moja tu.
Njia inayotumika ni usakinishaji ulioandikwa wa msaidizi au huduma na mteja, unaofanywa na msimamizi, ambao huweka binary mahali sera inapotarajia. Hivyo mfumo mmoja wa upendeleo hubaki badala ya miwili.
Thibitisha Mazingira Halisi ya Kuanzisha
Baada ya marekebisho yaliyoidhinishwa, endesha msaidizi jinsi bidhaa inavyoiendesha na si kutoka kwa shell ya root. Mafanikio kama root hayathibitishi chochote kuhusu njia anayopitia mtumiaji wa kawaida, na tofauti kati ya mazingira hayo mawili ndiyo hasa lilikuwa suala la kushindwa.
Kisha thibitisha operesheni ya mtandao ambayo msaidizi yupo kwa ajili yake. Msaidizi anayeanza lakini hawezi kusanidi kiolesura amehamisha tatizo hatua moja mbele, hakulitatua.
findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper
Andika chaguo za mount na umiliki wa msaidizi katika noti moja. Vinginevyo mtu anayefuata kutatua hili atarudia nadharia ya usimbaji fiche tangu mwanzo.