解决方案

发生这种情况的主要原因是 /tmp 目录的权限错误。
当用户尝试使用“crontab -e”命令编辑 crontab 时,会在 /tmp 目录中创建一个临时的 crontab 文件,当用户保存更改时,该文件会覆盖在实际的 crontab 文件上。
/上不正确的组所有者 (root) 权限也可能导致此错误。
为了解决该问题,请检查服务器上的以下 2 件事。

问题

非特权用户无法使用命令“crontab -e”编辑他们的 crontab 文件

$ crontab -e
no crontab for oracle - using an empty one
/tmp/crontab.Lm14gsxt: Permission denied

“/tmp/crontab.Lm14gsxt:权限被拒绝”
$
更多: zhilu jiaocheng

检查 /tmp 的权限

  1. 确保/tmp目录的权限为“drwxrwxrwt”。
# ls -ld /tmp/
drwxr-xr-x. 13 root root 4096 Jan 14 10:48 /tmp/

正如我们在上面的输出中看到的,这些是不正确的权限。

  1. 像这样恢复正确的权限:
# chmod 1777 /tmp

该目录必须允许全局读取、写入和执行权限。
还设置了“粘性”位,以便只有文件的所有者才能删除它;否则任何用户都可以删除目录中的任意文件。

  1. 尝试在 /tmp/ 中创建一个新文件来验证:
# touch /tmp/test_file

验证 SELinux 权限

  1. 我们可能还想检查系统上是否启用了 SELinux。
    SELinux 在某些情况下,如果设置不正确会产生问题。
    要验证是否启用了 SELinux:
# getenforce
Enforcing
  1. 让我们暂时禁用 SELinux 以检查问题是否得到解决。
# setenforce 0
  1. 通过编辑用户 crontab 验证设置。
# crontab -e
  1. 如果没问题,你可能需要重新启用SELinux并使用“restorecon”来恢复/tmp目录的正确权限。
# setenforce 1
# restorecon -v /tmp
用户无法编辑 crontab,错误:/tmp/crontab.Lm14gsxt: Permission denied
日期:2020-09-17 00:14:12 来源:oir作者:oir