我想知道Linux/Unix是否有与Android中的权限系统相当的东西
在Android系统中,应用程序需要请求的权限,用户在安装新应用程序时会看到并需要批准(例如,相机和网络访问都有权限)。
发布于 2016-12-21 09:15:35
您正在寻找的是所谓的强制访问控制,或MAC。Android默认支持它,并且它被紧密集成到userland中,但是位于Android的MAC基础上的技术(即SELinux)是默认Linux内核的一部分。此外,还存在另一个名为AppArmor的MAC框架,安卓不使用该框架,但它具有类似的功能。
配置SELinux或AppArmor并不适合心脏无力的人。但是,许多发行版附带了您可以使用的默认SELinux和/或AppArmor策略。例如,Ubuntu提供默认启用的AppArmor,RHEL/CentOS附带一些可以从中选择的SELinux规则集,默认情况下至少启用其中的一个。Debian也有一个附带的SELinux规则集,但默认情况下它没有启用,而且在启用SELinux时测试也不太好。
启用MAC的大多数发行版都没有非常严格的规则集;毕竟,如果太碍事,人们只会禁用它,那么您就得不到好处。然而,当然可以启用一组限制性更强的规则--这只是意味着您可能需要更多地调试一些东西,因为Linux桌面上的大多数应用程序都没有使用启用MAC的测试。
一些SELinux规则集的一个特性是"SELinux沙箱“。如果使用该方法,在其中运行的应用程序将几乎没有权限。这对于测试一个应用程序是有用的,而不会有它的行为不当和文件被吃掉的风险。有关这方面的更多信息,您可以阅读https://www.linux.com/learn/run-applications-secure-sandboxes-selinux。
发布于 2016-12-21 07:51:59
你不能把这样的系统进行比较。尽管Android使用Linux内核,但操作系统的工作方式与“正常”GNU/Linux发行版不同。
安卓系统中的应用程序运行在沙箱环境沙箱环境中,在该环境之外完全没有任何权限。这就是为什么应用程序在安装时必须获得访问Android系统其他部分的许可。
“正常”的GNU/Linux发行版并不是这样工作的。当您安装一个常规程序(例如GIMP)时,它不会在沙箱环境中运行。因此,您不必授予对GIMP的访问权限来访问您的文件。
当“正态分布”中的某些程序想要执行一些需要提升(root)权限(例如包管理器)的操作时,您必须通过输入root密码来授予该程序执行特定任务的访问权限。但是对于“正常”程序来说,这是不必要的。
我希望以上这些都能使事情至少有点办事员!也许会有人对Android有更深入的了解,并写出一个更好的答案。
这里是@Stephen对GNU/Linux中权限的一个很好的回答。
这里是关于在Android中权限如何工作的链接。
https://unix.stackexchange.com/questions/331832
复制相似问题