如何让 MySQL 以不同的用户身份写入输出文件?

2024-01-22

我正在使用写入输出文件的 MySQL 查询。我每天或每两天运行一次此查询,因此我希望能够删除输出文件,而不必求助于 su 或 sudo。我能想到实现这一点的唯一方法是将输出文件写为由 mysql 用户以外的其他人拥有。这可能吗?

编辑:我没有将输出重定向到文件,我使用选择查询的 INTO OUTFILE 部分来输出到文件。

如果有帮助:



mysql --version
mysql  Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (x86_64) using readline 5.2
  

输出文件是由 mysqld 进程创建的,而不是由您的客户端进程创建的。因此输出文件必须由 mysqld 进程的 uid 和 gid 拥有。

如果您从可以访问该文件的 uid 或 gid 下的进程访问该文件,则可以避免使用 sudo 来访问该文件。换句话说,如果mysqld创建了uid和gid“mysql”/“mysql”拥有的文件,那么将自己的帐户添加到“mysql”组中。然后您应该能够访问该文件,前提是该文件的权限模式包括组访问。

Edit:

您正在删除/tmp 中的文件,目录权限模式为rwxrwxrwt。粘滞位 ('t') 表示仅当您的 uid 与文件所有者相同时才可以删除文件,无论文件或目录的权限如何。

如果您将输出文件保存在另一个没有设置粘滞位的目录中,您应该能够正常删除该文件。

阅读 Sticky(8) 手册页的摘录:

粘性目录

设置了“粘性位”的目录成为仅追加目录,或者更准确地说,成为限制删除文件的目录。仅当用户具有该目录的写权限并且该用户是该文件的所有者、该目录的所有者或超级用户时,该用户才可以删除或重命名粘性目录中的文件。此功能可有效应用于 /tmp 等必须可公开写入的目录,但应拒绝用户任意删除或重命名彼此文件的许可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 MySQL 以不同的用户身份写入输出文件? 的相关文章

随机推荐