我假设您是Linux新手。您遵循Internet上的一些教程,这些教程告诉您安装某个程序或运行某个命令。可能是服务器相关的东西。但是当你运行这个命令时,你会得到这个错误:E:Couldnotopenlockfile/var/lib/dpkg/lock-frontend–open(13:Permissiondenied)E:Unabletoacquirethedpkgfrontendlock(/var/lib/dpkg/lock-frontend),你是root吗?或类似错误:dpkg:错误:需要对dpkg数据库目录/var/lib/dpkgE的读/写访问权限:子进程dpkg–set-selections返回错误代码(2)E:执行dpkg失败。你是根吗?这两个错误都在问你同一个问题:你是root用户吗?这就是那个问题的答案。成为根。成为root用户以避免此错误在Ubuntu或Debian中如何成为root用户?您使用sudo命令。对,就是那样。无论您运行什么命令,只需在其前面加上sudo即可。sudoyour_command使用sudo运行命令,它会要求您输入您的用户帐户密码。请记住,当您输入密码时,屏幕上不会显示任何内容,这没关系。你的系统没有问题。在大多数Linux系统上,输入密码时不显示通常的星号或其他内容是一项“安全功能”。只需输入密码并在密码后按Enter。如果密码输入正确,您现在应该能够运行该命令。您甚至可以使用这个方便的Linux命令行技巧使用sudo运行以前的命令:sudo!!它很简单并且可以立即运行,除非您没有sudo权限。然后,您会看到一个不同的错误。看到“用户不在sudoer文件中”错误?有些用户无法使用sudo运行命令当您安装Ubuntu时,您必须创建一个用户帐户。此用户会自动授予sudo权限,以便在需要时以root身份运行命令。这发生在Ubuntu桌面上,而不是服务器上。大多数服务器发行版都有一个单独的根帐户。如果单独创建一个普通账号,必须将这个用户添加到sudoer中,这个普通用户才能使用sudo。在上面的屏幕截图中,我创建了这个额外的用户,但没有将其添加到sudo组。这意味着这里的用户prakash没有使用sudo命令的权限,因此系统会抱怨“prakash不在sudoers文件中”。事件报告在哪里?错误的sudo尝试被添加到系统日志中。它记录了用户名、虚拟终端号、运行命令的位置以及运行的命令。错误的sudo尝试被记录到系统中这些日志的位置在不同的发行版中有所不同。通常,您可以在journalctl日志或Ubuntu中的/var/log/auth.log文件中以及Fedora中的/var/log/audit/audit.log文件中找到它。如果用户不在sudoer列表中怎么办?当您无法通过当前用户帐户使用sudo时,您可以做什么?首先,验证用户是否具有sudo权限。如果没有,您有一些选择:以root身份登录或切换root(如果您有root密码)。将用户添加到sudoer列表(如果您对其他用户帐户具有管理或sudo权限)。如果您在多用户Linux系统上并且自己没有root或sudo权限,请让您的系统管理员为您的用户授予sudo权限或安装您要安装的应用程序。这有帮助吗?sudo是一个非常全面的安全机制,它不仅仅是让一个普通用户成为root。它有助于审核系统并了解哪个用户使用sudo运行了哪个命令。它还可以配置为仅允许某些用户使用sudo运行某些命令。你不会在桌面Linux上看到如此精细的sudo配置,它被预先配置为允许sudo组中的任何用户以root身份运行任何命令。有关sudo的更多信息,请参阅其他文章。我希望在解决这个经典的初学者问题时,您已经对sudo命令有了一些基本的了解。
