为什么会有 Root 权限?

2021-03-05 21:33:25 +08:00
 exc
4955 次点击
所在节点    问与答
74 条回复
wzb0909
2021-03-05 21:36:27 +08:00
这样应用程序出问题就影响不到系统内核咧。你为什么问这个问题?
exc
2021-03-05 22:23:06 +08:00
这里的 root 权限不仅仅指 Android, Linux 等操作系统中所说的 Root,也泛指 CMS, 数据库等等系统。

因为我在开发程序时,发现即使是单用户系统,也要有用户名密码,这时这个唯一的用户就是 Root 用户了,而这时,我就要在程序里作硬编码处理,或在初次运行时输入(其实也要作硬编码处理),我觉得这样写的代码很难看。

其次多用户系统,拥有 Root 权限的用户会造成可怕的数据风险。
exc
2021-03-05 22:26:30 +08:00
@wzb0909 正因为应用程序拥有 Root 权限,应用程序出了问题才有可能会影响到系统吧。我的意思是,为什么在设计系统时,会设计 Root 这么一个特殊的权限。
wzb0909
2021-03-05 22:50:47 +08:00
@exc 多用户是 unix 的设计,数据库只有 admin 用户,和 root 没关系。

unix 的应用程序(区别于系统程序)都不应该用 root 用户的名义运行。

至于你说的硬编码,这是你自己写程序要处理的问题吧。一般来说你可以做成运行启动时配置,也可以做成编译时配置,这都是细节了~

我感觉我可能没有回答你的问题。但是,目前只能这样~
SuperMild
2021-03-05 22:53:22 +08:00
@exc 只要设计一把枪,就必然要有一个负责按扳机的人。

只要设计一把锁,就必然要有一个拿钥匙的人。

你看有了这个扳机,很不安全,或者有了这把钥匙,很不安全,但没有办法,现实就是不完美的,一切安全问题最终都会落到一个不完美的人类身上。

另外,便利与安全永远对立,想要多一点便利,就必然少一点安全。大多数情况下,客户、用户都会更看重便利性。
systemcall
2021-03-05 23:22:35 +08:00
为什么会有内核态和用户态?
为什么会有不同的 EL ?
多看一下操作系统的书吧
agagega
2021-03-05 23:50:15 +08:00
admin 和 user 应该放两张表
Osk
2021-03-06 00:04:38 +08:00
感觉这不像技术问题,而像哲学问题....
nvkou
2021-03-06 00:13:18 +08:00
因为人大于程序。不然的话为啥允许 rm / 为啥允许程序销毁,为啥允许删库。
所以程序给你 root 账户管理它的一切,而 root 账户的安全就是另一个话题。

但是,一个数据库的 root 账户凭啥会影响到系统?
Kinnice
2021-03-06 03:51:44 +08:00
因为普通用户的权限不够用
chinvo
2021-03-06 05:04:02 +08:00
@nvkou #6 数据库有 system / exec 指令
zxCoder
2021-03-06 08:38:10 +08:00
要有一个上帝吧
dingwen07
2021-03-06 09:08:42 +08:00
总得需要一个用户来给其他用户分配权限吧
JoJoJoJ
2021-03-06 09:25:53 +08:00
为啥我们会有个主席?
exc
2021-03-06 10:01:36 +08:00
@wzb0909 unix 的应用程序不应该以 root 用户的名义运行,否则可能会破坏系统内核。换句话说,正因为存在 root 权限,才存在应用程序可以以 root 权限运行,不是吗?

单用户程序,总得有一个标记用于指定用户的登录吧,这个标记在我看来,也是硬编码的一种。
exc
2021-03-06 10:07:16 +08:00
@SuperMild 可以在锁上留下更多的钥匙孔呀,一把锁并非只能拥有一个钥匙孔。现在的电子锁,是否可以认为一个指纹等于一个钥匙呢?
exc
2021-03-06 10:10:27 +08:00
@agagega 为什么不能放在一张表里?
exc
2021-03-06 10:11:57 +08:00
@Kinnice 为什么要分普通用户和特殊用户?
MozzieW
2021-03-06 10:13:39 +08:00
这个问题挺有意思的啊
根据不同用户赋予权限, 是现实使用的需要,是代码设计的结果。
CMS 系统存在多个使用用户的,一般都有现实的职位、职责区分,让不同人看到、使用不同的功能,这是 CMS 系统的需求。当然可以所有用户都有全部的权限,此时只有把所有人都用同一权限( ROOT )就可以;就是说权限分级是可以兼容这种权限不分级的使用的。
在操作系统上,情况相似,但也有不同。相似是操作系统的确可能是多个人同时使用(服务器);不同的是,应该也把操作系统上的软件也当做操作系统的用户。此时,权限也是防护电脑的功能。
在软件的使用上,轻度用户和重度用户对系统的了解和需求是不一样的。ROOT 权限也提供了一种方式,方便用户去定制。潜在的,使用 ROOT 权限也要求使用者对系统足够了解,而不是随意折腾。
ROOT 权限并不仅仅解决一个问题或者有一个纯粹的出发点,我更倾向于最初简单的设计随着需求变化迭代后,成为针对大多数场景的解决方案。
exc
2021-03-06 10:16:16 +08:00
@dingwen07 数据安全,用户隐私呢?只要存在你说的这个用户,就永远无法得到保障了吧,而这明明是技术可以解决的呀。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/758933

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX