Eu já encontrei algumas soluções aqui: AWStats: não pode acessar / var /log/apache2/access.log , mas isso são "métodos-martelo", como alterar a propriedade e assim por diante. Eu não gosto.
Eu quero entender o que está acontecendo (provavelmente eu uso um desses martelos)
Qual é o cenário: eu tenho um usuário "myapp" (no meu caso, o usuário meu aplicativo usa trilhos)
myapp@myapp-pre ~/appdir$ id
uid=1000(myapp) gid=100(users) groups=100(users),4(adm),27(sudo)
Como você pode ver, o usuário tem o grupo "adm". Vamos dar uma olhada no arquivo de log
myapp@myapp-pre ~/appdir$ sudo ls -l /var/log/apache2/error.log
-rw-r----- 1 root adm 17503 Apr 28 17:05 /var/log/apache2/error.log
Aqui vemos que error.log pertence à raiz: adm - root (rw) - adm (r)
Mas não "sodoed":
myapp@myapp-pre ~/appdir$ ls -l /var/log/apache2/error.log
ls: cannot access /var/log/apache2/error.log: Permission denied
Se eu der uma olhada no diretório pai:
...
-rw-r--r-- 1 root root 347 May 26 2017 alternatives.log.7.gz
-rw-r--r-- 1 root root 419 Mar 14 2017 alternatives.log.8.gz
-rw-r--r-- 1 root root 369 Feb 14 2017 alternatives.log.9.gz
dr-xr--r-T 2 root adm 4096 Apr 28 06:05 apache2
-rw-r----- 1 root adm 4013282 Apr 28 17:22 auth.log
-rw-r----- 1 root adm 4467467 Apr 23 06:05 auth.log.1
-rw-r----- 1 root adm 269469 Apr 15 06:05 auth.log.2.gz
...
Vejo que muitos arquivos têm a mesma raiz: adm adm e o usuário myapp pode lê-los.
Tente apenas ler o arquivo
myapp@myapp-pre ~/appdir$ cat /var/log/apache2/error.log
cat: /var/log/apache2/error.log: Permission denied
mesmo resultado ...
Então, por que meu usuário "myapp" não tem permissão para ler?