请注意:我下面描述的问题似乎已经“自行消失”。但这并不是很令人欣慰,所以我希望如果它再次出现,有一个解决方案,或者至少有一个解释。
我正准备切片主机使用 Ubuntu Lucid 服务器(仅限 CLI)为 LAMP 角色创建虚拟服务器。我为自己创建了一个帐户(yukondude),但大多数安装都是以 root 身份进行的。在此过程中的某个时刻,mysql-server 包(aptitude install -Pr mysql-server
)失败并出现以下错误:
Unable to set password for the MySQL "root" user
An error occurred while setting the password for the MySQL administrative user.
This may have happened because the account already has a password, or because of
a communication problem with the MySQL server.
这是第一次安装 mysql-server,因此问题不可能是以前的密码。然后安装脚本将这些行转储到终端:
100903 19:57:05 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't create/write to file '/tmp/iblv4tJ0' (Errcode: 13)
100903 19:57:05 InnoDB: Error: unable to create temporary file; errno: 13
100903 19:57:05 [ERROR] Plugin 'InnoDB' init function returned error.
100903 19:57:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
ERROR: 1146 Table 'mysql.user' doesn't exist
100903 19:57:05 [ERROR] Aborting
此时它挂起了,因此我手动终止了安装进程。
然后我发现 Apache2 服务器拒绝提供我的测试 index.html 文件,而是生成 403 Forbidden 消息,尽管 /var/www/index.html 的权限完全开放且 Apache 配置没有更改。我也无法通过 SSH 登录到我的 yukondude 帐户,并且命令su - yukondude
生成cd /home/yukondude Permission Denied
错误(恐怕我没有确切错误消息的副本)。/home/ 和 /home/yukondude/ 的权限和所有权完全正常。回顾 mysql-server 错误,我想知道对 /tmp/ 中文件的访问是否相关。
是什么导致了这个奇怪的权限问题?我以前从未见过这样的事情。我想知道 PAM 是否可能参与其中,但我对该系统了解不够。我不确定 mysql-server 安装是否真的是罪魁祸首,或者只是当时出现的权限问题的受害者。
我尝试从新映像重新安装,结果完全相同。我的第三次也是最后一次尝试成功了(不同之处在于我在安装之前更新了软件包版本),所以今天早上我似乎没事了。但我担心同样的问题可能有一天会再次发生。我尝试用谷歌搜索寻求帮助,但还没有找到一个好的搜索短语。有什么建议吗?
更新:我要开始悬赏。正如我指出的那样,这个问题不再影响我了,但我确实想知道发生了什么。如果那些情况能提供线索,我也非常感谢任何经历过类似事情的人的评论。
答案1
尝试一下chmod +t /tmp
,看看是否能解决问题。
答案2
可能发生的一个相当常见的事情是您使用错误的参数运行 chmod 或 chown。
快速搜索 serverfault恢复 chmod返回许多问题,描述类似症状,即人员运行了错误的 chmod 命令。
答案3
可能是您的 Xen 主机存在磁盘或磁盘访问问题。
运行安装作业只能以 root 身份进行,因此您必须使用 su 或 sudo 才能进行安装。当您尝试使用其他帐户登录时,系统不会拒绝您的访问,但会拒绝您访问主文件夹。可以肯定地说,这排除了 PAM 的任何问题。
我们曾经遇到过类似症状的问题。我们的 Xen 客户机尝试将某些内容写入磁盘,但失败了,最终导致客户机出现内核恐慌。在此之前,客户机的行为与您的服务器非常相似。原来,Xen 主机中带有客户机映像的磁盘出现故障,导致客户机 I/O 操作超时。在某些情况下,Xen 主机接受您的磁盘写入,但实际上它尚未提交这些写入,当主机上的写入超时时,您的服务器映像将损坏。
答案4
是否有可能有两个用户具有相同的 UID?查看 /etc/passwd