(AWS) 在 sudoers 中为 user:wsgi 添加排除项的安全影响
(AWS) Security implications of adding an exclusion for user:wsgi in sudoers
在 AWS 上使用 libreoffice 设置脚本将文档转换为 PDF 时,如果没有 sudo
,我无法将 libreoffice 转换为 --convert-to pdf
,因为用户 wsgi
可能没有对 /opt/python/current/app
目录的写入权限。
所以我打算通过将以下行附加到 /etc/sudoers
文件来解决这个问题:
wsgi ALL = NOPASSWD: /opt/libreoffice5.3/program/soffice.bin
因为我想在部署时自动执行此操作,所以在我的 .ebextensions/01_packages.config
中我有
container_commands:
01_edit_sudoers_only_once:
command: "echo 'wsgi ALL = NOPASSWD: /opt/libreoffice5.3/program/soffice.bin' >> /etc/sudoers"
test: "test ! -f .sudoers_edited"
02_mark_sudoers_as_edited:
command: "touch .sudoers_edited"
这是否存在潜在的安全问题?
为 Web 服务进程提供使用 sudo 调用事物的能力存在一个重大的潜在安全问题。
授予它写入包含代码的目录的权限也是不安全的。
您确实需要确定被拒绝的内容及其重要性。如果错误消息不够清楚,您可以使用 strace
来观察进程系统调用和产生的错误。
在 AWS 上使用 libreoffice 设置脚本将文档转换为 PDF 时,如果没有 sudo
,我无法将 libreoffice 转换为 --convert-to pdf
,因为用户 wsgi
可能没有对 /opt/python/current/app
目录的写入权限。
所以我打算通过将以下行附加到 /etc/sudoers
文件来解决这个问题:
wsgi ALL = NOPASSWD: /opt/libreoffice5.3/program/soffice.bin
因为我想在部署时自动执行此操作,所以在我的 .ebextensions/01_packages.config
中我有
container_commands:
01_edit_sudoers_only_once:
command: "echo 'wsgi ALL = NOPASSWD: /opt/libreoffice5.3/program/soffice.bin' >> /etc/sudoers"
test: "test ! -f .sudoers_edited"
02_mark_sudoers_as_edited:
command: "touch .sudoers_edited"
这是否存在潜在的安全问题?
为 Web 服务进程提供使用 sudo 调用事物的能力存在一个重大的潜在安全问题。
授予它写入包含代码的目录的权限也是不安全的。
您确实需要确定被拒绝的内容及其重要性。如果错误消息不够清楚,您可以使用 strace
来观察进程系统调用和产生的错误。