Problemas com permissões com o squid3

3

Eu tenho tentado fazer a lula funcionar. Eu tenho uma configuração para o cache a ser criado no diretório /var/cache/squid3/ . No entanto, recebo esse erro ao executar o squid com a tag "-z" (é a primeira execução):

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

Eu tentei corrigir isso digitando sudo chmod 755 /var/cache/squid3 , mas também sem sucesso.

A saída de namei -l /var/cache/squid3 é:

$ 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

ATUALIZAÇÃO: Eu fiz novos diretórios em /squid3_log e /squid3_cache . Eu então emiti para ambos:

sudo chown -R root:proxy /squid3_log #and squid3_cache

e

sudo chmod -R 777 /squid3_log #and squid3_cache

Fixou a permissão negada com squid3_cache mas não com squid3_log.

ATUALIZAÇÃO: Eu tentei limpar, reinstalar, reconfigurar e funcionou com a primeira execução squid3 -z . Mas quando eu executei o debug squid3 -NCd1 , ele mostrou:

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)

Estou usando o Ubuntu 14.04 LTS (Trusty Tahr) e a versão mais recente do Squid3

    
por TheBro21 23.05.2015 / 20:10

3 respostas

6

squid3 é executado como o usuário proxy , portanto, você define o usuário proprietário (e o grupo) como proxy e, em seguida, define as permissões adequadamente.

Você pode fazer o seguinte para alterar recursivamente o proprietário e o grupo de proprietários de todos os arquivos em /var/cache/squid3 para usuário proxy e grupo proxy respectivamente:

sudo chown -R proxy:proxy /var/cache/squid3 

Verifique também se o proprietário tem a permissão correta, a permissão que você tem atualmente, por exemplo, 0755 .

No seu caso, como você pode ver, o diretório /var/cache/squid3 é apenas gravável por root , portanto você estava recebendo o erro de permissão negada.

    
por heemayl 23.05.2015 / 21:17
0

No meu caso (Ubuntu 16.04, Squid 3.5.12), o problema está nas regras padrão do AppArmor e no diretório de cache não padrão, veja em /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

Os links simbólicos também não funcionam neste caso.

Soluções de possibilidade:

  • Altere a opção cache_dir para o padrão /var/spool/squid e não use links simbólicos neste caminho;
  • Altere o arquivo /etc/apparmor.d/usr.sbin.squid e recarregue o apparmor:

    sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.squid
    

    Mas você pode ter pequenos problemas nas atualizações.

  • Monte uma partição separada para o cache do Squid.
por Alexey Vazhnov 26.09.2017 / 20:24
-1

altere o proprietário para o proxy do diretório instalado proxy chown sudo: proxy / usr / local / squid -R e setar usuário proxy no squid.conf

vi /usr/local/squid/etc/squid.conf proxy cache_effective_user

Em seguida, reinicie o squid, sua permissão negou o problema e ATENÇÃO: Não é possível gravar o arquivo de log também resolvido.

Eu testei no Ubuntu 14.x do meu sistema e, em seguida, comente aqui

    
por Muhammad Ashraf 25.10.2017 / 18:44