我们有外部监控工具,它将通过 SSH 访问我们的 Linux 机器并读取 top/ping/netstat/disk 活动。由于我为此创建了单独的 ssh 密钥和单独的用户,我想知道我是否可以以任何方式限制此用户,或者它必须是管理员用户。
是否有任何细粒度的控制来控制哪些用户可以运行,哪些不能运行?例如,scp 我们的数据库转储很糟糕,读取顶级统计数据或 ping 到另一台机器则没问题...
答案1
一个好的做法是创建一个几乎没有任何权限的用户,然后设置 sudo。监控帐户可以运行您检查状态所需的命令,而不能执行其他任何操作。
在我的 Nagios 设置中,我有一个名为 nagios 的基本用户,并结合了如下所示的 sudo 配置。
### Nagios commands
nagios ALL=NOPASSWD: /etc/nagios_checks/*, /usr/lib/nagios/plugins/*