“你是root?”是什么意思?


16

这就是我不断得到的:

ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ apt-get install flashplugin-installer
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ sudo aptitude install flashplugin-nonfree
bash: sudo: command not found
ascendermedia@magic2tower:~$ aptitude install flashplugin-nonfree
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ 

我究竟做错了什么?

Answers:


29

root是系统上的超级用户帐户-(基本上)具有所有特权。对许多系统进行了配置,以便您可以sudo在另一个命令之前使用该命令以“ root”身份运行该命令,也就是说,就像您是root用户一样,具有相同的特权。

通常情况下,您需要root特权才能安装系统软件包apt-get。因此,第一次无法使用,因为您没有sudo空位。第二次是sudo因为您两次运行它而没有神奇地出现;第三次(和第五次)是因为apt-get(和aptitude)确实确实需要root privs来安装这样的软件包。

从第一条错误消息中可以看到,sudo未安装或未安装在路径中,并且可能未配置。您可能可以su -c替代,并root在出现提示时提供root密码(帐户的密码)。

如果您不知道该密码,则需要a)询问为您执行此任务的人(如果不是您的系统),或b)寻找某种方法来恢复它。


这几乎是正确的,尽管我要提到的是,sudo它不仅可以像运行root用户一样运行命令,还可以以root用户身份运行它们。如果查看该过程,您将看到它以root身份而不是您的用户ID运行。顺便说一句,在默认情况下未设置为允许通过root用户进行交互式登录的计算机上,您可以运行sudo bash以获取root shell。:)
reirab 2015年

@reirab我认为这sudo -i是首选,因为它尊重您当前的shell。
2015年

2
@ new123456 sudo -i将使用默认Shell作为root。sudo -s将为执行用户使用$ SHELL的值。
bgvaughan 2015年

@reirab您引用的部分是我从简化用户的角度解释“作为根”的含义的部分。
mattdm 2015年

5

您需要root特权才能通过执行系统更新apt-get

您可以使用切换到root帐户su root。似乎您没有安装该sudo程序。


2
OP不仅缺少sudo特权,他甚至都没有sudo安装。
2015年

1
确实,OP应该根到足以安装和设置的时间sudo
凯文

1
@ n.st可能不正确,可能不在中PATH
o11c 2015年

2
@ o11c我认为那些是没有sudo就永远不会遇到该问题的人,因为他们总是以root用户身份登录。
凯文

1
@ o11c虽然可能,但似乎不太可能,尤其是因为sudoapt-get/usr/bin默认安装(至少在Debian上安装)。
2015年

5

“你是root?”是什么意思?

为了在系统范围内安装软件包(apt-get需要这样做),它需要root特权,因为您将创建和更改系统文件(这root是* nix管理员帐户的常用名称)。

“您是根吗?”消息轻轻地提醒您“需要成为根”才能运行apt-get install。这是该问题最常见的原因(如上所示):

/ var / lib / dpkg / lock-打开(13:权限被拒绝)

如何成为根?

su

“成为root”的传统方式是运行su(并提供root用户的密码)。SU(1)代表小号 UPER Ü Ser或小号女巫ü SER。

请注意,它可以用作任何用户,因此您可以运行su john以获取john身份的shell。su没有用户名运行是的简写su root

为此,必须启用root用户帐户并设置密码。某些系统已配置(甚至默认情况下),并且禁用了root帐户,以避免有人-例如。攻击者-使用管理员帐户登录。在这种情况下,它们提供了另一种运行管理命令的方式,例如sudo。

须藤

sudo(1)是一个程序,允许您以另一个用户的身份执行命令(如上所述,通常针对root用户执行)。它在中配置/etc/sudoers,并允许进行更精细的控制,例如仅允许以root用户身份运行单个程序(可以设置为再次要求他们自己的密码),并且还提供日志记录功能(例如“约翰以root用户身份执行了destroy-system”)。

还可以使用其他选项来增加特权来运行(例如calife),但是它们的使用率要低得多。

您上面的日志指示sudo未在magic2tower上安装。


0

他们已经解释了根目录,当您有一个“找不到命令”时,可能是因为您尚未安装要运行的程序,或者您的env变量中没有路径。

尝试像这样运行comand:

/usr/bin/sudo apt-get install flashplugin-installer

在某些Linux发行版中,您无法更改为root用户,因此每个命令都可以使用sudo运行。=)


1
是的,请确保如果您有一条消息,如bash: sudo: command not found最好的主意是使用进行安装sudo apt-get install sudo,并且如果出现相同的错误,则您将了解什么是递归
pqnet

2
您不能使用安装sudo sudo
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.