很讨厌桌面端系统的权限管理模式

查看 55|回复 5
作者:t41372   
在日常使用桌面操作系统时,干什么都要提供管理员权限。在电脑上随便安装/更新个软件就要求管理员权限,玩个游戏要管理员,随便安装个软件要管理员。很多软件做的事其实根本就不应该要求用户提供管理员权限。操作系统在权限设计上就不应该要求软件必须这么频繁的要求管理员权限。
假如这个软件除了安装自己以外,还会偷偷的读取你浏览器保存的密码呢(这其实不需要管理员)?或是帮你安装根证书呢? 偶然发现奇游加速器会在系统里植入根证书? 或是给你做个 memory dump ,获取你密码管理器里的主密码?Most Password Managers Store Secrets in Plaintext in Memory还有各种软件在电脑上拉屎,装后门,扫盘的行为。更不用说这让很多用户对提供管理员权限这一个本该十分敏感的权限脱敏了。
最小权限原则在 1974 年就提出了。50 年了,广大用户依旧在裸奔,依旧在任何事情上提供自己能提供的最高的权限。很多人会说用户就不该运行不信任的代码,我觉得这只是在摆烂罢了。难道你打算让用户审查运行在自己电脑上的每一行代码?还是你不安装第三方软件?能出问题的地方太多了。
防毒软件的作用确实就体现在这,但是这更多是一种亡羊补牢的办法: 设计上就有洞,防毒软件只是站在哪边盯着洞看而已。而且,有很多绕过防毒软件的方法,比如往执行档里面塞空白内容,让档案大小超过防毒软件的上限等等。
咩,但讨厌归讨厌,微软 200%不会改,因为这大概率会对兼容性造成毁灭性的打击。macOS 要好一些,但没有主动杀毒软件还是会让人觉得有点慌。
xtreme1   
selinux 不就是干这个的, 你完全可以用于桌面
blinue   
历史包袱太重。传统软件都安装在 Program Files 里,这个文件夹需要管理员权限才能写。有些游戏要求管理员权限是为了防外挂或快速申请内存。微软做了很多努力,比如 UWP 、MSIX 、AppContainer 等,都没有普及开。
orangie   
macOS 也有主动杀毒软件,比如某大厂使用赛门铁克、迈克菲,只不过一般个人使用 macOS 不用杀毒软件。因为一方面有沙箱机制,另一方面很多不复杂的常用软件都可以从经审核的应用商店下载,其他渠道默认情况下必须是受信任的开发者发布的软件才能运行。即便先前的安装步骤已经输入过密码,安装证书等敏感操作也还会单独弹出提示并要求再次给密码,并且警告提示明确简要。macOS 出现安全问题基本就是有漏洞、有开发者遭到供应链攻击、shell 终端里的 unix 程序病毒以及破解软件携带病毒,一般用户正常渠道使用并且更新系统就行了(比 Windows 更新的体验好太多了),需要特别渠道软件从而关心这些问题的软件开发者也基本能够正确认识这些问题。
Windows 的权限管理最大的问题是这么多年安装软件还是需要管理员权限,不会提示说明为什么需要,导致用户对这个权限申请具体要做什么都不清楚。如果个个都像 chrome 一样不用管理员权限,甚至类似于绿色软件,那确实对安全性的提升,至少是赋予管理员权限的随意程度有很大改善。scoop 能够解决部分开源软件的问题,但是众多平常使用的软件还是没办法。
Linux 发行版的包管理器其实也没好到哪去,安装软件包总是需要 root 权限,尽管只是为了能够在过程中修改配置。但是有时候明明可以只下载和释放文件就行,比如自己手动下载 nginx 并且配置就不需要 root 权限。在 Linux 上使用 homebrew 可以改善一下,但毕竟 brew 不是为了 Linux 而生的,很多时候还是不够好。
总体来说管理员权限的最小化使用方面还是 macOS 做的最好,软件开发者几乎都把软件做成绿色软件(对比 Windows 的非绿色),并且 macOS 上的软件配置都是用户级别的(对比 Linux 包管理器的系统全局配置/etc ),多数情况改配置不需要管理员权限。
codehz   
@orangie
mac 表面绿色,实际也只是打包到一起而已,/Application 目录有特殊权限魔法(用户可以复制.app 进去,但之后就无法修改里面的文件),但主要还是靠内核强制的签名验证和强制强化运行时
linux: 不用 root 也可以偷你底裤,至今没有一个靠谱的软件签名方案,很多软件包括 shell 甚至是把不用签名即可运行作为一个特性,唯一可靠的只有依赖可信执行环境,没有普及不说,但仍然有很多方法欺骗本地运行的程序(虽然不能直接偷取可信环境里的密钥,但依旧可以在退出可信环境后把解密的数据偷出来),再加上 linux 社区对可信计算的负面情绪,这个问题几乎没有解决的可能性,比如现在 linux tpm 环境测量结果几乎完全可以被伪造
life90   
有些不规范的软件,用的开发环境就是 Administrator 账户。用的人只能被迫。没有这个权限,程序无法运行。所知的某个国企,全员 Administrator 账户。系统坏了就重装,反正都交给外包了。然后大多数人都是图方便,最高权限没那么多提示,程序运行成功的概率多一些。别说 Windows, Linux 很多默认都是 root 。哪怕用的 sudo ,也要把这个命令改成不用输密码的。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部