百科问答小站 logo
百科问答小站 font logo



为什么Linux用户用sudo命令而不直接使用root用户? 第1页

  

user avatar   pansz 网友的相关建议: 
      

这个理由,我觉得可以这么解释:

  1. 为了保证用户平时处于普通权限下。sudo命令使得用户能够尽快的退出高权限模式。
  2. 为了保证当前用户的环境。sudo命令可以使得高权限应用的运行环境是当前用户的环境而非root用户的环境。

那么展开说说这两个话题。

首先,为什么需要让用户平时处于普通权限下呢?

因为,实际上没有办法保证使用电脑的时候发生的所有事情都是用户主观知情的。

这里边的第一个例子,就是恶意软件。——我们显然不可能要求每个用户都通读了自己运行的软件的全部源代码,并且吃透,才能运行一个软件。——如果所有用户都常态在管理员权限下使用电脑,那么用户的应用程序就会习惯于使用全部的权限,从而可以任意的执行恶意代码,不被用户知道。

为了对恶意软件进行限制,设计操作系统的时候,设计为普通用户在普通权限下使用操作系统。仅仅当运行某些需要特殊权限的应用时,才会需要root权限。

对于Linux这样的系统来说,需要特殊权限的软件,需要能够说服专业用户他们为什么需要更高的权限,不然这些软件的设计就存在问题,会被社区批判。

现在的事实就是:使用Linux桌面应用的时候,绝大多数情况下,你根本不需要root权限。因为Linux应用就是为这样的环境开发的。

只有一个操作系统一开始的设计就贯彻了应用程序必须在普通用户权限下正常运行,这个操作系统的权限体系才会是完善的。

也就是说:这个机制保证了应用程序不会偷偷使用高权限功能。当他们需要使用高权限功能的时候,必须显式的告诉用户,让用户主动决定临时提权。


然而Windows系统在这个问题上则积重难返,因为当初的Windows是不限制权限的,而为了保证兼容,也就必须让这些应用程序都能够正常运行。大量的应用根本无法在没有最高权限的环境中运行。

比方说,我一直不理解原神这种软件,纯粹只是一款游戏,为什么需要管理员权限才能运行。——有些人问它为什么不上steam,我就乐了,steam上绝大多数游戏是不需要管理员权限的。

Windows不用sudo,直接用管理员账号,于是,Windows的软件生态就自然会形成:非常多的软件被设计为没有管理员权限不让使用。并且他们会习以为常。这对用户的权益是很大的侵害。



现在来说说第二个理由。sudo用于保护与维持当前用户的用户环境。

Linux与Windows不同,它一开始就被设计为「多人使用」,它是一个多用户多任务操作系统。

多人使用的一个重要特点,那就是允许多个用户以不同用户名登录并且保持自己的运行环境。


这种运行环境可以是什么呢?比方说我用双拼输入法你用五笔输入法,比方说我的电子邮件跟你不同,系统默认打开的邮箱不同。比方说我用的vim是白色配色,你用的vim编辑器是黑色。我用的vim装了十个插件,你用的vim装了另外8个与我不一样的插件。比方说我用bash你用zsh命令行,我们每个人的命令行提示符都不同,比方说我用xterm你用konsole,我们用的终端仿真软件不同。比方说我跟你的桌面图标不同,桌面壁纸不同。等等等等。

每个人有不同的使用习惯,每个人有不同的配置以及环境。

使用 sudo vim 编辑的时候,会使用我的当前用户的 vim 环境,以及实现我当前配置的语法着色。

但如果换用 root 用户,那么就没有办法做到了。——我需要将我的配置在root用户下重新配置一遍,才会有我熟悉的环境。

root 用户只有一个,假如 Linux 需要多人使用,它应该被配置为谁的环境呢

一个Linux电脑允许多个用户以多个不同的用户名使用。当使用root的时候,每个人使用它,都可能会把 root 修改为不同的环境 。不同的桌面,不同的输入法,不同的浏览器,不同的邮件,不同的搜索引擎,不同的xp。。。

多用户这个设计思路一开始就根植于 Linux 操作系统的设计中,那么这个root究竟怎么使用?——回答就是root用户本来就是被设计为仅用于临时维护,比方说当用户自己的用户账号出问题的时候,本机用root用户登录去解决。甚至某些系统会禁用root用户账号。

Linux 系统从设计之时就是多用户操作系统,当你理解这个设计思路的时候,就会发现,让所有用户同时使用 root 是一个不可接受的方案,你没法让多个用户共享同一个用户名同时相安无事,根本没有办法让多个用户具有好的体验,用户自己的账号+sudo机制显然会比直接用 root 用户的方案更好。


以上就是,我个人理解的,比较明显的两个理由。


user avatar   zorrolang 网友的相关建议: 
      

一大早起来真是笑死我了。

由于老头环空前的热潮,以及B站特有的UP主靠制作视频吸引流量转直播的模式,导致很多有人气但完全没有魂系列经验的主播在播这款游戏。比如某幻、瓶子。

(就是一开始制作视频是主业,直播是兼职,甚至是乐趣兴趣,到直播为主,制作视频反倒成了兼职。这种现象在游戏区特别明显。)

这就很有节目效果了,我看几个有名气的主播,都是重复被虐,平均活不过5分钟。真正是在哪里跌倒就从哪里跌倒。

很多在我们这些老玩家看来常识性的东西,对于他们来说完全不存在的。

盾反这种就不提了(其实我也不会),连二人转、回合制、推图都不懂。在大型地牢里不想打小怪,一个劲往前跑,结果变成开火车;当着怪物的面喝药=白喝;开宝箱被怪物背刺;以为学了法术就是法爷了,结果被几只鸟打得抱头鼠窜。

然后另一边,那些原本有魂系列经验的主播,就吃了刻板印象的亏。觉得自己有技术有实力,也不练级就顺着主线硬钢。就比如一上来的野外精英太阳骑士,要么你死要么我亡,绕路是不可能绕路的。

太阳骑士都还好,毕竟王老菊都能杀。

但没有等级,没有血量,没有伤害,硬钢噩兆。

真当噩兆快慢刀是假的,自己打几次就能盾反了?而且老头环这次砍了盾反在BOSS战中的作用,要反三次(二次)才能触发处决。

结果被虐3000遍,又不好意思去练级,尬在那了。

老头环是不是玩家的盛宴我还不知道(买了游戏,昨天也预下载了,结果今天起来发现那个盘满了……正在重新下载,下载完了又发现,我的电脑只有8G内存……),但肯定是不少主播的灾难、观众的盛宴。

当然,我也知道有些主播直播受罪是搞节目效果,但我也是真看到有主播被气到下播了。

另外一点,老头环这次其实是以探索为主要玩法。

B站UP主老戴今天专门做了一期视频讲解,想要玩好、玩轻松,就是尽可能的探索地图,拿物品、刷等级。而不是走到哪杀到哪,打不过硬去打。

就比如第一个剧情BOSS前,大地图上有的是小型地牢,野外精英,要把图清完了再去打噩兆,真跟打弟弟一样。(收回我的话,40级30血20耐20敏+3打刀7瓶奶,打了7次才过。前三次就是纯背板,后三次有点贪,经常血瓶白喝,最后一次基本掌握出手时机,就硬耗过去了。)

其实魂系列游戏特别吃角色强度(等级、装备),一些小怪你一刀砍死和一刀残血,完全就是两种难度。打BOSS,你挨一下就要喝药,和挨两下才需要喝药也是两倍的差距。

不过按照这么个玩法,的确没有什么节目效果。

讲真,还真就是看那些新手主播无能狂怒最有节目效果。

至于游戏本体,如今我也的确是玩上了,总体上来说符合我的期待。

作为一个中年人,我其实是在看了老头环试玩视频后才接触魂系列的。

原因有2,一是手残反映慢,玩这种游戏非常苦手;二是,我其实不太喜欢魂系列那种压抑的黑暗风格。

但老头环作为开放世界,虽然依旧以压抑阴郁为主,但也有光明广阔的场景。比如一开始做完新手指引推门而出的那一刻。

至于在难度与操作方面,远程技能的实用化,召唤物的存在,以及跳砍与伪盾反的出现,真的能够解决很多问题。

只是看你愿不愿意当一个“卑鄙的褪色者”。

远程技能包括法术与射击。我玩的武士,初始给的长弓非常给力。尤其记得推一座城堡图的时候,一开始不清楚套路,进入城堡被满地的炸药桶与两个放火球的法师直接秒了。复活后掏出长弓,一剑封喉,解决掉法师无伤过了。

还有初期的一个地牢,一个场景墙上爬着的与左右墙角蹲着的类似地精的怪物,近战5-6刀才能砍死。

第一次去直接围殴致死。

第二次,用弓箭一只只引过来,很轻松就过了。

至于近战武器,我是非常推荐初期见完老婆就能开箱子拿到的君王大剑。

这把武器虽然攻速低,成长性也低,但在初期真的非常实用。

尤其是在跳劈方面。

这一作跳劈虽然强但也看武器,比如武士上来给的打刀就属于跳劈对空,跳起来横着劈一刀,有时候都打不到站着的怪。而大剑则是竖着往地上砸,范围极大。

我举一个例子,就是我开地图第一次遇到红灵。就是等对方打完一套跳劈就完了。

我的战斗策略就是,遇事不决,举盾防御,然后跳劈。

至于BOSS战,依旧有难度,也许跳劈和法术都没啥作用,依靠的依旧是精准的闪躲后普攻(排除盾反)。

但我觉得这算是魂系列的乐趣之一。

如果随便什么BOSS战都能逃课,那也就没意思了。




  

相关话题

  为什么很多人喜欢动不动就重装系统? 
  Python真的不适合游戏开发吗?游戏全都用像Python这种解释型语言写,对开发出的游戏有什么影响? 
  大型c++项目在linux下如何调试? 
  美国最新创造了500万个就业岗位,但超过一半(250万个)跟计算机有关,这是什么原因? 
  为什么开源软件往往都支持Linux/Mac/Windows,而闭源软件往往只支持Win和Mac? 
  个人电脑只装Linux是怎样的体验? 
  为什么说linux桌面不稳定、差呢? 
  小白怎么买电脑,那些配置是什么意思? 
  为什么运维(SA)普遍反对使用 CentOS 7 ? 
  Linux 安装时,各个分区的作用是什么? 

前一个讨论
为什么二战期间对德国战略轰炸远比对英对日规模大的多,市面上相关的资料与书籍却比另外两个少的多?
下一个讨论
如何看待全民学编程的热度?





© 2024-11-08 - tinynew.org. All Rights Reserved.
© 2024-11-08 - tinynew.org. 保留所有权利