经过3到4个小时的努力,我解决了这个问题,但我仍然对此感到好奇
密码锁
/etc/password.lock 是什么?/etc/passwd.lock 起什么作用?
在查看了 ubuntu man 上的文档后,我发现这个文件包含用户、组和其他应用程序的密码。如果我错了,请纠正我。为什么 mysql-server 安装依赖于这个文件?
答案1
您的思路是对的,但还没有真正实现。您读到的文件是文件/etc/passwd
,而不是/etc/passwd.lock
文件本身。/etc/passwd
定义您的计算机上有哪些用户帐户可用、他们属于哪个组以及其他信息。许多年前/etc/passwd
还包含帐户密码。但出于安全原因,这些密码被重新定位到所谓的“影子密码系统”(本质上是另一个具有更严格权限的文件)。
/etc/passwd.lock
顾名思义,它是一个锁定文件。锁定文件用于指示某个资源当前正在被其他人使用,因此您无法使用。锁定文件非常常见,它们甚至有一个默认目录来存储它们/var/lock
。
返回/etc/password
:此文件和许多其他文件本质上都是文本文件,从技术上讲,您可以使用任何文本编辑器编辑它们。但您真的不应该这样做,因为如果您搞砸了,一个简单的打字错误就会造成很大的损失。因此,有很多工具可以编辑这些中央配置文件,至少可以尝试防止最大的错误。
要编辑/etc/passwd
和其他一些文件,您应该使用 命令vipw
。该命令的功能之一vipw
是锁定相应的文件。这是为了确保没有两个用户或应用程序同时编辑配置文件。因此,如果您使用 编辑用户帐户vipw
,该命令会创建/etc/passwd.lock
锁定文件,以表明/etc/passwd
目前无法更改。然后,它会应用更改并删除锁定文件以解除锁定。
在您的情况下,似乎出了点问题,并且出于某种原因,锁定文件未被删除。因此,当您尝试安装 MySQL 服务器时,它无法编辑/etc/passwd
,因为锁定文件实际上告诉它“此资源正在使用中,请稍后重试”。
最后,MySQL 服务器与 有什么关系/etc/passwd
?Unix 和 Linux 系统的基本概念之一是它们是多用户系统。有多个用户帐户,它们具有不同的权限(这比这更复杂一些,但这就是它的要点)。您可能已经了解帐户root
和您的用户帐户。但在典型的系统中,还有相当多的“幕后”帐户。在我写这篇文章的机器上,它基本上是一个普通的 Ubuntu 桌面安装,/etc/passwd
定义了 42 个用户帐户。
通常,不同的帐户用于保护内容不被那些不应该乱动的人使用,或定义谁可以使用某些内容,谁不能使用。MySQL 服务器在其自己的mysql
帐户下运行,许多其他服务和守护程序(Web 服务器、邮件服务器等)也执行类似操作。
因此,总而言之,您的场景如下:MySQL 的安装过程尝试将其mysql
帐户添加到/etc/passwd
,但锁文件的存在告诉它目前无法执行此操作。