温馨提示×

ubuntu syslog如何设权限

小樊
47
2026-09-08 02:51:19
栏目: 智能运维

在 Ubuntu 里,syslog 本身通常由 rsyslogsyslog-ng 提供服务,所谓“设权限”一般包含三类场景:

  1. 日志文件权限(谁可读写)
  2. rsyslog 运行权限(以什么用户运行)
  3. 远程/网络访问权限(谁可发日志)

下面分别说明。


一、设置 syslog 日志文件权限

1. 查看当前日志权限

ls -l /var/log/syslog

典型输出:

-rw-r----- 1 syslog adm 12345 Jun 10 10:00 /var/log/syslog

含义:

  • 属主:syslog
  • 属组:adm
  • 权限:640

2. 修改文件权限

sudo chmod 640 /var/log/syslog
sudo chown syslog:adm /var/log/syslog

3. 让普通用户能读 syslog

将用户加入 adm 组:

sudo usermod -aG adm username

重新登录后生效。


二、通过 rsyslog 配置文件控制权限(推荐)

1. 编辑 rsyslog 配置

sudo nano /etc/rsyslog.conf

sudo nano /etc/rsyslog.d/50-default.conf

2. 指定日志文件权限

$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640

说明:

  • 0640:属主读写,组只读
  • 修改后重启 rsyslog:
sudo systemctl restart rsyslog

三、限制谁可以写 syslog(本地 socket)

Ubuntu 默认使用:

/run/systemd/journal/syslog
/var/spool/rsyslog

1. 限制写入用户

sudo chown root:syslog /var/spool/rsyslog
sudo chmod 0750 /var/spool/rsyslog

2. 只允许特定程序写

通过 apparmorsystemd 限制服务权限。


四、限制远程 syslog(UDP/TCP)

1. 只允许特定 IP

# /etc/rsyslog.conf
module(load="imtcp")
input(type="imtcp" port="514"
      ruleset="remote")
ruleset(name="remote") {
    if ($fromhost-ip == "192.168.1.100") then {
        action(type="omfile" file="/var/log/remote.log")
    }
}

2. 防火墙限制

sudo ufw allow from 192.168.1.100 to any port 514

五、加固建议(安全)

  • 日志权限不要低于 640
  • 不要给 others 读权限
  • 远程 syslog 一定要加防火墙
  • 重要日志可加 chattr +a(仅追加)
sudo chattr +a /var/log/syslog

如果你能具体说:

  • 是想限制某个用户
  • 还是限制远程机器
  • 还是防止日志被改

我可以给你更精确的配置示例。

0