我正在尝试编写一个通用的 sudoers 文件来控制我们所有环境中所有用户的权限,并且我一直在使用通配符作为主机名,如下所示(所有数据都已匿名化)
Host_Alias stg01 = *.stg01.sfo.acme.com
Host_Alias stg02 = *.stg02.sfo.acme.com
Host_Alias stg03 = *.stg03.sfo.acme.com
Host_Alias prod = *.prod.aus.acme.com, *.prod.nyc.acme.com
Host_Alias prod02 = *.prod02.aus.acme.com, *.prod02.nyc.acme.com
Host_Alias prod03 = *.prod03.nyc.acme.com
Host_Alias db01 = *.db01.sfo.acme.com
Host_Alias db02 = *.db02.sfo.acme.com
Host_Alias db03 = *.db03.sfo.acme.com
Host_Alias hi02 = *.hi02.sfo.acme.com
Host_Alias env1 = mgmt02.stg01.sfo.acme.com, *.hiho.sfo.acme.com
Host_Alias env2 = *.prod.aus.acme.com, *.prod.nyc.acme.com, *.stg01.sfo.acme.com, *.prod02.aus.acme.com, *.prod02.nyc.acme.com, *.hiho.sfo.acme.com
Host_Alias testhosts = ws1.prod.aus.acme.com, ws2.prod.nyc.acme.com, ws1.prod.aus.acme.com, ws2.prod.nyc.acme.com
Host_Alias env3 = mgmt01.stg01.sfo.acme.com, *.hiho.sfo.acme.com
Host_Alias env4 = *.prod.aus.acme.com, *.prod.nyc.acme.com, *.stg01.sfo.acme.com
Host_Alias env5 = *.prod.aus.acme.com, *.prod.nyc.acme.com, *.stg01.sfo.acme.com, *.hiho.sfo.acme.comsfo
当我尝试时,我得到:
>>> sudoers file: syntax error, line 0 <<<
并一直重复到第 16 行。这是在运行 sunOS 5.10 的 Solaris x86 服务器上。
我做错什么了吗? visudo -c -f 在我的 Linux 测试箱上返回正常,所以我很困惑。
任何想法,将不胜感激!
谢谢。
答案1
您是否尝试过不使用通配符主机运行,然后再添加其中一个主机,看看 sudo 是否会受到影响?这将澄清是否允许在主机上使用通配符的问题。
答案2
我需要对所有主机别名使用大写字母。因此,使用 STG01 而不是 stg01 等等:)