status=200/CHDIR: ni wnaeth systemd gychwyn OpenVPN o gwbl
Mae methiant CHDIR yn golygu bod systemd wedi methu mynd i mewn i gyfeiriadur, nid bod OpenVPN wedi methu darllen proffil. Darllenwch yr uned cyn cyffwrdd â chyfluniad y VPN.
Mae'r gwasanaeth yn methu, mae'r logiau'n sôn am spawn a chyfeiriadur, a'r reddf gyntaf yw gwirio cyfluniad y VPN. Nid oes dim yn y ffeil honno wedi'i ddarllen eto. Methodd systemd wrth baratoi'r broses, cyn i'r ffeil weithredu redeg, felly ni ymgynghorwyd ag unrhyw barser, unrhyw dystysgrif nac unrhyw westeiwr o bell. Darllen y cod statws fel datganiad am systemd yn hytrach nag am OpenVPN yw'r hyn sy'n troi hwn yn ymchwiliad byr.
Darllenwch y cod statws cyn y rhaglen
Mae'r cod rhifol ar ôl enw'r gwasanaeth yn enwi'r cam a fethodd. Adroddir methiant cyfeiriadur fel statws CHDIR, tra bod ffeil weithredu na ellid ei rhedeg yn god hollol wahanol. Mae'r ddau yn edrych yn debyg mewn llinell grynodeb ac nid oes ganddynt ddim yn gyffredin yn eu hachosion.
Mae'r gwahaniaeth hwnnw'n bwysig oherwydd mae'r cywiriadau mewn ffeiliau gwahanol. Mae methiant CHDIR yn ymwneud â llwybr a sut mae'r gwasanaeth yn ei weld. Mae methiant exec yn ymwneud â'r deuaidd, ei ryngwyneb neu fownt di-gysylltiad. Ni all newid pwynt pell y VPN, y rhestr seiffrau na'r llwybr tystysgrif fynd i'r afael ag unrhyw un ohonynt.
Cadarnhewch fod y methiant ar y dechrau yn hytrach nag ar ôl rhediad llwyddiannus. Os oedd y gwasanaeth yn gweithio ddoe ac yn methu nawr ar yr un cam, mae rhywbeth wedi newid ynglŷn â'r cyfeiriadur, ei ganiatâd neu'r uned ei hun, a'r newid hwnnw yw'r dystiolaeth i chwilio amdani.
Gofynnwch i'r uned ble y mae am fod
Darllenwch yr uned effeithiol yn hytrach na'r ffeil yr ydych yn credu sydd wedi'i gosod, oherwydd gall drop-ins ddisodli'r cyfeiriadur gwaith heb i chi erioed olygu'r brif uned. Mae allbwn show yn ateb y cwestiwn yn uniongyrchol:
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
Ar gyfer templed y gweinydd uwch, y cyfeiriadur gwaith yw cyfeiriadur cyfluniad y gweinydd ac mae enw'r enghraifft yn dewis y proffil y tu mewn iddo. Mae enghraifft o'r enw branch felly'n disgwyl ei ffeil ei hun yn yr un cyfeiriadur, ac nid yw proffil a osodwyd yn rhywle arall yn bodloni'r gofyniad cyfeiriadur gwaith o gwbl.
Cymharwch yr hyn y mae'r uned yn ei ofyn â'r hyn sy'n bodoli. Mae llwybr a arferai fodoli, dolen symbolaidd sy'n awr yn pwyntio i rywle arall, neu enw enghraifft nad yw bellach yn cyfateb i gyfeiriadur i gyd yn newidiadau cyffredin sy'n cynhyrchu'r methiant hwn yn union.
Gwiriwch y llwybr fel y mae'r gwasanaeth yn ei weld
Nid yw eich shell a'r gwasanaeth yn rhannu'r un golwg ar y system ffeiliau. Mae cyfeiriadur gwraidd neu ddelwedd wreiddiau wedi'i chyflunio yn newid yr hyn y mae llwybr absoliwt yn ei olygu y tu mewn i'r uned, a gall llwybr sydd yn amlwg yn bresennol ar y gwesteiwr fod yn absennol yn y namespace hwnnw. Darllenwch osodiadau'r uned cyn ymddiried mewn prawf â llaw.
Mae caniatâd yn gwaethygu'r broblem. Mae'r gwasanaeth yn rhedeg fel defnyddiwr penodol, ac mae'n rhaid i'r defnyddiwr hwnnw allu croesi pob cyfeiriadur rhiant i gyrraedd y targed, nid yn unig ddarllen y targed ei hun. Mae cyfeiriadur y gellir ei ddarllen gan root ac na ellir ei groesi gan ddefnyddiwr y gwasanaeth yn cynhyrchu methiant sy'n edrych fel llwybr coll.
namei -l /etc/openvpn/server
systemctl show [email protected] -p ProtectSystem -p ReadOnlyPaths
Mae osodiadau caledu yn rhan o'r darlun hwn hefyd. Mae uned sy'n cuddio cyfeiriaduron cartref neu'n gwneud rhan o'r system ffeiliau'n ddarllen yn unig yn gwneud yn union yr hyn y cafodd ei chyflunio i'w wneud, ac mae angen i'r cyfeiriadur gwaith fyw yn rhywle lle mae'r sandbox yn dal i'w amlygu.
Trwsiwch y perchennog, yna disgwyliwch wall gwahanol
Cywirwch y trefniant neu'r uned trwy pwy bynnag sy'n berchen ar y cyfluniad hwnnw. Mae symud proffil i'r cyfeiriadur a ddisgwylir yn atgyweiriad dilys pan fo'r trefniant yn anghywir, ond nid yw'n esbonio cyfeiriadur na ellir mynd i mewn iddo, felly peidiwch â'i drin fel yr ateb cyffredinol.
Gwrthwynebwch y llwybr byr o ehangu caniatâd ar y goeden gyfluniad neu ddileu'r sandbox. Mae'r ddau yn gwneud i'r symptom ddiflannu wrth dynnu'r amddiffyniadau a osodwyd yno'n fwriadol, a bydd y methiant nesaf yn anoddach ei ddehongli.
Ailgychwynnwch yr enghraifft a darllenwch y digwyddiad nesaf yn hytrach na thybio llwyddiant. Y gwall nesaf tebygol yw na all OpenVPN agor ei ffeil gyfluniad, sy'n gynnydd: aethpwyd i'r cyfeiriadur gwaith ac mae'r parser bellach yn rhedeg. Dilynwch fapio ffeil gwirioneddol yr uned oddi yno yn hytrach na dychwelyd at drafferthion rhwydwaith.
Mae cyfeirlyfr gweithredu systemd yn diffinio sut mae'r cyfeiriadur gwaith yn cael ei ddehongli ochr yn ochr â chyfeiriaduron gwraidd a sandboxio. Mae'r patrwm i'w gofio'n syml: mae pob cod statws yn enwi cam gwahanol, a dim ond gwallau'r rhaglen ei hun sy'n disgrifio'r rhaglen.