PrivateTmp: hook ఫైల్ను రాసింది, కానీ అది ఎక్కడికి పోయింది?
ప్రైవేట్ తాత్కాలిక నామస్థలం ఫైల్ను తొలగించడం బదులు దాస్తుంది. యూనిట్ను మార్చే ముందు ప్రక్రియ మూలాన్ని తనిఖీ చేయండి, తర్వాత పంచుకున్న డేటాకు నిజమైన మార్గం ఇవ్వండి.
Hook-లు విజయాన్ని నివేదిస్తాయి, అయినా అదే మార్గం shell నుండి ఇప్పటికీ ఖాళీగా కనిపిస్తుంది. రెండు ప్రకటనలు ఒకే సమయంలో నిజం కావచ్చు, ఎందుకంటే systemd సేవ తన సొంత mount నామస్థలంలో ప్రైవేట్ తాత్కాలిక డైరెక్టరీతో జీవించవచ్చు. అది అర్థమైన తర్వాత, ఆసక్తికరమైన ప్రశ్న రాత అసలు విజయవంతమైందా అనేది.
రెండు తాత్కాలిక డైరెక్టరీలు, ఒకే మార్గం
ఐసోలేషన్ సెట్టింగ్ యూనిట్కు తాత్కాలిక డైరెక్టరీల ప్రైవేట్ వీక్షణను ఇస్తుంది, వాటిని చదవడానికి మాత్రమే చేయడం బదులు. యూనిట్ వెలుపలి ప్రక్రియలు అక్కడ ఏమి రాస్తున్నారో చూడలేవు, యూనిట్ ఆగినప్పుడు మిగిలినవన్నీ పారవేయబడతాయి. అందువల్ల hook ముద్రించిన మార్గం మరియు shell నుండి తనిఖీ చేసిన మార్గం ఒకే పేరుతో వేర్వేరు వస్తువులను సూచించవచ్చు.
ఇది దృశ్యమానత సమస్య, మరియు ఇది డేటా నష్ట సమస్యలా కనిపిస్తుంది. ఏమీ తొలగించబడలేదు, ఎందుకంటే ఫైల్ shell సభ్యుడు కాని నామస్థలంలో ఉంది. అదే ఆదేశం యూనిట్ లోపల నడిపినప్పుడు భిన్నంగా ప్రవర్తిస్తుంది, ఆ పరిశీలనే సాధారణంగా వాదాన్ని తీరుస్తుంది. రాత గురించి ఏదైనా నిర్ణయానికి రాకముందు యూనిట్ సెట్టింగ్లను చదవండి.
కనిపించని దాన్ని రాయలేని దాని నుండి వేరు చేయండి
విజయవంతమైన రాత మరియు విఫలమైన తెరవడం వేర్వేరు సాక్ష్యాలను ఇస్తాయి, ఆ భేదమే మరమ్మత్తును నిర్ణయిస్తుంది. hook ఫైల్ సృష్టించబడిందని చెప్పినా బాహ్య పాఠకుడు దాన్ని కనుగొనలేకపోతే, మీకు నామస్థల ప్రశ్న ఉంది. ఒకవేళ hook అనుమతి లోపం లేదా విఫలమైన తెరవడాన్ని నివేదిస్తే, ఫైల్ ఎప్పుడూ రాయబడలేదు మరియు నామస్థలంలో ఏ మార్పూ సహాయపడదు.
systemctl show [email protected] -p PrivateTmp -p User -p Group -p RuntimeDirectory
systemctl show [email protected] -p MainPID --value
sudo ls -l /proc/PID/root/tmp/client-stateప్రక్రియ-మూల మార్గం సేవ యొక్క సొంత ఫైల్సిస్టమ్ వీక్షణను చూపుతుంది, ప్రక్రియ ఇంకా నడుస్తున్నంతసేపు దానిపై అనుమతి తనిఖీలకు లోబడి. అదే సెషన్లో యూనిట్ జర్నల్ను చదవండి, ఎందుకంటే ఎవరైనా ఇప్పటికే కారణాన్ని నిర్ణయించి ఉంటే రాత లోపాన్ని మరియు పోయిన ఫైల్ను కలపడం సులభం.
పంచుకున్న డేటాకు స్పష్టమైన స్థలం ఇవ్వండి
సేవకు మాత్రమే అవసరమైన డేటా దాని ప్రైవేట్ తాత్కాలిక డైరెక్టరీలో ఉంటుంది. మరో ప్రక్రియ చదవాల్సిన డేటాకు రెండింటికీ నిర్వచించిన మార్గం కావాలి, యజమాని, మోడ్ మరియు గడువు పేర్కొని. యూనిట్ను సవరించే ముందు రెండింటిలో ఏ పరిస్థితి మీది అని నిర్ణయించుకోండి. ఈ సంఘటనలలో చాలావరకు ప్రైవేట్ ఫైల్ను పంచుకున్న ఫైల్గా భావించడం నుండే వస్తాయి.
[Service]
RuntimeDirectory=openvpn-hook-office
RuntimeDirectoryMode=0750రన్టైమ్ డైరెక్టరీ ఫోల్డర్ను సిస్టమ్ రన్టైమ్ ప్రాంతం కింద ఉంచుతుంది, యూనిట్ కాన్ఫిగర్ చేసిన వినియోగదారు మరియు గ్రూప్ కోసం దాన్ని సృష్టిస్తుంది, యూనిట్ ఆగినప్పుడు తీసివేస్తుంది. ప్యాకేజీ యూనిట్ చెక్కుచెదరకుండా ఉండటానికి దాన్ని drop-in ద్వారా జోడించండి, తర్వాత మేనేజర్ను మళ్లీ లోడ్ చేసి ఆ ఇన్స్టాన్స్ను మళ్లీ ప్రారంభించండి, దాని క్లయింట్లు మళ్లీ కనెక్ట్ అవుతాయని అంగీకరిస్తూ.
ఇన్స్టాల్ చేసిన యూనిట్ ఇప్పటికే కోరే ఏ రన్టైమ్ డైరెక్టరీనైనా ఉంచుకోండి. జాబితాలో జోడించడం బదులు దాన్ని భర్తీ చేయడం, మార్పుతో ఎవరూ లింక్ చేయని అసంబంధిత ఫీచర్ను పాడు చేసే సాధారణ మార్గం.
రెండు ప్రత్యేక హక్కుల పొరలు ఏకీభవించకపోవచ్చు
సేవా మేనేజర్ యూనిట్ కాన్ఫిగర్ చేసిన వినియోగదారు కోసం డైరెక్టరీని సృష్టిస్తుంది, అయితే VPN డీమన్ కనెక్షన్ hook నడిపే ముందు విడిగా తన సొంత ఖాతాలోకి దిగవచ్చు. ఇవి వేర్వేరు పొరలు, అవి వేర్వేరు గుర్తింపులను పేర్కొనవచ్చు.
నిర్బంధ మోడ్తో root యాజమాన్యంలోని డైరెక్టరీ ఇప్పటికే హక్కులను వదులుకున్న డీమన్కు పూర్తిగా కనిపిస్తుంది, అయినా దానికి రాయలేరు. అప్పుడు లోపం అనుమతి సమస్యగా చదవబడుతుంది, మీరు ఊహించిన చోటే మార్గం ఉన్నా. డైరెక్టరీ యజమానిని hook నివేదించే గుర్తింపుతో పోల్చండి. అవి భిన్నమైతే, మోడ్ ఎప్పుడూ ప్రశ్న కాదు.
యాజమాన్యాన్ని మార్చే ముందు hook నిజంగా ఏ గుర్తింపులో నడుస్తుందో తనిఖీ చేయండి. డైరెక్టరీని సరిచేయడానికి సేవ యొక్క అమలు వినియోగదారుని మార్చడం వేరే చోట పరికర ప్రాప్యతను మరియు నెట్వర్క్ హక్కులను మార్చవచ్చు, ఇది చిన్న సమస్యకు పెద్ద ధర.
మొత్తం అప్పగింతను ధృవీకరించండి
ఒకేసారి నాలుగు విషయాలను నిర్ధారించండి: hook తన నిజమైన గుర్తింపులో రాస్తుంది, ఉద్దేశించిన పాఠకుడు ఫైల్ను ఉపయోగించగలరు, అసంబంధిత వినియోగదారులు ఉపయోగించలేరు, మరియు యూనిట్ ఆపినప్పుడు డిజైన్ ప్రకారం శుభ్రపరుస్తుంది. హోస్ట్ పంచుకున్న తాత్కాలిక డైరెక్టరీలో ఫైల్ కనిపించడం తప్పనిసరి కాదు, సాధారణంగా అది మార్పిడికి ఎప్పుడూ సొంత మార్గం దొరకలేదని సంకేతం. పునఃప్రారంభం తర్వాత పాఠకుడిని పరీక్షించండి, మొదటి అమలు సమయంలో మాత్రమే కాదు. శుభ్రపరిచే ప్రవర్తన డిజైన్లో భాగం, కాబట్టి ఊహించకుండా గమనించండి.
శాశ్వత స్థితి ఆయుష్షు సరిపోయే చోట ఉండాలి, ఎందుకంటే రన్టైమ్ డైరెక్టరీ మాయమవడానికే సృష్టించబడింది. స్థలాన్ని సౌలభ్యం కంటే ఆయుష్షు ఆధారంగా ఎంచుకోండి. ఆ అలవాటు అదే దర్యాప్తు తదుపరి సంస్కరణను నివారిస్తుంది.