Symudodd hen ateb dros dro y gweithredadwy OpenVPN i rywle arall a gadael amlap shell yn y llwybr gwreiddiol. Fisoedd yn ddiweddarach daw diweddariad, ac mae dadwneud yr ateb yn troi'n gêm ddyfalu pa ffeil sydd wir yn gleient. Gall enw'r gorchymyn, y gweithredadwy a ffurfweddwyd yn y gwasanaeth a rhestr ffeiliau'r pecyn ei hun i gyd bwyntio at wahanol wrthrychau, ac mae atgyweirio un ohonynt heb y lleill yn cynhyrchu gwesteiwr sy'n edrych yn iawn ac yn ymddwyn yn waeth.

Dechreuwch gyda'r llwybr y mae'r gwasanaeth yn ei lansio

Nid yw terfynell ac uned systemd yn datrys gweithredadwy yn yr un ffordd. Mae'r shell yn chwilio PATH; mae'r uned yn enwi llwybr, a gall gorchuddiadau drop-in ei ddisodli heb gyffwrdd â'r ffeil rydych yn ei darllen. Mae'r gwahaniaeth hwnnw'n esbonio'r rhan fwyaf o'r dryswch yn y dasg hon. Mae hefyd yn penderfynu pa ffeil y mae'n rhaid i'ch atgyweiriad dargedu.

Gofynnwch i'r uned beth mae'n ei redeg, gan gynnwys y gorchuddiadau drop-in sy'n ei addasu, a darllenwch y llinell ExecStart sy'n deillio o hynny yn hytrach na'r darn rydych yn cymryd yn awdurdodol. Yna dilynwch y llwybr hwnnw drwy unrhyw gyswllt symbolaidd i'r ffeil derfynol. Mae amlap sy'n gorffen ag exec i gyfeiriadur cudd yn drefniant cyffredin o'r hen atgyweiriadau hyn.

Ysgrifennwch y llwybr a ddatryswyd i lawr cyn newid unrhyw beth.

systemctl cat [email protected] | grep -n 'ExecStart'
readlink -f "$(command -v openvpn)"

Cymharwch enw'r gorchymyn â llwybr y gwasanaeth

Mae'r ddau ateb yn aml yn wahanol, ac nid yw'r gwahaniaeth hwnnw'n fai yn awtomatig. Gall ategyn NetworkManager lansio ei lwybr ei hun, a gall cynhwysydd fowntio un arall.

Y peth sy'n bwysig yw gwybod pa berchnogion sy'n lansio'r broses sy'n gwasanaethu traffig. Os yw'r uned yn rhedeg /usr/local/sbin/openvpn-wrapper tra bod eich shell yn datrys /usr/sbin/openvpn, nid yw trwsio'r ail ffeil yn newid dim am y gwasanaeth.

Gofynnwch pa becyn sy'n berchen ar bob ymgeisydd, yna penderfynwch a yw'r ffeil yn cael ei rheoli gan becyn neu wedi'i gosod yn lleol. Mae ffeil heb becyn perchnogol yn ffeil y gosododd rhywun yno yn fwriadol, ac mae'n haeddu enw, perchennog a rheswm cyn iddi gael ei dileu. Mae'r camgymeriad gwrthwyneb hefyd yn gyffredin: trosysgrifo ffeil pecyn â hen ffeil binari a gadwyd oherwydd bod post fforwm wedi defnyddio'r un cyfeiriadur.

Gadewch i gronfa ddata'r pecyn siarad dros ffeiliau'r pecyn

Lle daeth y meddalwedd o becyn Debian, gall cronfa ddata'r pecyn ddweud wrthych a yw ei ffeiliau'n dal i gyd-fynd â'r hyn a osodwyd. Cwestiwn integriti cul yw hwn, nid barn ddiogelwch, ac mae'r gwahaniaeth yn bwysig pan fyddwch yn penderfynu beth i'w atgyweirio. Mae anghysondeb yn golygu bod y ffeil wedi newid ar ôl ei gosod, a allai fod yn hen ateb gennych chi neu'n olygiad lleol dilys. Nid yw'r allbwn yn setlo pa un, felly darllenwch ef fel awgrym yn hytrach na chasgliad.

Rhedwch y dilysiad a darllen y canlyniad yn hytrach na thrin canlyniad gwag fel prawf o unrhyw beth.

dpkg -S /usr/sbin/openvpn
dpkg --verify openvpn

Mae'r llawlyfr dpkg yn dogfennu bod y dilysiad yn cymharu ffeiliau a osodwyd â metadata a gofnodwyd yn lleol, gan ddefnyddio swm gwirio a storiwyd lle bo hynny ar gael. Mae'n sylwi ar ffeil pecyn sydd wedi newid, ac ni all ddweud wrthych a yw ffeil binari arall yn cael ei lansio yn ei lle.

Cofnodwch y cyflwr cyn atgyweirio

Casglwch y llwybr lansio a ddatryswyd, perthynas y ffeil â'r pecyn, lleoliad yr amlap a'r cofnod newid a'i cyflwynodd. Copïwch yr amlap i le gwarchodedig os yw'n cynnwys gwaith integreiddio y bydd ei angen yn nes ymlaen.

Peidiwch â phastio cynnwys yr amlap i edefyn cymorth cyn ei ddarllen, oherwydd mae'r sgriptiau hyn weithiau'n cario manylion cyfrifon neu gyflenwad.

Cofnodwch pa broffiliau y mae'r gwasanaeth yn eu defnyddio a phwy sydd wedi'i gysylltu wrth i chi weithio, oherwydd gall ailgychwyn y twnnel dorri'r sesiwn rydych yn gweinyddu'r gwesteiwr ohoni.

Dilyswch y lansiad, yna tynnwch yr amlap

Ar ôl yr atgyweiriad, cychwynnwch y gwasanaeth a chadarnhewch fod y broses yn rhedeg y llwybr a fwriadwyd gennych. Mae ymholiad fersiwn a wneir â llaw yn profi bod y ffeil yn gweithio; nid yw'n profi bod yr uned yn ei defnyddio.

Yna ailgysylltwch gleient a gwiriwch fod y proffil yn dal i ddilysu, oherwydd bydd cyfnewid binari sy'n anwybyddu'r opsiynau gwreiddiol yn methu mewn ffordd sy'n edrych fel problem tystysgrif.

Tynnwch yr amlap a ddadleolwyd drwy'r un cofnod newid a'i cyflwynodd. Mae'r atgyweiriad gorffenedig yn nodi pa weithredadwy sy'n rhedeg, pam, a pha ffeil a dynnwyd; nid yw adfer enw ffeil a gobeithio yr un peth.

Erthyglau cysylltiedig