我新创建了一个非 root(普通)用户,并希望仅授予对 /var/log 目录的访问权限,以便用户可以查看和监控日志。用户不能 cd/ls 或访问 /etc 目录,也不能执行除查看 /var/log 中的文件之外的任何其他操作。这种设置可行吗?
我曾尝试在 /etc 目录上使用 setfacl -mu:user:---,但是使用该用户登录时出现 /etc/profile 权限被拒绝错误。
我怎样才能实现这个?
答案1
方法 1:
属于 adm 组的用户被授予查看日志文件的权限。
sudo usermod -aG adm <USER>
方法 2:
使用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-journal
或adm
组。
或者,你可以用复杂的方法来实现:
虽然限制对其他目录的访问(在我看来)很愚蠢,但您可以/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)$