De tsjinst mislearret, de logs neame in spawn en in map, en it earste ynstinkt is om de VPN-konfiguraasje te kontrolearjen. Yn dat bestân is noch neat lêzen. systemd mislearre wylst it it proses tariede, foardat it útfierbere bestân rûn, dus gjin parser, gjin sertifikaat en gjin ôfstân-host binne rieplachte. It statuskoad lêze as in útspraak oer systemd ynstee fan oer OpenVPN is wat dit in koart ûndersyk makket.

Lês it statuskoad foar de applikaasje

It numerike koad nei de tsjinstnamme neamt de etappe dy't mislearre. In mapflater wurdt rapportearre as CHDIR-status, wylst in útfierber bestân dat net rûn wurde koe in folslein oar koad is. Dy twa lykje op in gearfettingsrige en hawwe neat mienskiplik yn har oarsaken.

Dat ûnderskie is wichtich, om't de fixes yn ferskillende bestannen sitte. In CHDIR-flater giet oer in paad en hoe't de tsjinst dat sjocht. In exec-flater giet oer de binary, syn ynterpreter of in net-relatearre mount. It feroarjen fan it VPN-remote, de siferlist of it sertifikaatpaad kin gjin fan beide oplosse.

Befêstigje dat de flater by de start is en net nei in suksesfolle run. As de tsjinst juster wurke en no by deselde etappe mislearret, is der wat feroare oan 'e map, har rjochten of de unit sels, en dy feroaring is it bewiis dat jo sykje moatte.

Freegje de unit wêr't er wêze wol

Lês de effektive unit ynstee fan it bestân dat jo tinke dat ynstallearre is, om't drop-ins de wurkmap oerskriuwe kinne sûnder dat jo ea de haadunit bewurkje. De show-útfier beantwurdet de fraach direkt:

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

Foar it upstream-tsjinstmodel is de wurkmap de tsjinstkonfiguraasjemap en de ynstânsjenamme selektearret it profyl deryn. In ynstânsje mei de namme branch ferwachtet dêrom syn eigen bestân yn deselde map, en in profyl dat earne oars pleatst is, foldocht hielendal net oan 'e eask fan 'e wurkmap.

Fergelykje wat de unit freget mei wat bestiet. In paad dat earder bestie, in symboalyske keppeling dy't no earne oars hinne wiist, of in ynstânsjenamme dy't net mear by in map past, binne allegear gewoane feroarings dy't krekt dizze flater jouwe.

Kontrolearje it paad sa't de tsjinst it sjocht

Jo shell en de tsjinst diele net deselde bestânsysteemwerjefte. In konfigurearre woartelmap of root image feroaret wat in absolút paad yn 'e unit betsjut, en in paad dat fanselssprekkend op 'e host bestiet, kin yn dy namespase ûntbrekke. Lês de ynstellingen fan 'e unit foardat jo in manuele test fertrouwe.

Rjochten fergrutsje it probleem. De tsjinst rint as in spesifike brûker, en dy brûker moat elke boppemap trochkinne om it doel te berikken, net allinnich it doel sels lêze. In map dy't troch root lêsber is en net troch de tsjinstbrûker trochgien wurde kin, jout in flater dy't op in ûntbrekkend paad liket.

namei -l /etc/openvpn/server
systemctl show [email protected] -p ProtectSystem -p ReadOnlyPaths

Herdingsynstellingen binne ek diel fan dit byld. In unit dy't thúsmappen ferberget of in part fan it bestânsysteem allinnich-lêze makket, docht krekt wat er konfigurearre is, en de wurkmap moat earne wenje dêr't de sandbox it noch bleatleit.

Reparearje de eigner, ferwachtsje dan in oare flater

Korrizjearje de yndieling of de unit fia wa't dy konfiguraasje besit. In profyl nei de ferwachte map ferpleatsen is in legitime fix as de yndieling ferkeard is, mar it ferklearret gjin map dêr't net yn kommen wurde kin, dus behannelje it net as it algemiene antwurd.

Wjerstean de snjipwei om rjochten op 'e konfiguraasjebeam te ferbreedzjen of de sandbox fuort te heljen. Beide litte it symptoom ferdwine wylst se de beskermingen fuorthelje dy't der mei opsetsin pleatst binne, en de folgjende flater sil hurder te ynterpretearjen wêze.

Start de ynstânsje opnij en lês it folgjende evenemint ynstee fan sukses oan te nimmen. De wierskynlike folgjende flater is dat OpenVPN syn konfiguraasjebestân net iepenje kin, wat foarútgong is: de wurkmap is ynkommen en de parser rint no. Folgje fanôf dêr de werklike bestânskarting fan 'e unit ynstee fan werom te gean nei netwurkproblemen.

De systemd-útfieringsreferinsje definiearret hoe't de wurkmap tegearre mei woartelmappen en sandboxing ynterpretearre wurdt. It patroan om te ûnthâlden is ienfâldich: elk statuskoad neamt in oare etappe, en allinnich de eigen flaters fan 'e applikaasje beskriuwe de applikaasje.

Relatearre artikelen