![mkstemp 因 RHEL 8 操作系统非 root 用户而失败](https://linux22.com/image/194357/mkstemp%20%E5%9B%A0%20RHEL%208%20%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E8%80%8C%E5%A4%B1%E8%B4%A5.png)
我有一个小脚本,它使用 mkstemp 创建 tmp 文件。我的脚本是使用 root 用户创建的,但是如果我以 root 以外的其他用户身份登录,那么我的脚本会运行,但 msktemp 失败并显示权限被拒绝
sh: /tmp/tmpFile-khB5hH: 权限被拒绝
在 RHEL 7 中执行同样的操作,并且没有权限被拒绝错误,RHEL 8 中发生了更改。看起来 RHEL 8 正在检查登录用户与有效用户。
我在 RHEL 7.5 和 RHEL 8.4 中对此进行了测试。
如果有人知道 RHEL 8 中的更改会导致权限问题,请提出建议。谢谢
答案1
我已经通过 seteguid(getuid()) 在我的脚本中设置了登录用户,尽管这很危险,但这项工作仍然有效。这使得登录用户始终有效,并且在 RHEL8 上不会失败。