Ritheann OpenVPN i mblaoisca ach teipeann sé faoi cron: is é an PATH an locht
Is féidir le hordú a nascann ó bhlaoisca teip faoi cron nó subprocess sula dtosaíonn an tollán. Deisigh an cosán, an chomhadlann oibre agus an teirminéal.
Nascann an t-ordú céanna ó bhlaoisca agus faigheann sé bás faoi cron, mar sin is é an chonclúid nádúrtha gurb é an tollán nó an deimhniú atá ciontach. Féach ar a bhfuil i gcoiteann ag an dá rith sula gcreideann tú é sin: tá an dénártha, an chumraíocht agus na dintiúir comhionann, agus níor athraigh ach timpeallacht an phróisis. Nuair nach bhfaightear an clár ar chor ar bith, ní chuidíonn aon mhéid dífhabhtaithe TLS. Is gnách go mbíonn an deisiú i gcosán, i gcomhadlann oibre agus i ndornán athróg timpeallachta, ní sa VPN.
Priontálann command -v openvpn sa bhlaoisca a oibríonn an freagra, agus is minic gurb é /usr/sbin/openvpn é, comhadlann nach gcuireann cron ar a chosán cuardaigh.
Níor thosaigh an tollán riamh, mar sin ní hé an tollán an fhadhb
Faigheann poist a thosaíonn cron timpeallacht íosta, de ghnáth PATH=/usr/bin:/bin, agus ní fhaigheann siad aon teirminéal rialaithe. Tá aon rud atá suiteáilte in /usr/sbin nó /usr/local/sbin go simplí as an liosta sin, agus léann líne an loga openvpn: not found in ionad earráid TLS. Teipeann subprocess Python ar bhealach eile: faigheann sé timpeallacht phróisis an ateangaire, a d’fhéadfadh a bheith níos saibhre ná timpeallacht cron ach nach bhfuil blaosc ar bith aici fós chun tilde a leathnú. Tarlaíonn an dá theip sula bhfágann aon phaicéad amháin an t-óstach.
Bealach tapa chun iad a idirdhealú is ea an chéad earráid a léamh in ionad an cheann deireanach. Cruthaíonn dénártha atá ar iarraidh eisceacht blaosc nó Python, cruthaíonn droch-chumraíocht teachtaireacht úsáide OpenVPN, agus cruthaíonn fíortheip croith láimhe stampaí ama agus seoltaí piaraí. Níl sa tríú ceann ach fadhb tolláin.
Buann cosáin iomlána agus liostaí argóintí ar shreanga blaosc
Tabhair an cosán réitithe go sainráite agus scipeáil an bhlaosc ar fad. Tugann subprocess.run(["/usr/sbin/openvpn", "--config", config, "--verb", "4"], capture_output=True, text=True, timeout=90) cód fillte, stdout agus stderr duit gan iarraidh ar bhlaosc ainm comhaid a léirmhíniú. Tóg cosán na cumraíochta ó os.environ["HOME"] nó pathlib.Path.home(), ionas nach gcaithfear tilde a leathnú riamh. Nuair a bhíonn gáirí agat le comhréir blaosca, bain úsáid as shlex.split, mar brisfidh roinnt sreinge le .split() ar aon chosán ina bhfuil spás. Léigh stderr freisin, ós rud é go scríobhann OpenVPN an chuid is mó dá chuid teipeanna luatha ann.
Clúdaíonn an riail chéanna cron: ní blaosc logála isteach í líne an phoist, mar sin ní lódálann aon rud do phróifíl agus ní shainmhíníonn aon rud do ailiasanna.
Cad a fhaigheann crontab i ndáiríre
Faigheann iontráil crontab an timpeallacht a dhearbhaíonn an crontab móide cúpla réamhshocrú a fuarthas le hoidhreacht, mar sin scríobh an cosán amach nó fill an glao i script a dhéanann é. Clúdaíonn líne ar nós PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ag barr an chomhaid na gnáthláithreacha suiteála, agus is é an atreorú le >> cron.log 2>&1 a dhéanann an chéad teip eile inléite. Níl aon bhealach ag próifíl atá cosanta le frása faire a rún a iarraidh faoi cron, ós rud é nach bhfuil aon teirminéal ann chun ceist a chur. Baineann a leithéid de nasc le haonad systemd ar féidir leis comhad dintiúir a léamh, ní le post a ligann air féin go bhfuil sé idirghníomhach.
Is iad cosáin choibhneasta an dara gaiste. Is minic a tharlaíonn rith tástála ón bhfillteán ina bhfuil an phróifíl, agus tosaíonn post cron áit eile ar fad, mar sin réitítear --config office.ovpn go comhad nach bhfuil ann agus léitear an teachtaireacht mar chomhad atá ar iarraidh seachas tollán atá ar iarraidh.
Cruthaigh é trí an timpeallacht a nochtadh
Atáirg an timpeallacht íosta go díreach: env -i PATH=/usr/bin:/bin /usr/sbin/openvpn --config office.ovpn --verb 4. Ciallaíonn gearán cosáin nó teirminéil ón rith sin go bhfuil an fhadhb suite os cionn an VPN. Má nascann sé, is iad na hamhrais eile an cuntas faoina ritheann sé, an chomhadlann ina dtosaíonn sé agus an dintiúr a thaispeánann sé. Is fearr ceachtar den dá thoradh ná babhta eile de sheiceáil deimhnithe.
Ansin déan an fillteán féin-thuairisciúil. Scoir le stádas ar leith do gach céim a shroich sé, logáil an dá shruth le stampa ama, agus inseoidh an chéad teip eile duit ar éag sé ag réiteach an chosáin, ag fíordheimhniú nó tar éis an tollán a bheith suas cheana.
Teastaíonn ord ceart ó aonad freisin: coinníonn Wants=network-online.target móide After=network-online.target an cliant ó thosú sula mbíonn seoladh nó bealach réamhshocraithe ann, rud a thagann chun solais ar shlí eile mar earráidí deimhnithe nó TLS a imíonn ar atosú láimhe.