లాగ్ జోడించబడుతుంది కానీ తిరిగి సృష్టించలేము: డైరెక్టరీ ACLని తనిఖీ చేయండి
ఫైల్కు జోడించడానికి దాని డైరెక్టరీలో కొత్త పేరు అవసరం లేదు; సృష్టించడానికి అవసరం. ఏదైనా విస్తరించే ముందు యాక్సెస్ ACLని వారసత్వ డిఫాల్ట్లతో పోల్చండి.
నిరంతరం పెరుగుతున్న లాగ్, ఏదో దాన్ని తిరిగి సృష్టించిన క్షణంలో పెరగడం ఆపేస్తుంది, మరియు లోపం అనుమతి నిరాకరించబడిందని చెబుతుంది. లాగ్ ఫైల్కే ఎక్కువ అనుమతులు అవసరం అనేది ఆకర్షణీయమైన ముగింపు, కానీ ఫైల్ ఇప్పటికే అదే ఖాతాకు రాయదగినది కావచ్చు. ఇప్పటికే ఉన్న పేరుకు జోడించడం మరియు కొత్త పేరు సృష్టించడం రెండు వేర్వేరు తనిఖీలు, మరియు రెండవది మాత్రమే డైరెక్టరీని అడుగుతుంది.
జోడించడం మరియు సృష్టించడం వేర్వేరు తనిఖీలు
ఇప్పటికే ఉన్న ఫైల్ను జోడించడానికి తెరవడానికి ఆ ఫైల్పై రాయడం యాక్సెస్ మరియు దాని మార్గంలోని ప్రతి డైరెక్టరీలో వెతకడం యాక్సెస్ అవసరం. ఫైల్ సృష్టించడానికి దాన్ని కలిగి ఉన్న డైరెక్టరీలో రాయడం మరియు వెతకడం అవసరం, ఎందుకంటే ఆ చర్య దానికి పేరు జోడిస్తుంది. పేరు మార్చడం ద్వారా ఫైల్ను భర్తీ చేయడం రెండు డైరెక్టరీలను మరియు వాటి స్టికీ-బిట్ నియమాలను కూడా తాకుతుంది.
| Operation | What must permit it | Typical failure message |
|---|---|---|
| Append to an existing log | File write access, path traversal | Permission denied on the file |
| Create a missing log | Directory write and search access | Permission denied on the path |
| Rename a replacement into place | Both directories, plus sticky restrictions | Permission denied or operation not permitted |
ఇప్పటికే తెరిచిన డిస్క్రిప్టర్ నాల్గవ సందర్భాన్ని జోడిస్తుంది. ఒక ప్రక్రియ అధికారాలను వదిలే ముందు తెరిచిన రాయడం హ్యాండిల్ను పట్టుకొని కూడా తన తర్వాతి గుర్తింపులో అదే మార్గాన్ని తిరిగి తెరవడంలో విఫలమవుతుంది. విజయవంతమైన జోడింపులు మరియు విఫలమైన సృష్టి ఒకే ప్రక్రియకు, ఒకే క్షణంలో, రెండూ నిజమై ఉండవచ్చు.
డిఫాల్ట్ ACLలు వారసత్వంగా వస్తాయి, అవి ఇవ్వవు
డిఫాల్ట్ ఉపసర్గతో ప్రారంభమయ్యే నమోదు కొత్త వస్తువులు డైరెక్టరీ నుండి ఏమి వారసత్వంగా పొందుతాయో వివరిస్తుంది. అది డైరెక్టరీకి స్వయంగా ఏమీ ఇవ్వదు, మరియు ఇప్పటికే ఉన్న ఫైల్ ACLని బాగుచేయదు.
namei -l /var/log/openvpn/server.log
getfacl -p /var/log/openvpn
getfacl -p /var/log/openvpn/server.log
యాక్సెస్ నమోదులను డిఫాల్ట్ నుండి విడిగా చదవండి, మరియు మాస్క్ చదవండి. పూర్తి హక్కులను జాబితా చేసే పేరున్న నమోదు కూడా మాస్క్ ద్వారా పరిమితం కావచ్చు, అందుకే ప్రభావవంతమైన వ్యాఖ్య మొదటి పంక్తిలోని అక్షరాల కంటే ముఖ్యం.
కాన్ఫిగరేషన్లోని మార్గానికి బదులు పరిష్కరించిన మార్గాన్ని ఉపయోగించండి. సింబాలిక్ లింక్, మౌంట్ పాయింట్ లేదా తిప్పిన డైరెక్టరీ నిజమైన ఫైల్ను మీరు ఇచ్చిన అనుమతి ఎప్పటికీ చేరని చోట ఉంచవచ్చు. మొదట పేరు సాధనంతో మార్గాన్ని నడవండి, తర్వాత ప్రతి స్థాయిని సంబంధిత ఖాతాతో పోల్చండి. పై స్థాయి డైరెక్టరీని ఊహించడం సరిదిద్దుడు ఒక స్థాయి చాలా ఎక్కువ ఎక్కడానికి కారణం.
ఆ క్షణంలో ఎవరు రాస్తున్నారో గుర్తించండి
ఏదైనా మార్చే ముందు సేవా యూనిట్, దాని డ్రాప్-ఇన్లు మరియు డీమన్ స్వంత ఖాతా సెట్టింగ్లను తనిఖీ చేయండి. జోడించే ప్రక్రియ మరియు తిరిగి సృష్టించే ప్రక్రియ భిన్నంగా ఉండవచ్చు: రొటేషన్ సహాయకుడు, స్థితి రచయిత మరియు వెబ్ పాఠకుడు గుర్తింపును అరుదుగా పంచుకుంటారు.
root షెల్ నుండి నడిపిన పరీక్ష పరిమిత సేవను తిరిగి ఉత్పత్తి చేయదు, మరియు సేవ విఫలమవుతూనే ఉన్నప్పుడు అది విజయవంతమవుతుంది. విఫలమైన చర్యను అదే యూనిట్ కింద, అదే ఖాతా మరియు అదే శాండ్బాక్స్ సెట్టింగ్లతో తిరిగి ఉత్పత్తి చేయండి. సాధ్యం కాకపోతే, తాత్కాలిక షెల్తో యూనిట్ను ప్రారంభించి అది నివేదించే గుర్తింపును తనిఖీ చేయండి. మిగతా ఏదైనా సేవను కాదు, మీ టెర్మినల్ను కొలుస్తుంది.
సృష్టి నిజంగా అవసరమైతే, రచయితకు ప్రత్యేక లాగ్ డైరెక్టరీకి యాక్సెస్ ఇవ్వండి మరియు వినియోగదారులకు చదవడం యాక్సెస్ను విడిగా ఉంచండి. ఒకే లాగింగ్ కాల్ను తృప్తిపరచడానికి పంచుకున్న ఖాతాను లేదా మొత్తం అప్లికేషన్ చెట్టును రాయదగినదిగా చేయడం చిన్న సమస్యను పెద్ద దానితో మార్చుకోవడం.
తిరిగి ప్రవేశపెట్టకుండా తిప్పండి
ఫైల్ను తిరిగి సృష్టించేవారు తదుపరి చక్రానికి దాని యజమాని మరియు మోడ్ను నిర్ణయిస్తారు, కాబట్టి సరిదిద్దుడును రొటేషన్ కాన్ఫిగరేషన్తో సమన్వయం చేయండి. వేరే ఖాతా కింద లేదా కొత్త ACLతో సృష్టించిన భర్తీ విజయవంతమైన సరిదిద్దుడు తర్వాత వైఫల్యాన్ని తిరిగి తెస్తుంది.
మోడ్ మరియు గ్రూప్ను సృష్టి సమయంలోనే సెట్ చేయండి, తర్వాత కాదు, మరియు తదుపరి జోడింపు బదులు తదుపరి రొటేషన్ను ధృవీకరించండి. జోడింపు ఇప్పటికే దాటిన పరీక్షను మాత్రమే పునరావృతం చేస్తుంది. రొటేషన్ సాధనం సృష్టి మోడ్ సెట్టింగ్ను అందిస్తే, సృష్టి తర్వాత chmod బదులు దాన్ని ఉపయోగించండి. సృష్టి మరియు chmod మధ్య గ్యాప్ తదుపరి రాయడం విఫలమయ్యే సరైన క్షణం.
కత్తిరింపు ఏమైనా విఫలమైతే, అనుమతులు జోడించడం ఆపండి
మీరు రాయగల ఫైల్ను కత్తిరించడంలో వైఫల్యం డైరెక్టరీ అనుమతులతో వివరించబడదు, మరియు వాటిని మరింత జోడించడం సహాయపడదు. బదులుగా లక్షణాలు మరియు పరిమితిని చూడండి: append-only లక్షణం జోడింపు మోడ్లో మాత్రమే రాయడానికి అనుమతిస్తుంది, మరియు చదవడానికి-మాత్రమే మౌంట్ లేదా సేవా శాండ్బాక్స్ ACL అనుమతించే చర్యను నిరాకరించవచ్చు.
యూనిట్ యొక్క ఫైల్సిస్టమ్ పరిమితులు మరియు మార్గం యొక్క మౌంట్ ఎంపికలను తనిఖీ చేయండి, తర్వాత విఫలమైన ఖచ్చితమైన చర్యను తిరిగి ఉత్పత్తి చేయండి. ఎప్పుడూ అడగని అనుమతిని విస్తరించడం ఏ పరిమితి నిజమైందో మాత్రమే దాచుతుంది. పారేయదగిన యూనిట్లో ఒకసారికి ఒక పరిమితిని తీసివేయండి, మరియు శాశ్వతమైన ఏదైనా మార్చే ముందు దాన్ని తిరిగి పెట్టండి.