Unity3d 为什么Chromium嵌入式框架必须作为root运行?(统一安装程序)

Unity3d 为什么Chromium嵌入式框架必须作为root运行?(统一安装程序),unity3d,chromium-embedded,Unity3d,Chromium Embedded,我正在安装Unity。Unity安装程序说它必须作为root运行,这是因为Chromium Embedded Framework必须作为root运行。为什么Chromium嵌入式框架必须作为root运行 Unity安装程序指向我,但该页面没有提到根权限 以下是控制台输出,供后人参考: lol@localhost:unity(0)\ ./unity-editor-installer-5.4.0b23+20160628.sh This installer must be run as root.

我正在安装Unity。Unity安装程序说它必须作为root运行,这是因为Chromium Embedded Framework必须作为root运行。为什么Chromium嵌入式框架必须作为root运行

Unity安装程序指向我,但该页面没有提到根权限

以下是控制台输出,供后人参考:

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日:找到。是否有人可以帮助确认chrome沙盒不再需要root所有权和SUID


我正在根据进行构建,但在运行cros_sdk时,仍然要求我输入root密码。

Chromium Embedded Framework不需要以root身份运行。只有在chrome沙盒可执行文件上设置权限/chmod时才需要根权限。Linux上的安装程序通常需要root权限,这并不奇怪。

为了确保每个人都使用相同的环境和工具使用Chromium进行构建,所有构建都在
chroot
中完成。这个chroot是它自己的小世界:它包含它自己的编译器、它自己的工具(它自己的bash副本、它自己的sudo副本)等等

它使用
chroot
prctl
和其他一些系统调用,如果进程没有足够的权限,这些系统调用可以返回
EPERM error

因此,安装程序希望运行一个bash脚本,该脚本以root用户身份运行,以便在沙箱上设置SUID。他们希望您作为root用户,因为它提供文件所有者的
权限
以及所有者
UID
(用户ID)和
GID
(组ID)。通常在Unix/Linux中,当程序运行时,它会继承登录用户的访问权限


大多数应用程序都可以作为普通用户进行编译和运行。Unity安装程序只是将Unity提取到一个子目录中。为什么chrome沙盒需要归root所有并设置SUID?感谢您提供的信息!为了限制权限而获取root访问权限,这是我仍然不理解的。在任何情况下都不需要提升权限。可以使用命令
fakechroot
代替
chroot
。函数
prctl
可以做几种不同的事情,只有一些需要root访问。很抱歉没有授予赏金,这个答案经过了很好的研究。