将root用户用作普通用户是否可以?


94

我已经在Mac上启用了root用户,因此我可以登录它并运行Finder等。作为我的懒人,只需将所有内容从我的主目录传输到即可/var/root。我不太确定要这样做,所以我可能会将所有内容移回去。从技术上来说,像普通用户一样使用它是否可以?(我是唯一可以访问我的计算机的人。)


6
无根的“ el Capitan”指日可待。
CousinCocaine 2015年

4
(访问我的计算机)的具体含义。您可能已连接到Internet。您没有指定您可以访问计算机的软件。“ OK”对您来说是什么样?获得一些很棒的一般答案的荣誉。最好提出更详细的问题(如果存在)作为后续问题。
bmike

6
您可以使用root帐户作为普通用户,只要您知道以下问题的答案:“将root用户用作普通用户可以吗?”。一旦知道答案,您就不会知道。;-)
Dakshinamurthy Karra 2015年

您可能需要添加root,admin和普通用户之间的区别。我相信admin是默认设置。
Steve Moser 2015年

6
“我是唯一可以访问我的计算机的人” <-大声笑
蒂姆,

Answers:


352

一直以root用户身份使用计算机就像总是随身携带所有钥匙,护照,5,000美元现金,写有所有密码的那张纸,以及唯一的一张拥有可爱的兔子Flopsy的照片。死让你七岁的心伤了。哦,还有电锯。

就是说,这有时会非常方便,因为这意味着您可以随时随地执行所需的任何操作,而无需回到家拿东西或与银行经理交谈。但这也使您极有可能丢失东西,被盗(不要以为电锯会帮到您:在您发现钱包消失之前便会流连忘返),然后做一些让您后悔的事情(冲动购买)醉酒时去往拉斯维加斯的飞机票),采取危险的捷径(通过狮子围栏锯链,因为这是通往大熊猫的最快方法)和反应过度(锯邻居的车,因为他的狗吠太多)。而且,当您考虑时,大多数情况下,您只是去办公室,去杂货店购物,和朋友出去玩。你不 只是为了方便,一个小时都需要所有这些东西,一个月一次?一个星期一次?

因此,不能,始终使用root帐户是不正确的。它给您带来了极小的便利,但却给您带来了极大的危险。愚蠢的错误有导致灾难性后果的危险(“嘿,为什么rm -rf *要花这么长时间才能运行?****我进来了/!”)。有使自己适应所有文件都是相等的想法的危险,并且您可以随意随意地在目录树中的任何位置进行操作。存在对您帐户的任何黑客攻击都立即对整个系统进行黑客攻击的危险,因此,现在您计算机上的每个软件都对安全性至关重要。而且,即使你认为不关心你的机器遭到黑客攻击(毕竟,Flopsy的那张照片是光面的,而不是一些短暂的JPEG的真正片), 关心您的计算机被黑客入侵是因为,然后它就在僵尸网络上,对我今天无法访问的任何互联网服务发起DDOS攻击。

根是您的蜘蛛侠服装。它赋予您强大的力量,但需要承担巨大的责任。无论何时需要,它都在壁橱里,因此您不必一直都在穿。


54
这不仅是一个有趣且写得很好的作品,它还真实地响了起来,值得得到公认的答案
wrossmck

17
我继续回到这个问题。这是真正的建议,可带给您最大的幽默感,而且仍然很严肃。
智障的人2015年

19
@ 9000至少从XP开始就不是这样了。
David Richerby

28
软盘的死亡和电锯有关系吗?
Sirex

29
“根是您的蜘蛛侠服装”。我在这里死
GeminiDomino

23

您可以,但这是主要的安全性和稳定性风险。这样做允许任何应用程序完全访问您的计算机。您不知道他们使用该访问权限在做什么。这是不必要的,而且真的很不安全。

有关更多背景信息,请参见


我删除了这些评论,因为它们实际上并没有添加到答案中,您可以继续聊天中的讨论吗?
nohillside

感谢您的修改。希望这可以解决有关我的帖子的一些困惑。
William T Froggard

17

坦率地说,我同意使用root默认用户会带来很多风险。但是,让我来看看它们并批评一些论点

  • 防御应用程序:实际上,* nix的权限系统不够强大(到目前为止),无法运行任意程序。* nix上的恶意程序可以在没有root用户权限的情况下做足够多的恶作剧(例如窃取您的银行凭证)。非root应用程序比应用程序要难一些root(例如,与其直接安装一个根证书并拦截与银行的连接,您还需要使用浏览器,但是,实际上,这是相当可行的,您可能仍然必须这样做,以确保用户不会注意到任何东西)
  • 防范用户错误(例如运行错误的命令并删除所有系统文件)绝对正确,但是即使非root用户可以保存系统,所有重要文件通常也已经丢失(因为用户拥有的文件更多)可能是唯一的)。
  • 防御运行的应用程序中的可利用错误:现在,它更像它了。例如,当您运行Web服务器时,外部有许多应用程序向外界开放,因此很容易发现任何可利用的bug。当然,即使您坐在路由器和防火墙后面也一样,尽管危险程度远不那么重要。然而,问题再次变成许可系统将在私有系统上实际防御多少。没有root权限,仍然可以访问所有私有文件,并且还可以截取网络数据...作为私有系统的攻击者,您希望做的两件最重要的事情。
    • (现在,除了标准的* nix文件许可系统之外,Apple还引入了一个应用程序沙箱系统。据我所知,即使以root用户身份登录,它仍然可以完全正常工作。如果不是,那应该是一个总交易破坏者。)

无论哪种方式,所有人都认为我认为这并不像其他人所声称的那样可怕。提醒您,我也不是说这是个好主意,但我认为人们高估了* nix文件系统权限模型对保护您的有用性。是的,它对于某些事情(例如多用户系统,复杂的多应用程序服务器,无论发生什么情况都能保持系统运行(正在运行,但没有必要使用),锁定重要文件(尽管最好对这些文件进行加密)都非常有用) ...)等),但这并不是防止不良事件发生的不可思议的保护措施。

在评论中,我想出了一个比喻,似乎足以描述这种情况。在荷兰语中,我们有一个小壁橱这个词,您可以在其中找到所有的水表和主要供水的拨动开关,等等。以root用户帐户身份运行就像将小壁橱上的锁取下一样。具有讽刺意味的事实是:大多数人一开始并没有对其进行锁定。现在,就像root用户并不是说在某些情况下将其锁定是没有用的,例如在办公室或其他半公共建筑中,通常将其锁定,但是在普通房屋中,在前门上牢固锁定更为重要(而不安装随机物品,防火墙等),并将所有重要物品放在安全的地方(进行备份,加密物品等)。壁橱上的额外锁会不会疼?不,因此,以防万一,将其放置在适当位置可能是一个好主意,但很可能这将是毫无用处的。

运行的root用户是什么样把你的房子所有的锁,并携带所有的东西在安全与你所有的时间,由大卫Richerby声称。您的护照(身份)绝不受* nix文件系统保护,您的钱(银行帐户)绝不受* nix文件系统保护,您的重要密码很可能不受* nix文件系统保护(如果您使用的是Safari,但是实际上它们可能受到* nix文件系统权限模型的部分保护,但没有root 您仍然可以在Safari中添加一个不可见的扩展名,然后在下次使用时拦截密码),您的照片绝对不受* nix文件系统的保护,如果您使用的是终端机,则说明您已经携带了电锯与您在一起(按上述第2点)。


2
如果你downvote的答案,尽请指出是什么将是我的分析不正确。我完全意识到我的答案有点不合常规,但是我希望ICT能够不断进步,以便根据其内容而不是它们是否适合传统教条来判断答案。
David Mulder 2015年

3
这值得更多的投票。的唯一的事情,我真的很在乎我的电脑上是我的(非root用户)拥有的文件。它们代表了我的照片,我的音乐,我女儿的视频..其余的可以轻松地重新安装!
Isak Savo

6
这种逻辑基本上与说相同,因为远程车库门开启器的调味料很弱,如果没有人关上车库门,那的确不是什么大问题。前提是正确的,但建议是虚假的。有效的安全性由许多相互配合的小部分组成。就像附近的每个人都在那里关闭车库一样。它使每个人都更安全。
Caleb 2015年

2
@Caleb在附近拥有房屋和邀请任何人进入都有很大的不同。当有人进入您的房屋时,几乎没有人可以阻止他使用标准* nix系统。这就是我在这个答案很说明:一旦有人不闯入你的系统* nix的文件系统权限打算帮助,因为他们没有保护你考虑一个私人的系统上重要的事情。唯一的是(续)
David Mulder

3
当然,没有root不会阻止它。但这是一个微妙的不同。有点像我所说的“攻击”,而不是“妥协”。您可以通过root用户在网络上执行更多操作。如果您的僵尸计算机正在参与简单的ICMP泛洪,举个简单的例子,您需要原始套接字访问权限以生成该ICMP流量(这就是ping是suid root的原因)。其他一些有用的恶意数据包修改也是如此。
dannysauer 2015年

14

大约在1990年,我与一个名叫汤姆(Tom)的人一起从事一个项目。我们使用的是运行SunOS(Unix衍生版本,Solaris的前身)的SUN服务器。这是CD驱动器和闪存驱动器之前的日子,因此,如果您弄乱了硬盘驱动器上的操作系统,则无法恢复。

Tom以前通常以root用户身份登录。我告诉他这是个坏主意,但他不听。有一天,我听到他说“嗯”。他本来打算输入这样的东西:

mv something* .

不幸的是,他没有留下最后一个点,因此shell扩展了与该模式匹配的所有文件和目录名称。然后,mv命令将最终使用的名称作为列表中的最终名称用作目标目录,并将其他所有内容移动到该目录中。同样不幸的是,他目前在根目录下,因此基本上整个文件系统都移入了其子目录之一。

我使用向上箭头恢复了先前的命令,并看到了发生了什么。然后我说的第一件事是:“不要注销!否则您将永远无法再次登录。”

没问题吧?我们可以将所有内容移回原处。我们可以,除了mv命令不是shell的内置命令之一。相反,它是一个可执行程序,存储在已移动的文件之一中。幸运的是,ls是一个内置命令,因此在使用ls确认命令移至何处后,我能够找到mv命令,使用其完整路径名调用它,并将其放回原本应该的位置。

然后我告诉他:“汤姆,这就是为什么通常以root用户身份登录是个坏主意的原因。”


10

通常,您希望将个人文件的所有权与根用户分开。这就是为什么您以管理员身份创建帐户的原因。在OS X下,获得根级别访问权限的公认方法是使用sudo终端应用程序中的命令。例如,如果要查看内部驱动器的分区,则命令为

gpt -r show /dev/disk0

如果输入,将导致以下错误消息。

gpt show: unable to open device '/dev/disk0': Permission denied

要使用该命令,您需要使用sudo如下所示的命令。

sudo gpt -r show /dev/disk0

如果要成为root用户避免输入sudo,可以输入sudo sh。该exit命令可用于退出成为root用户的权限。

如果要以root用户身份执行应用程序,则可以使用终端应用程序。例如,如果要以root用户身份启动Finder,请输入以下命令。

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder &

为避免同时打开两个Finder应用程序造成混乱,通常最好先退出Finder应用程序。可以使用以下终端命令来完成。

osascript -e 'tell application "Finder" to quit'

请注意,在命令之前加上与sudo成为root用户并不相同。例如,命令

sudo echo $USER
sudo echo $SUDO_USER

结果与下面显示的命令相同。

echo $USER
echo $SUDO_USER

如果您成为root用户(超级用户),则相同的命令将导致不同的输出。可以通过输入以下所示的命令来验证。

sudo sh
echo $USER
echo $SUDO_USER
sudo echo $USER
sudo echo $SUDO_USER
exit

4

万一其他原因还不够好...不要忘记您不能将Homebrew用作root(这实际上是一个巨大的痛苦)。其他程序也不允许您将其用作root用户或在运行时遇到权限问题,这通常是没有明显原因的,因为它们的程序员认为它们不会作为root用户运行。我认为Steam是其中之一。

出于各种原因,将所有系统和用户内容分开也很好。

我不知道这是否对安全性问题不利。我个人比其他方面更担心组织和权限问题。


4

仅举几个例子,为什么总是不能以这样的方式运行root

  • 超级用户可以轻松地将文件放置在更难追踪的位置。
  • 根用户具有对接口的原始访问权限,因此可以将接口置于混杂或监视模式,并记录所有网络流量。
  • 超级用户具有对设备节点的原始访问权限,并且可以破坏磁盘,从而使文件恢复比在用户级别上简单的“ rm”困难得多。root用户还可以潜在地修改驱动器的引导扇区,即使重新安装操作系统后,恶意软件也会持续存在。

我可以继续。关键是有充分的理由不以超级用户身份运行。对于大多数人,我不会不同意他们的大多数个人数据仍在其主目录中,但是以root用户身份运行仍然会给该数据和整个系统带来更大的风险。不以root用户身份运行的建议不会错位。如果一个人不了解以root身份运行的含义,那么他们绝对不应该这样做。提出其他建议是不负责任的。


1

除非您将backtrack / kali用于特定任务,否则:NO。对待超级用户就像对待装满的枪一样:如果您有立即的需求并打算使用它:确定。但是,如果您可以通过其他任何方式解决问题(例如“ sudo”),请执行此操作。


0

没有!这将使您的系统在很短的时间内就被破坏。取而代之的是,susudo根据需要扎根。如果绝对肯定地,您必须以身份运行root,至少在不使用计算机时随时注销。如果你的系统能够运行多用户的,但没有用户配置,我建议你创建一个特权用户(即:一个可sudo/ su。成根在必要时)尽快!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.