我正在安装Unity。 Unity安装程序说它必须以root身份运行,这是因为Chromium Embedded Framework必须以root身份运行。为什么Chromium Embedded Framework必须以root身份运行?
Unity安装程序指向我here,但该页面未提及root权限。
以下是控制台输出,后代:
lol@localhost:unity(0)\ ./unity-editor-installer-5.4.0b23+20160628.sh
This installer must be run as root.
安装程序中的相关代码段:
# chrome-sandbox requires this: https://code.google.com/p/chromium/wiki/LinuxSUIDSandbox
chown root "${EXTRACT_SUBDIR}/Editor/chrome-sandbox"
chmod 4755 "${EXTRACT_SUBDIR}/Editor/chrome-sandbox"
编辑7月15日:找到this thread。有人可以帮助确认chrome-sandbox上不再需要root所有权和SUID吗?
我正在根据these instructions进行构建,但在运行cros_sdk时仍然需要root密码。
答案 0 :(得分:2)
为了确保每个人都使用相同的环境和工具来构建Chromium,所有构建都在chroot
内完成。这个chroot是它自己的小世界:它包含自己的编译器,它自己的工具(它自己的bash副本,它自己的sudo副本)等等。
它使用chroot
,prctl
和其他几个系统调用,如果进程没有足够的权限,则可以返回EPERM error
。
因此,安装程序希望运行以root身份运行的bash脚本,以便在沙箱上设置SUID。他们希望您以root身份登录,因为它会为文件所有者permissions
以及所有者UID
(用户ID)和GID
(组ID)提供帮助。通常在Unix / Linux中,当程序运行时,它继承了登录用户的访问权限。
答案 1 :(得分:0)
Chromium Embedded Framework不需要以root身份运行。只有在chrome-sandbox可执行文件上设置permissions / chmod才需要root权限。 Linux上的安装程序通常需要root权限,没有什么奇怪的。