我正在尝试为从
github构建节点和npm的EC2实例构建用户数据脚本,然后启动服务.为了润滑这些轮子,我需要补充:
:/usr/local/bin
到/ etc / sudoers中的行开头:
Defaults secure_path="
https://superuser.com/questions/927512/how-to-set-path-for-sudo-commands讨论使用visudo实现这一点,但我想在EC2用户数据中以编程方式进行.
https://stackoverflow.com/questions/16282789/adding-sudo-permissions-to-sudoers-for-user-via-shell-script讨论了编辑sudoers文件,但是我想要实现的目标看起来非常糟糕.
我认为这条线路很容易取而代之,但我很难过.不仅仅是因为那个烦人的倒闭逗号!
解决方法
如果您可以使用替换secure_path值而不是附加它,则可以使用更简单的解决方案.通常sudo有一个像/etc/sudoers.d这样的配置目录,您可以在其中删除其他配置文件.
只需使用完整的secure_path值创建一个文件:
Defaults secure_path="<default value>:/usr/local/bin"
这会覆盖主配置中的值.如果所有计算机的路径值相同,则可以使用脚本或程序包轻松部署.
这还有一个额外的好处,即在将来更新sudo包时,您不必检查并可能合并配置文件.