Fedora 16 奇怪的/tmp 权限:mysqld 不会启动

Kat*_*oak 7 fedora mysql systemd bugs

我在全新的 Fedora 16 服务器上安装了 mysql,但它无法启动。这是日志文件(^G和所有)中的行:

^G/usr/libexec/mysqld: Can't create/write to file '/tmp/ibNPyIlu' (Errcode: 13)
Run Code Online (Sandbox Code Playgroud)

我看了看,/tmp/它有相当奇怪的权限:

drwxrwxrwt.
Run Code Online (Sandbox Code Playgroud)

为什么是点? chmod 1777不会改变任何东西。这是否对错误负责?下一步是什么?

Bar*_*own 5

点表示有一个 ACL(访问控制列表)覆盖了通常的 Unix 权限方案。这是我的样子:

$ ls -ld /tmp
drwxrwxrwt. 7 root root 4096 Apr 23 22:36 /tmp

$ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx
Run Code Online (Sandbox Code Playgroud)

检查您的 /tmp 目录。如果不同,请使用 setfacl 进行更正。


Mik*_*kel 5

错误 13 可能是系统错误 13,这意味着权限被拒绝。

$ perror 13
OS error code  13:  Permission denied
Run Code Online (Sandbox Code Playgroud)

点表示该文件具有 SELinux 上下文。

GNU coreutils - 列出了哪些信息

GNU ls 使用 '.' 字符以指示具有 SELinux 安全上下文的文件,但没有其他替代访问方法。

具有替代访问方法的任何其他组合的文件用“+”字符标记。

您可以通过运行来显示 SELinux 上下文ls -Z,例如

$ ls -dZ /tmp
drwxrwxrwt. root root system_u:object_r:tmp_t:s0       /tmp
Run Code Online (Sandbox Code Playgroud)

接下来的步骤是:

  • 在看 /var/log/messages
  • 在看 /var/log/audit/audit.log
  • 尝试运行ausearchsealert

看:


Geo*_*e M 4

这是一个错误,从他们更改为使用 ServicesPrivateTmp 来提高安全性时mysqld开始。systemd当您执行 时yum updatemysql软件包已更新为 mysql-5.5.22-1.fc16 或更高版本,从而纠正了该问题。