来自该问题的注释为什么以root用户身份登录很不好?:

正在使用sudo机制,因此非管理工具“不会损害您的系统”。我同意,如果我克隆的某个github项目能够将恶意代码注入/bin,那将是非常糟糕的。但是,台式计算机的原因是什么?相同的github代码一旦执行,无需sudo权限,就可以擦除我的整个home文件夹,将键盘记录程序放入我的自动启动会话中,或者在~中进行任何操作。

除非有备份,否则这个home文件夹通常是唯一的,并且包含宝贵的(即使不是敏感数据)。但是,根目录会建立系统,并且通常可以通过简单地重新安装系统来进行恢复。在/var中保存了一些配置,依此类推,但与2011年的节日图片相比,它们对用户的重要性较低。root权限系统是有意义的,但在台式机系统上,它感觉像是在保护错误的数据。 />
是否无法防止$HOME中发生恶意代码?为何没人在乎呢?

评论

必填xkcd

真正的问题是人们很少使用诸如AppArmor之类的强制访问控制来保护其主目录。当他们这样做时,然后保护root即可保护AppArmor,进而保护您的房屋。例如,在Ubuntu上,尽管以您的用户身份在家中运行,但不一定允许您的浏览器访问您的假日图片。

操作系统的工作是保护自己免受不受信任的用户以及代理(可能是愚蠢的)运行的程序的侵害。如果您运行的程序会删除所有内容,那么很遗憾成为您。但是,操作系统需要自我保护,因此有意或无意运行恶意程序的人都无法禁用系统。无论是台式机系统还是服务器,都没有区别。

用户[error / stupidity / ???]可以完全阻止该用户使用系统,但不应影响其他用户,也不会对整个系统造成影响。

#1 楼

我将不同意Unix安全模型的时代或开发它的环境存在错误的答案。我认为不是这种情况,因为有适当的机制可以处理此问题。


root权限系统是有意义的,但是在桌面系统上,感觉就像是它保护了错误的数据。 。


存在超级用户的权限才能保护系统免受其用户的侵害。用户帐户具有权限,可以保护该帐户免受其他非root用户帐户的影响。

通过执行程序,您可以授予程序使用UID进行操作的权限。由于您的UID拥有对主目录的完全访问权限,因此您已为程序提供了相同的访问权限。就像超级用户可以对需要保护以防止恶意行为(密码,配置,二进制文件)的系统文件进行更改一样,主目录中的数据可能也需要相同的保护。

最小特权原则规定,您不应授予绝对必要的访问权限。就您的文件而言,运行任何程序的决策过程应与对系统文件相同。如果您不提供任何一段代码,那么您就不会出于保护系统的利益而信任无限制使用超级用户帐户,那么就不应为了保护数据而无限制地使用超级用户帐户。


无法防止$ HOME中发生恶意代码吗?为什么没有人关心它呢?


Unix不会提供细粒度的权限,这是出于相同的原因,因为rm命令周围没有刀片防护:权限不存在保护用户免受自身侵害。

防止恶意代码损坏主目录中文件的方法是不使用您的帐户运行它。创建一个没有任何特殊权限的单独用户,并在该UID下运行代码,直到您确定是否可以信任它为止。

还有其他方法可以执行此操作,例如chrooted监狱,但是建立起来需要更多的工作,而逃离它们不再是过去的挑战。

评论


评论不作进一步讨论;此对话已移至聊天。

–Rory Alsop♦
18 Mar 1 '18 at 0:04

令人不安的是,周围的人只是简单地赞扬他们看到的第一个答案。在被接受之前,以前投票最高的一票获得了45票赞成。从那以后,只有一个,而这个突然增加了50。我真的希望每个人都按内容投票,而不是按顺序投票。抱歉,没有主题。

– phil294
18 Mar 2 '18 at 12:30



@Blauhirn这个答案实际上是在累积大量的否决票,这就是为什么分数没有太大变化的原因。你确实有一点;即使考虑到这一点,排名靠前的答案的投票活动也比下方的答案多。

– Ajedi32
18年3月2日在18:08

@Blauhirn如果让您感觉更好,两天前当我第一次迷失于此问题时,我阅读了所有答案,仅根据内容(但当时投票最多)投票支持该答案。 (我的观点是,也许人们会比其他人更好地找到这个答案-我确实如此。)

– Pedro A
18-3-2在19:46



@Hamsterrific对于我们这些努力阅读每个或​​几乎每个可用答案并且不愿仅对最高答案进行投票的人,应该有一个徽章。

–can-ned_food
18年3月4日在20:12

#2 楼

由于基于UNIX的安全模型已有50年的历史了。

UNIX是最广泛使用的OS的基础,甚至Windows受到的最大异常影响也远不止于此。它源于计算机是大型的,昂贵的,速度缓慢的机器的时代,当时奥秘专家只能使用这些机器。

那时,用户根本没有在任何计算机,大学服务器,个人计算机(当然也没有手机)上收集大量个人数据。随用户而变化的数据通常是科学计算过程的输入和输出数据-丢失它们可能构成一种损失,但是很大程度上可以通过重新计算它们而得到补偿,当然这与当今数据泄漏的后果完全不同。

没有人会在计算机上存储日记,银行信息或裸照,因此保护他们免受恶意访问并不是头等大事-实际上,大多数70年代的大学生可能会如果其他人对他们的研究数据感兴趣,我会很高兴。因此,防止数据丢失被视为计算机安全中的头等大事,这可以通过定期备份而不是访问控制来充分确保。

评论


当时人们确实拥有个人数据,大部分为电子邮件形式。并非所有这些仅仅是同事之间的交流。它仍然受到用户权限的保护。我认为当时与现在之间的主要区别在于,人们通常不会连接计算机并从信誉差,甚至是恶意的源下载代码。现在,这通常会发生。

– Steve Sether
18-2-26在18:21



尽管这在某种程度上是正确的,但真正的原因是恶意的根访问权限使您(通常)可以破坏内核,从而使您可以绕过自己家中可能拥有的任何保护机制,例如AppArmor。此外,安全模型更适合于服务器和大型机,它们实际上进行了许多基于UID的分离。

–森林
18-2-27在3:28



年龄根本不是问题。问题在于,系统无法区分用户有意执行擦除其主目录的脚本和无意执行一个脚本的用户。这与“您不能区分用户和攻击者”同样是一个老问题。如果想出答案很容易,那么有人已经在推销它了。 -1是一个非常糟糕的答案。

– jpmc26
18-2-27在4:15



让我们继续聊天中的讨论。

–森林
18年2月27日在5:30

@ jpmc26除较新的系统(iOS,Android等)外,已经提出了一个答案:系统上每个应用程序的细粒度权限。 Linux之所以没有采用这种模型,是因为它的年代久远。它具有数十种必须支持的传统安全模型周围的软件。 (包括系统软件。)Windows出于相同的原因也存在相同的问题。有机会从头开始的较新的操作系统则没有。

– Ajedi32
18年2月28日在16:27

#3 楼

这是一个非常敏锐的观察。是的,以用户身份运行的恶意软件可能会破坏/破坏/修改主目录中的数据。是的,单用户系统上的用户分离没有服务器上的有用。但是,仍有一些事情只有root用户(或同等用户)可以执行:


在内核中安装rootkit。
修改bootloader以包含早期的后门程序持久性。
擦除硬盘上的所有块,使数据不可检索。

老实说,我发现工作站上的特权分离对于保护工作站免受最大的敌人:我的伤害最有用。

另外,您始终可以将cron作业设置为root,以备份主目录(例如rsnapshot)并将其存储这样您的用户就无法写它。在您描述的情况下,这将是某种程度的保护。

必填xkcd

评论


“这更难于破坏和破坏我的系统”,这听起来像Windows在这方面是更好的操作系统-即使拥有特权帐户,也很难使最近的Windows无法启动/损坏。也许是因为OS软件与实用程序之间有很大的区别?

–数据
18年2月27日在8:32

#4 楼

Unix / Linux安全性的原始设计是为了保护用户免受其他用户的侵害,以及保护系统文件免受用户的侵害。请记住,30-40年前,大多数Unix系统是多用户设置,许多人同时登录同一台计算机。这些系统花费数万美元,拥有自己的个人计算机极为罕见,因此该计算机是在多用户登录环境中共享的。

该设计绝不是为了保护用户或用户文件免受恶意代码的侵扰,仅是为了保护用户免受其他用户的侵害,用户无法修改底层系统以及用户避免使用过多的系统资源。在当今每个人都有自己的计算机的时代,设计(大部分)已转化为单用户计算机,可以保护一个进程避免占用过多的系统资源。

因此,用户执行的程序可以访问用户拥有的任何文件。对于用户自己的文件,没有任何进一步访问的概念。换句话说,以用户A身份执行的进程有权读取,修改和删除属于用户A的所有文件。这包括(请注意)自动启动文件。

一种更现代的方法可能需要对某些文件进行某种形式的进一步控制。诸如“需要重新认证”之类的东西才能访问这些文件,或者某种形式的保护一个程序文件免受另一程序文件的影响。 AFAIK在Linux桌面世界中(目前)没有这样的东西。如果我错了纠正我吗?

评论


“ AFAIK在Linux世界中没有(当前)这样的东西。” -当然不算Android。

–user11153
18年2月26日在16:54

不是Linux,而是OS X具有“沙箱”功能,可以限制某些应用程序可以访问的文件。

– Barmar
18-2-26在18:21

您可以使用snap或Qubes os,它们都提供了独特的应用程序隔离。

–eckes
18-2-26在22:07

@Barmar Linux也具有AppArmor(在Ubuntu上)或SELinux(在Fedora上)的形式。

–森林
18-2-27在3:31



#5 楼


没有办法防止$ HOME中发生恶意代码吗?


要回答这个问题,某些安装所做的就是通过使用户使用现有的安全框架。专门运行程序。程序将具有一个配置选项,用于指定程序应以哪些用户身份运行。例如,我的PostgreSQL安装具有用户postgres拥有的数据库文件,并且数据库服务器以postgres的身份运行。对于PostgreSQL的管理命令,我会将用户更改为postgres。 OpenVPN还可以选择使用root的管理权限(添加网络接口等)来更改为非特权用户。为此,安装中可能有一个名为nobody的用户。这样,PostgreSQL或OpenVPN上的漏洞利用并不一定会导致$HOME的妥协。

另一种选择是使用SELinux这样的东西,并确切指定每个程序可以访问哪些文件和其他资源。这样,您甚至可以拒绝以root用户身份运行的程序触摸$HOME中的文件。编写详细的SELinux策略来指定每个程序是很乏味的,但是我相信有些发行版(如Fedora)走了一半,并且定义了策略,这些策略只会对面向网络的程序增加其他限制。

#6 楼

要回答问题的第二部分:有沙箱机制,但是默认情况下,大多数Linux发行版都未启用它们。

selinux是一个非常老而复杂的工具。 Apparmor是一种更新且更易于使用的方法。对于个人使用而言,最有用的(firearm和类似系统通常用于保护守护程序)是firejail,它将进程隔离在自己的监狱中。

例如,Firefox只能写其配置文件目录和下载目录。另一方面,如果不将图像放入“下载”目录中,将无法上传图像。但这是设计使然的沙盒。程序可以删除您的图像或将其上传到随机站点,因此监狱可以防止这种情况。

使用firejail很容易。安装后,对于已经具有配置文件的程序(查看/etc/firejail),您可以(以root用户身份)执行ln -s /usr/bin/firejail /usr/local/bin/firefox。如果您不是root用户,或者想对firejail使用命令行参数(例如,配置文件的自定义路径),则可以运行firejail firefox

像snap这样的系统也要添加沙箱机制,所以您可以运行从随机快照存储库安装的不受信任的程序,而不会产生太多后果。牢记所有这些机制,不受信任的程序仍然可以执行诸如发送垃圾邮件或dDoS攻击的一部分之类的操作。

评论


听起来像是面向目标的容器化(例如OpenVZ,Docker ..)

– phil294
18-2-27在15:23

它使用了docker也使用的一些技术。它与OpenVZ无关,但与类似于OpenVZ的LXC容器类似。

– allo
18-2-28在8:44

#7 楼



保护root活动确实可以保护您的2011年以来的度假照片。还有我,您的兄弟姐妹和其他使用计算机的人。

即使您实施的操作系统采用的方案是通过每次应用程序尝试访问文件时都要求输入密码并删除root密码保护来保护家庭帐户的方案,我也不会使用它,因为这样做会更糟这些休假图片。

如果我的兄弟破坏了家庭计算机上的核心系统功能,那么尽管您的主目录受到保护,我的休假图片也会被删除,勒索软件或其他任何方式,因为该系统本身就是现在的系统

































br />此外,我们还有访问控制的问题在家用计算机上经常被提示。当微软首次推出他们的UAC工具(如果使用主帐户,您甚至不需要输入密码...您所要做的只是按下一个按钮),它突然出现了,人们对此表示了足够的抱怨。 Microsoft每天更改生命的0.5秒浪费了20次。现在,这不是您要谈论的那种保护,但是它确实向我们表明,如果人们不愿意每天单击数十次安全按钮以获取Microsoft的系统安全性,那么他们就不会想要单击(或者更糟糕的是,输入密码)以保护他们的照片免受他们刚运行的随机应用程序的破坏。

所以基本答案是:


保护root确实可以保护您的个人照片。
人们抱怨这种身份验证要求太高。


评论


微软仍在尝试完善用户的技术,仅影响用户创建的文档(而不影响其他用户或已安装的程序或操作系统)Win10>现在“已安装程序”具有共享数据以及“ \ ProgramData”的受保护目录

– MichaelEvanchik
18年2月26日在22:08

2)是,但是Linux用户不是Microsoft用户。如果社区接受频繁输入用于系统更改的管理员密码,那么这对社区有很多意义。 UAC实际上是一个很好的选择,另请参见superuser.com/questions/242903/windows-uac-vs-linux-sudo(谢谢)1)我同意root保护〜数据免受其他用户和系统行为的影响。但这并不能保护数据免受恶意软件侵害用户权利,这是一件不方便的事

– phil294
18-2-26在23:44

@MichaelEvanchik Erm。 WinNT一直具有多用户特权,可追溯到90年代。 XP将它带入了消费者世界,除了默认帐户具有admin privs。 UAC仅在一个用户帐户中添加了更多权限级别(即更精细)。具体来说,ProgramData自2007年以来(Vista)以其当前形式存在,至少自2002年(XP)以来(可能更早)以以前的形式存在(受保护的All Users子目录)。如果希望拥有一种更像Unix的安全模型(包括带密码的UAC),则只需要创建一个新的非管理员用户即可。

–鲍勃
18-2-27在1:12



任何给我一台m $电脑的人,我都将它们设置为非管理员帐户,并在记事本上创建一个管理员和一个密码,并将其保存下来以作记录。通常情况下,除了无望的人

– MichaelEvanchik
18-2-27在14:56

@Bob NT 4为“所有用户”(每个用户只能由属于Administrators或Domain Administrators组的用户修改)和每个用户(每个用户都可以修改)有单独的“开始”菜单文件夹。只有该用户可以访问)。它们在视觉上也是分开的。这是屏幕截图:toastytech.com/guis/nt4.html中的toastytech.com/guis/nt4start.png。看起来至少NT 3.51具有相同的分隔类型,并且可能还会更进一步,但是NT4是我有亲身经历的Windows NT的第一个版本。

–用户
18年2月28日在7:23

#8 楼

其他答案则着眼于* nix的原样。

但是值得注意的是,除了“开箱即用”配置外,还有更多的工作要做,以保护用户主目录,脚本和文件。

大多数现代* nix支持POSIX或变体ACL,可以将其配置为添加OP寻找的粒度访问控制。您必须手动设置它们,它们不会尝试根据用户/组帐户的作用来区分访问。但是,一旦设置好,您可以非常具体地确定哪些帐户可以对文件执行哪些操作,并通过强制命令对某些命令或文件使用受限帐户,而不是对所有内容使用一个用户帐户,从而获得至少一些额外的控制权。但是,它将具有相当严格的实用性限制。

#9 楼

确保根/内核安全的一个关键点是司法鉴定的完整性。如果包含您的宝贵数据的域(具有私人文档和Web身份验证令牌的桌面用户,具有机密代码/资源的开发服务器,具有用户数据库的Webapp服务器等)受到损害,则您仍将拥有一个毫不妥协的域,评估折衷方案,确定发生了什么,制定计划以防御再次发生的完全相同的事情,等等。

评论


我要提出一个关于无法进入该环境的观点,因为一旦您执行sudo su,该恶意软件也将能够获得root用户,但随后我意识到您可以重新引导至另一个用户(其中根)。以为我会将其发布给可能有同样想法的未来读者;我认为你说的很对。

–吕克
18-2-27在22:15



这个。当然,有些东西会弄乱$ HOME中的数据-但要清除它的记录将很困难。而且,在许多应用程序中(机密不外的业务),秘密的,未发现的危害远比明显的数据被破坏或被盗更为严重。

–rackandboneman
18年2月27日在22:26

#10 楼

这样的特权不存在,因为它们不方便。

许可的目的通常是防止不必要的操作。 root可以执行的各种动作更加隐蔽。用户级别的勒索软件应用程序可以加密您的文件,但是他们无法掩盖自己正在做的事实。当您找到一个加密文件时,它会像通常一样打开,并显示它已被加密。使用根级勒索软件,它可以劫持您的整个文件系统,并产生一种幻象,即直到最后一刻才对文件进行加密,然后忘记密钥和密码了!您所有的文件将无法同时访问。

现在,很明显,如今我们不再以root用户身份登录。我们使用sudo。这是基于角色的特权的一种形式。在扮演“执行管理任务的用户”角色之前,您没有root特权。然后,您将获得这些特权,直到完成命令为止。

一个可以创建可以访问不同文件夹的细粒度角色。除非您输入“添加/编辑照片”角色,否则您可能希望只读“度假照片”。这将是强大的,但是很麻烦。正如Aaron所说,Windows的UAC浪费了宝贵的时间来寻求许可,而不仅仅是做事,因此受到广泛批评。如果计算机必须切换角色以保护数据,则需要更频繁地询问权限。用户通常认为这不值得,因此不支持。

(如果您对此类功能感兴趣,并愿意使用sudo来实现,则可以创建一个单独的分区,将其挂载ro或rw,具体取决于您要做什么,然后将照片存储在此处)。

在这些情况下,最难处理的任务之一是角色的粒度。如果用户输入一个或另一个角色,则很容易处理。但是,很难处理特定应用程序需要进入该角色的情况。也许不允许Firefox写入您的照片,但是允许GIMP。这很棘手,因为在有边界的地方,您不可能拥有连贯的无缝集成。如果Firefox利用GIMP插件进行照片编辑怎么办?阻止Firefox这样做的唯一方法是阻止它与GIMP对话。

我假设您对Windows有一定的经验。您是否曾经想过为什么当UAC出现时屏幕会变暗?实际上,这并不是为了视觉确认您正在做一些特别的事情。比这重要得多。变暗部分上方的窗口是其他屏幕的一部分,与下面的窗口隔离。为什么这很重要?好吧,事实证明,屏幕上的任何窗口都可以操作同一屏幕上的任何其他窗口。如果UAC与安装程序在同一屏幕上询问权限,则安装程序可以从字面上获取UAC窗口的句柄,然后为您单击OK!这肯定会破坏这种提示的目的。解决方案是在不同的屏幕上提供UAC,因此没有其他应用程序可以单独单击“确定”。单击“确定”的唯一方法是用户移动鼠标并单击它。变暗实际上只是在向您显示,在UAC屏幕可以控制键盘/鼠标的情况下,您无法与它下面的任何窗口进行交互。

这就是必须进行隔离工作的级别。这是不容易的。实际上,通过拥有多个用户帐户并为每个用户提供对数据的不同访问权限来保护您的关键数据对您来说很有意义。然后,您可以使用切换用户功能在它们之间进行切换。这将提供您执行基于角色的体面特权所需的隔离。

#11 楼

Unix并不是真正的桌面系统。它是在大型计算机上运行的系统,其成本大约相当于大学地下室中一所房屋的价格。作为一个买不起自己的计算机的人,您必须与两千个计算机共享该计算机,并与此同时与数十个用户共享该计算机。
有时,您现在还可以在台式机上运行类似Unix的系统计算机或信用卡大小的SoC,价格为20美元。
但是,原则上,Unix不是为单个用户设计的。单个用户并不重要。您的主目录中有什么是您的问题,但是root可以做什么是每个人的问题。因此,只有真正需要您担任root的几个任务才应与该用户一起完成,并且最好(以限制可能造成伤害的时间范围)不是通过该帐户登录,而是通过显式使用sudo需要它的单个命令。也有很多宗教信仰,这就是为什么某些发行商如此傲慢自大,以至于您必须运行10个不同的su命令中的每一个来输入sudo而不是apt时都会威胁您,以安装一些琐碎的东西。
所以您可以删除所有的个人照片而无需root。那就对了。恶意软件可以清除您主目录中的所有内容。它可以通过填充磁盘直到达到用户配额来拒绝服务,这是正确的。但是从系统的角度来看,这只是您的问题,没有人关心。现在,原则上没有其他用户受到影响。
现在,现代的单(或很少)用户系统存在的问题是,二价逻辑安全模型非常不适用,就像“有数百个用户”的想法一样。
很不幸,要想出更好的东西很难。如果您想了解如何不偷偷摸摸的想法,请看一下Windows(它们确实设法使糟糕的方法变得更糟)。
一些网络浏览器和电话(或智能电视)操作系统尝试提供(但失败)提供更好的东西,而现代Linux也具有更细粒度的系统(但是我不知道如何花费数周才能正确设置它)
问题是二价安全模型假设普通应用程序不需要任何特权(这是错误的,因为一些对大多数无害的事物确实需要特权),而非普通应用程序则需要对特权的完全访问权限计算机系统(这也是错误的,几乎没有程序需要完全访问权限。)另一方面,即使是更细粒度的安全模型(仍然非常粗糙)也会错误地假设,如果应用程序请求特权集,它确实需要完整的集合,并且用户可以轻松地授予它。
据我所知,没有系统可以让应用程序请求特权A,B和C,并且用户可以同意授予A(但不授予B和C),并且阳离子然后可以查询授予它的特权,并确定它是否能够执行所请求的任务。
因此,您通常可以选择授予XYZ-app“永久存储中的存储数据”(即也许可以),并且还允许“访问我的位置”和“访问我的个人数据”或“安装系统驱动程序”(您不能使用),或者,您无法运行该程序。
或者,您可以允许XYZ程序“对计算机进行更改”,无论这意味着什么,也可以选择不运行它。并且,您必须每次都再次确认。老实说,从用户的角度来看确实很糟糕。

评论


“某些电话操作系统试图(失败)提供更好的东西。”嗯,这是什么意思? Android确实尝试提供一种应用程序隔离,效果很好。另请参阅其他答案和评论

– phil294
18-2-28在14:17

#12 楼


没有办法阻止$ HOME中发生恶意代码吗?


假设您将/home作为单独的挂载点,放在它自己的分区上-那么您可以简单地进行编辑/etc/fstab并将noexec标志添加到安装选项。这将禁用该分区上所有代码的执行,不利的一面是~/bin中的代码(因为某些按用户安装可能会创建它)也不再运行。但是,这不会阻止文件系统中其他位置的可执行文件来清除/home

SE Linux是成熟的安全系统,可以很好地隔离-而AppArmor仅用于应用程序隔离。从v 5.0开始,Android的基础Linux都具有此功能。在Windows上,他们最近引入了“受保护的文件夹”,这是完全相同的(完全被剥夺了)。不利的一面是,当手动安装新东西时,通常必须标记和/或设置适当的标志以允许这样做,而在那里运行东西的上下文在那里最重要。人们经常建议禁用它,仅仅是因为他们不了解如何处理它。好吧,这并不是为部署选择SE Linux发行版的重点。

评论


请注意,可以使用Python或Bash等解释型语言绕过noexec。

–森林
18 Mar 2 '18 at 23:30

这些文件未在/ home中安装...如果想发疯,可以挂载网络共享,而无需访问本地FS,则可能会抱怨“有人可以使用SSH绕过它” ... SE Linux普通默认情况下,拒绝主目录中的脚本执行,除非设置标志...或仅运行KVM进行适当的隔离。

–马丁·齐特勒
18-3-3在17:38



#13 楼

我很惊讶没有人提到以下内容:

不以root用户身份登录台式机的主要原因之一是因为许多活动都会将文件的所有权更改为root。这通常意味着“普通”用户将无法运行许多应用程序,因为他们无法读取由root创建的默认配置文件。

不登录服务器的核心原因之一从审核/可交易性的角度来看,计算机是root用户,最好是让某人自己登录然后以root用户身份执行命令,以便有一些可审核的日志指示“ user1”已登录,然后切换到root用户,而不是仅仅知道从IP地址10.2.1.2登录的“ root”可能是许多人可以使用的通用终端。在服务器计算机上,更常见的是,对许多命令的sudo访问权限有限,以尝试使管理员执行的操作更易于审核和跟踪。

与所有root活动一样,您可以根据需要进行操作;只需记住,做得越多,枪支指向您的脚就越大,只需要用一个错误的命令即可扳动扳机。

rm -rf {uninitializedVariable}/*


评论


“因为许多活动将更改文件的所有权以成为根...应用程序...无法读取默认配置”-例如? / etc默认是世界可读的。

– AndrolGenhald
18 Mar 2 '18 at 17:49

在argv中任何位置运行带有*的rm -rf的人都应该丢失其数据。 @AndrolGenhald是正确的。如果创建的umask为022(默认值),则通常可以读取根目录拥有的文件。顺便说一句,设置-u是一件事情。用它。

–森林
18 Mar 2 '18在23:33

@AndrolGenhald许多应用程序提供了设置“愚蠢”权限(例如700)的帮助程序脚本,这些权限然后使其他用户无法读取文件。我同意这很愚蠢,但是我已经看到它发生了太多次了。林我同意!某些SA将安全系统上的默认值更改为其他umask :(通常稍后将其咬住。(愚蠢是可计费的)

–millebi
18 Mar 9 '18 at 3:33