J'essaie de faire travailler des calmars. J'ai une configuration pour que le cache soit créé dans le répertoire /var/cache/squid3/
. Cependant, j'obtiens cette erreur lors de l'exécution de squid avec la balise "-z" (c'est la première fois):
WARNING: Cannot write log file: /var/log/squid3/cache.log
/var/log/squid3/cache.log: Permission denied
messages will be sent to 'stderr'.
2015/05/23 20:05:39 kid1| Creating missing swap directories
2015/05/23 20:05:39 kid1| /var/cache/squid3 exists
FATAL: Failed to make swap directory /var/cache/squid3/00: (13)
Permission denied
Squid Cache (Version 3.3.8): Terminated abnormally.
CPU Usage: 0.010 seconds = 0.007 user + 0.003 sys
Maximum Resident Size: 22560 KB
Page faults with physical i/o: 0
J'ai essayé de résoudre ce problème en tapant Sudo chmod 755 /var/cache/squid3
, mais aussi sans succès.
Le résultat de namei -l /var/cache/squid3
est:
$ namei -l /var/cache/squid3
f: /var/cache/squid3
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x root root cache
drwxr-xr-x root root squid3
PDATE: J'ai créé de nouveaux répertoires dans /squid3_log
et /squid3_cache
. J'ai ensuite émis pour les deux:
Sudo chown -R root:proxy /squid3_log #and squid3_cache
et
Sudo chmod -R 777 /squid3_log #and squid3_cache
Il a corrigé l'autorisation refusée avec squid3_cache mais pas avec squid3_log.
PDATE: J'ai essayé de purger, de réinstaller, de reconfigurer et cela a fonctionné avec la première exécution squid3 -z
. Mais ensuite, quand j'ai exécuté le debug squid3 -NCd1
, il a montré:
2015/06/01 16:24:24| Starting Squid Cache version 3.3.8 for x86_64-pc-linux-gnu...
2015/06/01 16:24:24| Process ID 20379
2015/06/01 16:24:24| Process Roles: master worker
2015/06/01 16:24:24| With 65536 file descriptors available
2015/06/01 16:24:24| Initializing IP Cache...
2015/06/01 16:24:24| DNS Socket created at [::], FD 5
2015/06/01 16:24:24| DNS Socket created at 0.0.0.0, FD 6
2015/06/01 16:24:24| Adding nameserver 127.0.1.1 from /etc/resolv.conf
2015/06/01 16:24:24| Adding domain Home from /etc/resolv.conf
2015/06/01 16:24:24| Logfile: opening log /home/john/squid3_log/access.log
2015/06/01 16:24:24| WARNING: log parameters now start with a module name. Use 'stdio:/home/john/squid3_log/access.log'
2015/06/01 16:24:24| WARNING: no_suid: setuid(0): (1) Operation not permitted
2015/06/01 16:24:25| Unlinkd pipe opened on FD 11
2015/06/01 16:24:25| Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
2015/06/01 16:24:25| Logfile: opening log /home/john/squid3_log/store.log
2015/06/01 16:24:25| WARNING: log parameters now start with a module name. Use 'stdio:/home/john/squid3_log/store.log'
2015/06/01 16:24:25| Swap maxSize 15360000 + 16384 KB, estimated 1182798 objects
2015/06/01 16:24:25| Target number of buckets: 59139
2015/06/01 16:24:25| Using 65536 Store buckets
2015/06/01 16:24:25| Max Mem size: 16384 KB
2015/06/01 16:24:25| Max Swap size: 15360000 KB
2015/06/01 16:24:25| Rebuilding storage in /home/john/squid3_cache (no log)
2015/06/01 16:24:25| Using Least Load store dir selection
2015/06/01 16:24:25| Current Directory is /home/john
2015/06/01 16:24:25| Loaded Icons.
2015/06/01 16:24:25| HTCP Disabled.
2015/06/01 16:24:25| Sending SNMP messages from [::]:3129
2015/06/01 16:24:25| WARNING: no_suid: setuid(0): (1) Operation not permitted
2015/06/01 16:24:25| Pinger socket opened on FD 17
2015/06/01 16:24:25| /var/run/squid3.pid: (13) Permission denied
2015/06/01 16:24:25| Closing HTTP port [::]:3128
FATAL: Could not write pid file
Aborted (core dumped)
J'utilise Ubuntu 14.04 LTS (Trusty Tahr) et la dernière version de Squid3.
squid3
s'exécute sous le nom d'utilisateur proxy
name__. Vous devez donc définir l'utilisateur propriétaire (et le groupe) comme proxy
name__, puis définir les autorisations en conséquence.
Vous pouvez procéder comme suit pour remplacer de manière récursive le propriétaire et le groupe de propriétaires de tous les fichiers sous /var/cache/squid3
en utilisateur proxy
et groupe proxy
respectivement:
Sudo chown -R proxy:proxy /var/cache/squid3
Assurez-vous également que le propriétaire dispose de la bonne permission, celle que vous avez actuellement, à savoir 0755
.
Dans votre cas, comme vous pouvez le constater, le répertoire /var/cache/squid3
est uniquement accessible en écriture pour root
name__, de sorte que vous obteniez l’erreur d’autorisation refusée.
Dans mon cas (Ubuntu 16.04, Squid 3.5.12), le problème se trouve dans les règles AppArmor standard et dans le répertoire de cache non standard, recherchez /var/log/syslog
:
Sep 26 23:08:34 server2 kernel: [ 6458.643201] audit: type=1400 audit(1506449314.016:36): apparmor="DENIED" operation="mkdir" profile="/usr/sbin/squid" name="/BIG/squid_spool/00/00/" pid=4377 comm="squid" requested_mask="c" denied_mask="c" fsuid=13 ouid=13
Les liens symboliques ne fonctionnent pas dans ce cas aussi.
Solutions possibles:
cache_dir
en standard /var/spool/squid
et n'utilisez pas de liens symboliques dans ce chemin;Changer le fichier /etc/apparmor.d/usr.sbin.squid
et recharger apparmor:
Sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.squid
Mais vous pouvez avoir de petits problèmes sur les mises à jour.