我想知道如何在 Linux 控制台 (bash) 上授权(仅允许一组命令)用户。到目前为止,我能够通过 TACACS+ 验证 ssh 用户,但授权不起作用。
这是我的 tac_plus.conf 文件,为了测试确实进行了简化:
accounting file = /tmp/tacacs.acc
#default authentication = file /etc/passwd
user=bart {
default service = deny
pap = cleartext "bart"
service = ppp protocol = lcp {
priv-lvl = 15
idletime = 10
}
cmd = telnet {
# permit specified telnets
permit 131\.108\.13\.[0-9]+
permit 128\.[0-9]+\.12\.3
}
}
我如何与 PAM 交互(如果可以的话)以仅授权用户使用 TACACS 指定的命令?我已将 PAM 配置如下:
account sufficient pam_tacplus.so debug server=192.168.56.19 service=ppp protocol=lcp
auth sufficient pam_tacplus.so debug server=192.168.56.19
password sufficient pam_tacplus.so debug server=192.168.56.19
session sufficient pam_tacplus.so debug server=192.168.56.19 secret=testing123 service=ppp protocol=lcp
另外,你知道为什么这可以通过 SSH 运行,但不能通过本地控制台登录运行吗?
谢谢!
答案1
经过一番研究,我意识到我想要实现的目标似乎没有得到支持。
Linux 中不允许通过 TACACS 进行 CLI 命令级别 ACL,因此我最终使用 TACACS 进行身份验证(使用带有 LDAP 的 PAM 进行用户/密码存储)并使用 LDAP 进行授权(组成员身份)。