如何在sudoers中指定命令参数?作为背景,aws
命令实际上是通向大量子系统的网关,我想限制用户只能运行aws s3 cp ...any other args...
当我尝试以下内容时 /etc/sudoers
Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws s3 cp, /usr/local/aws/bin/aws s3 cp
gbt1 ALL=(gbt-ops) NOPASSWD: AWSS3_CMD
不幸的是,shell提示输入密码
$ sudo -u gbt-ops aws s3 cp helloworld s3://my-bucket/hw.1
gbt-ops's password:
如果我在Cmnd_Alias中删除了命令args,那么它会按需要流动(没有密码提示),但是授权范围太广。因此,仅将某些类型的命令调用限制为正确的方法是什么。
Cmnd_Alias AWSS3_CMD = /usr/local/bin/aws, /usr/local/aws/bin/aws
然后
$ sudo -u gbt-ops aws s3 cp helloworld s3://my-bucket/hw.1
...happy
非常感谢。
为什么会有/ usr / local / bin / aws,/ usr / local / aws / bin / aws?我的意思是您在同一行中重复了两次命令?
—
Mohammed Noureldin