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 өз нақты тұлғасымен жазады, көзделген оқырман файлды пайдалана алады, бөгде пайдаланушылар пайдалана алмайды және бірлікті тоқтату жобаланғандай тазалайды. Хосттың ортақ уақытша каталогында файлдың пайда болуы талап емес, және бұл әдетте айырбастың өз жолын ешқашан алмағанының белгісі. Оқырманды қайта іске қосқаннан кейін сынаңыз, тек бірінші орындау кезінде ғана емес. Тазалау мінез-құлқы жобаның бөлігі, сондықтан оны болжаудың орнына бақылаңыз.
Тұрақты күй өмір сүру ұзақтығы сәйкес келетін жерде болуы керек, өйткені орындалу каталогы жоғалуға арналған. Орынды ыңғайлылыққа емес, өмір сүру ұзақтығына қарай таңдаңыз. Бұл әдет осы зерттеудің келесі нұсқасын болдырмайды.