status=200/CHDIR: systemd haikuwahi kuanzisha OpenVPN
Kushindwa kwa CHDIR kunamaanisha systemd haikuweza kuingia kwenye saraka, si kwamba OpenVPN haikuweza kusoma wasifu. Soma unit kabla ya kugusa usanidi wa VPN.
Huduma inashindwa, kumbukumbu zinataja spawn na saraka, na silika ya kwanza ni kuangalia usanidi wa VPN. Hakuna kilichosomwa bado katika faili hiyo. systemd ilishindwa ilipokuwa ikiandaa mchakato, kabla faili tekelezwe kuanza, kwa hiyo hakuna parser, hakuna cheti na hakuna mwenyeji wa mbali aliyeshauriwa. Kusoma msimbo wa hali kama taarifa kuhusu systemd badala ya OpenVPN ndiko kunakobadilisha hii kuwa uchunguzi mfupi.
Soma msimbo wa hali kabla ya programu
Msimbo wa nambari baada ya jina la huduma unataja hatua iliyoshindwa. Kushindwa kwa saraka huripotiwa kama hali ya CHDIR, wakati faili tekelezwe ambayo haikuweza kuendeshwa ni msimbo tofauti kabisa. Vyote viwili vinafanana katika mstari wa muhtasari na havina kitu cha pamoja katika sababu zao.
Tofauti hiyo ni muhimu kwa sababu marekebisho yako katika faili tofauti. Kushindwa kwa CHDIR kunahusu njia na jinsi huduma inaiona. Kushindwa kwa exec kunahusu binary, mkalimani wake au mount isiyohusiana. Kubadilisha remote ya VPN, orodha ya sifa au njia ya cheti hakuwezi kushughulikia yoyote kati ya hizo.
Thibitisha kuwa kushindwa ni mwanzoni na si baada ya kukimbia kwa mafanikio. Ikiwa huduma ilifanya kazi jana na sasa inashindwa katika hatua hiyo hiyo, kitu kimebadilika kuhusu saraka, ruhusa zake au unit yenyewe, na mabadiliko hayo ndiyo ushahidi wa kutafuta.
Uliza unit inataka kuwa wapi
Soma unit inayofaa badala ya faili unayodhani imesakinishwa, kwa sababu drop-in zinaweza kubatilisha saraka ya kazi bila wewe kuwahi kuhariri unit kuu. Matokeo ya show yanajibu swali moja kwa moja:
systemctl cat [email protected]
systemctl show [email protected] -p WorkingDirectory -p RootDirectory -p User -p ProtectHome
journalctl -u [email protected] -b --no-pager | tail -30
Kwa kiolezo cha seva ya upstream, saraka ya kazi ni saraka ya usanidi wa seva na jina la instance huchagua wasifu ndani yake. Instance inayoitwa branch kwa hiyo inatarajia faili yake mwenyewe katika saraka hiyo hiyo, na wasifu uliowekwa mahali pengine haukidhi kabisa sharti la saraka ya kazi.
Linganisha kile unit inachoomba na kile kilichopo. Njia iliyokuwa ipo, kiungo cha mfano kinachoelekeza mahali pengine sasa, au jina la instance ambalo haliendani tena na saraka zote ni mabadiliko ya kawaida yanayozalisha kushindwa huku kamili.
Angalia njia kama huduma inavyoiona
Shell yako na huduma hazishiriki mwonekano sawa wa mfumo wa faili. Saraka ya mzizi au taswira ya mzizi iliyosanidiwa hubadilisha maana ya njia kamili ndani ya unit, na njia iliyo wazi kwenye mwenyeji inaweza kukosekana katika nafasi hiyo ya majina. Soma mipangilio ya unit kabla ya kuamini jaribio la mkono.
Ruhusa zinaongeza tatizo. Huduma inaendeshwa kama mtumiaji maalum, na mtumiaji huyo lazima aweze kupita katika kila saraka mzazi kufikia lengo, si kusoma lengo lenyewe tu. Saraka inayosomeka na root na isiyopitika na mtumiaji wa huduma huzalisha kushindwa kunakoonekana kama njia iliyokosekana.
namei -l /etc/openvpn/server
systemctl show [email protected] -p ProtectSystem -p ReadOnlyPaths
Mipangilio ya uimarishaji pia ni sehemu ya picha hii. Unit inayoficha saraka za nyumbani au kuifanya sehemu ya mfumo wa faili isomeke tu inafanya kile ilichosanidiwa kufanya, na saraka ya kazi lazima iishi mahali sandbox bado inaifichua.
Rekebisha mmiliki, kisha tarajia kosa lingine
Rekebisha mpangilio au unit kupitia yeyote anayemiliki usanidi huo. Kuhamisha wasifu kwenye saraka inayotarajiwa ni marekebisho halali wakati mpangilio ni mbaya, lakini haielezi saraka ambayo haiwezi kuingiliwa, kwa hiyo usiichukulie kama jibu la jumla.
Kataa njia ya mkato ya kupanua ruhusa kwenye mti wa usanidi au kuondoa sandbox. Zote mbili hufanya dalili kutoweka huku zikiondoa ulinzi uliowekwa hapo kwa makusudi, na kushindwa kufuatia kutakuwa vigumu kufasiri.
Anzisha upya instance na soma tukio linalofuata badala ya kudhani mafanikio. Kosa linalofuata linalowezekana ni kwamba OpenVPN haiwezi kufungua faili yake ya usanidi, jambo ambalo ni maendeleo: saraka ya kazi ilipitwa na parser sasa inaendesha. Fuata ramani halisi ya faili za unit kuanzia hapo badala ya kurudi kwenye utatuzi wa matatizo ya mtandao.
Marejeo ya utekelezaji ya systemd inafafanua jinsi saraka ya kazi inavyofasiriwa pamoja na saraka za mzizi na sandbox. Mchoro wa kukumbuka ni rahisi: kila msimbo wa hali unataja hatua tofauti, na ni makosa ya programu yenyewe pekee yanayoelezea programu.