技术文档 2021年11月18日
我假设您对 Linux 很陌生。
您遵循 Internet 上的一些教程,该教程告诉您安装某个程序或运行某个命令。可能与服务器有关。
但是当你运行命令时,你会遇到这个错误:
E: 无法打开锁文件 /var/lib/dpkg/lock-frontend – open (13: Permission denied)
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),你是 root ?
一个类似的错误是这个:
dpkg:错误:需要对 dpkg 数据库目录 /var/lib/dpkg 的读/写访问权限
E:子进程 dpkg –set-selections 返回错误代码 (2)
E:执行 dpkg 失败。你是root吗?
这两个错误都问你同样的问题:你是 root 吗?这就是这个问题的答案。成为根。
你如何成为 Ubuntu或 Debian 的root?您使用 sudo 命令。
对,就是那样。无论您运行什么命令,只需在它之前添加 sudo 即可。
sudo your_command
它会要求您输入您的用户帐户密码。请记住,当您输入密码时,屏幕上不会显示任何内容,这没关系。
你的系统没有任何问题。在大多数 Linux 系统中,密码输入不会显示通常的星号或任何类似的“安全功能”。
只需输入您的密码,然后按回车键。如果密码输入正确,您现在应该可以运行该命令。
您甚至可以使用这个方便的Linux 命令行技巧来使用 sudo 运行先前的命令:
sudo !!
这很简单并且可以立即生效,除非您没有 sudo 访问权限。然后,您会看到不同的错误。
当你安装Ubuntu,你必须创建一个用户帐户。该用户被自动授予 sudo 权限以在需要时以 root 身份运行命令。
这发生在 Ubuntu 桌面上,而不是服务器上。大多数服务器发行版都有一个单独的根帐户。如果单独创建普通帐户,则必须将用户添加到 sudoer,以便该普通用户可以使用 sudo。
在上面的屏幕截图中,我创建了这个额外的用户,但没有将它添加到 sudo 组。这意味着此处的用户“prakash”无权使用 sudo 命令,因此系统会抱怨“prakash 不在 sudoers 文件中”。
错误的 sudo 尝试被添加到系统日志中。它记录用户名、虚拟终端号、运行命令的位置和运行的命令。
这些日志的位置因分发而异。
通常,您可以在 Ubuntu 中的 journalctl 日志或 /var/log/auth.log 文件中或 Fedora 中的 /var/log/audit/audit.log 文件中找到它。
当您无法对当前用户帐户使用 sudo 时,您可以做什么?首先,验证用户是否具有 sudo 权限。如果没有,这里有一些选项供您选择: