为什么我的“appuser”虽然拥有 admin 组,却不允许读取 apche2 日志?

为什么我的“appuser”虽然拥有 admin 组,却不允许读取 apche2 日志?

我已经在这里找到了一些解决方案:AWStats:无法访问 /var/log/apache2/access.log,但这是“锤子方法”,例如更改所有权等。我不喜欢。

我想了解发生了什么(可能我会用其中一把锤子)

场景是什么样的:我有一个用户“myapp”(在我的情况下是我的 rails 应用程序使用的用户)

myapp@myapp-pre ~/appdir$ id
uid=1000(myapp) gid=100(users) groups=100(users),4(adm),27(sudo)

如您所见,该用户属于“adm”组。让我们看一下日志文件

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

这里我们看到,error.log 属于 root:adm - root(rw) - adm(r)

但不是“sodoed”:

myapp@myapp-pre ~/appdir$ ls -l /var/log/apache2/error.log
ls: cannot access /var/log/apache2/error.log: Permission denied   

如果我看一下父目录:

myapp@myapp-pre ~/appdir$ ls -l /var/log

...
-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
...

我发现许多文件具有相同的 root:adm 权限,并且用户 myapp 可以读取它们。

尝试读取文件

myapp@myapp-pre ~/appdir$ cat /var/log/apache2/error.log
cat: /var/log/apache2/error.log: Permission denied

同样的结果......

那么为什么我的用户“myapp”不允许阅读?

相关内容