如何仅授予非 root 用户对 /var/log 目录的访问权限

如何仅授予非 root 用户对 /var/log 目录的访问权限

我新创建了一个非 root(普通)用户,并希望仅授予对 /var/log 目录的访问权限,以便用户可以查看和监控日志。用户不能 cd/ls 或访问 /etc 目录,也不能执行除查看 /var/log 中的文件之外的任何其他操作。这种设置可行吗?

我曾尝试在 /etc 目录上使用 setfacl -mu:user:---,但是使用该用户登录时出现 /etc/profile 权限被拒绝错误。

我怎样才能实现这个?

答案1

方法 1:

属于 adm 组的用户被授予查看日志文件的权限。

sudo usermod -aG adm <USER>

方法 2:

使用logrotate

logrotate 手册

创建模式所有者组在旋转之后(在运行 postrotate 脚本之前)立即创建日志文件(与刚刚旋转的日志文件同名)。mode 以八进制指定日志文件的模式(与 chmod(2) 相同),owner 指定拥有日志文件的用户名,group 指定日志文件所属的组。可以省略任何日志文件属性,在这种情况下,新文件的这些属性将使用与原始日志文件相同的值作为省略的属性。可以使用 nocreate 选项禁用此选项。

用法 :

/var/log/messages { .... create 444 user group .... }

方法3:

跟踪它吧!跟踪你需要的任何日志。

tail -f /var/log/messages.log

我会使用第三种方法。因为我很懒。(zzzzzz)

答案2

阅读man journalctl,并将normal用户添加到systemd-journaladm组。

或者,你可以用复杂的方法来实现:

虽然限制对其他目录的访问(在我看来)很愚蠢,但您可以/var/log通过将normal用户添加到组来授予对 部分内容的访问权限。阅读man group;man adduser;man find;man xargs;man stat;man sort;man uniq笔记将用户添加到组将使该用户group可以访问系统上的任何内容。

# How many unique permission values are there?
# Note that all but 41 allow some sort of group access
walt@bat:~(0)$ sudo find /var/log -print | xargs -r sudo stat -c "%A" | sort | uniq -c | sort -n
[sudo] password for walt: 
      1 drwx------
      1 drwxrwx---
      1 lrwxrwxrwx
      3 drwxr-sr-x
      3 drwxrwxr-x
      3 drwxr-x---
      4 -rw-rw-r--
     13 drwxr-xr-x
     41 -rw-------
     95 -rw-r--r--
    147 -rw-r-----

# What groups are there in /var/log?
walt@bat:~(0)$ sudo find /var/log -print | xargs -r sudo stat -c "%G" | sort | uniq -c | sort -n
      1 debci
      1 lp
      1 ntp
      1 syslog
      1 walt
      2 monkeysphere
      2 www-data
      5 utmp
     33 systemd-journal
    107 adm
    158 root

# Look at the owner and group of the log files and consider
# adding the normal user to these groups

walt@bat:~(0)$ sudo find /var/log -print | xargs -r sudo stat -c "%U %G %n" | sort -u
# 312 lines on MY system - not worth posting

# now, about the 41 that don't allow group access:
walt@bat:~(0)$ sudo find /var/log -perm 0600 -ls
   392396      4 -rw-------   1 root     utmp         1536 Mar 22 09:01 /var/log/btmp.1
   391673      4 -rw-------   1 root     utmp          384 Apr  2 00:43 /var/log/btmp
   394821      0 -rw-------   1 root     root            0 Mar  1  2018 /var/log/dbconfig-common/dbc.log
   424051      4 -rw-------   1 root     root          457 Feb  6  2018 /var/log/dbconfig-common/dbc.log.1
   522427      4 -rw-------   1 root     root         3149 Apr  3 09:04 /var/log/lightdm/seat0-greeter.log.3.gz
   523533      4 -rw-------   1 root     root          828 Feb 17 00:08 /var/log/lightdm/x-1.log.7.gz
   531112      0 -rw-------   1 root     root            0 Apr 14 07:36 /var/log/lightdm/seat0-greeter.log
   522345      4 -rw-------   1 root     root         1002 Apr  2 07:35 /var/log/lightdm/lightdm.log.6.gz
   524257      0 -rw-------   1 root     root            0 Mar 23 08:55 /var/log/lightdm/x-1.log
   523434      4 -rw-------   1 root     root          663 Mar 29 00:50 /var/log/lightdm/x-0.log.7.gz
   527110      4 -rw-------   1 root     root          809 Feb 17 16:19 /var/log/lightdm/x-1.log.6.gz
   523997      4 -rw-------   1 root     root         1402 Apr  2 00:58 /var/log/lightdm/seat0-greeter.log.4.gz
   523443      4 -rw-------   1 root     root         1358 Mar 29 00:55 /var/log/lightdm/lightdm.log.7.gz
   523486      4 -rw-------   1 root     root          206 Apr  6 07:35 /var/log/lightdm/lightdm.log.3.gz
   523363      4 -rw-------   1 root     root         2481 Apr  3 09:14 /var/log/lightdm/lightdm.log.5.gz
   522228      4 -rw-------   1 root     root         2303 Apr  5 10:46 /var/log/lightdm/seat0-greeter.log.2.gz
   527032      4 -rw-------   1 root     root          778 Mar 21 00:49 /var/log/lightdm/x-1.log.3.gz
   523128      4 -rw-------   1 root     root          662 Mar  6 00:15 /var/log/lightdm/x-1.log.5.gz
   524005      4 -rw-------   1 root     root          169 Apr  8 07:35 /var/log/lightdm/lightdm.log.2.gz
   523528      4 -rw-------   1 root     root         1842 Mar 29 00:50 /var/log/lightdm/seat0-greeter.log.5.gz
   522698      4 -rw-------   1 root     root          738 Apr  2 00:58 /var/log/lightdm/x-0.log.6.gz
   523317      4 -rw-------   1 root     root          737 Apr 13 10:07 /var/log/lightdm/x-0.log.1.gz
   523446      4 -rw-------   1 root     root         1231 Apr 14 07:35 /var/log/lightdm/lightdm.log.1.gz
   531103      0 -rw-------   1 root     root            0 Apr 14 07:36 /var/log/lightdm/x-0.log
   523440      4 -rw-------   1 root     root          854 Mar 22 21:57 /var/log/lightdm/x-1.log.1.gz
   522511      4 -rw-------   1 root     root         1801 Mar 28 09:57 /var/log/lightdm/seat0-greeter.log.6.gz
   522497      4 -rw-------   1 root     root          738 Apr  3 09:04 /var/log/lightdm/x-0.log.5.gz
   523402      4 -rw-------   1 root     root           70 Apr  6 00:41 /var/log/lightdm/x-0.log.3.gz
   531094      0 -rw-------   1 root     root            0 Apr 14 07:36 /var/log/lightdm/lightdm.log
   523394      4 -rw-------   1 root     root         1984 Apr  5 10:51 /var/log/lightdm/lightdm.log.4.gz
   523445      4 -rw-------   1 root     root          913 Mar 21 20:45 /var/log/lightdm/x-1.log.2.gz
   522927      4 -rw-------   1 root     root           67 Apr  7 22:08 /var/log/lightdm/x-0.log.2.gz
   523821      4 -rw-------   1 root     root         2017 Mar 26 01:46 /var/log/lightdm/seat0-greeter.log.7.gz
   522883      4 -rw-------   1 root     root         1965 Apr 13 12:49 /var/log/lightdm/seat0-greeter.log.1.gz
   523403      4 -rw-------   1 root     root          800 Mar  6 23:46 /var/log/lightdm/x-1.log.4.gz
   522648      4 -rw-------   1 root     root          771 Apr  5 10:46 /var/log/lightdm/x-0.log.4.gz
   406444    324 -rw-------   1 syslog   adm        331656 Jan 29  2018 /var/log/installer/syslog
   406446      4 -rw-------   1 root     root           19 Jan 29  2018 /var/log/installer/version
   406447      4 -rw-------   1 root     root         1067 Jan 29  2018 /var/log/installer/casper.log
   406448      8 -rw-------   1 root     root         7110 Jan 29  2018 /var/log/installer/debug
   406445    768 -rw-------   1 root     root       785438 Jan 29  2018 /var/log/installer/partman
walt@bat:~(0)$ 

相关内容