Could not read pid file dhe shm_open(...): Permission denied mund të shfaqen gjatë të njëjtit nisje të dështuar të Squid. Ato emërtojnë burime të ndryshme. Rregullimi i pronësisë së një drejtorie cache nuk rregullon, në vetvete, asnjërën prej tyre.

Në Linux, një objekt i memories së përbashkët POSIX përfaqësohet zakonisht nën /dev/shm. Pronari dhe mënyra e aksesit kanë rëndësi. Prandaj një objekt i lënë nga një identitet tjetër ekzekutimi mund të shkaktojë dështimin e një procesi të mëvonshëm, edhe kur squid.conf është i lexueshëm dhe porta e dëgjimit është e lirë.

Rindërtoni si nisi ky shembull

Krahasoni nisjen normale të shërbimit me çdo nisje manuale të përdorur gjatë zgjidhjes së problemit. Një proces i nisur manualisht dhe shërbimi i paketuar mund të përdorin përdorues, shtigje ose skedarë konfigurimi të ndryshëm. Përcaktoni nëse një shembull tjetër i Squid është ende duke punuar përpara se ta trajtoni një objekt si të vjetëruar.

Më pas lexoni operacionin e saktë që dështon. Një gabim PID ka të bëjë me vendndodhjen e konfiguruar të PID dhe drejtorinë mëmë të saj. Një gabim regjistri ka të bëjë me skedarin ose drejtorinë e regjistrit. Një gabim i inicializimit të cache ka të bëjë me ruajtjen. Një gabim shm_open ka të bëjë me objektin e emërtuar të memories së përbashkët dhe mund të përfshijë gjithashtu politikën e sigurisë të zbatuar ndaj procesit.

Për çdo burim, krahasoni aksesin e kërkuar gjatë ekzekutimit me pronarin dhe mënyrën aktuale. Nëse lejet e zakonshme duken të mjaftueshme, shqyrtoni provat përkatëse të refuzimit në SELinux ose AppArmor. Vetëm “Permission denied” nuk tregon cila shtresë e refuzoi aksesin.

Rregulloni pronësinë pa krijuar një problem të dytë

Mbani llogarinë e ekzekutimit në përputhje me konfigurimin e shërbimit të instalimit. Kalimi i gjithçkaje në nobody mund të prishë aksesin e programeve ndihmëse dhe të sjellë një mospërputhje të re me skedarët e menaxhuar nga shërbimi.

As fshirja e çdo objekti që duket si Squid në /dev/shm nuk është një hap i parë i mirë. Një objekt i emërtuar mund t'i përkasë një shembulli aktiv. Pastrimi, kur është i nevojshëm, duhet të synojë një burim të braktisur të konfirmuar me shërbimin e prekur të ndalur, e më pas nisje përmes mekanizmit normal të shërbimit.

Rezultati i dobishëm është një model i qëndrueshëm nisjeje dhe pronësie. Ekzekutimi i një komande si root derisa gabimi të zhduket mund ta lërë rinisjen e ardhshme rutinë me saktësisht të njëjtin problem.

Artikuj të ngjashëm