問題
権限のないユーザーは、コマンド「crontab -e」を使用して自分の crontab ファイルを編集できません
$ crontab -e no crontab for oracle - using an empty one /tmp/crontab.Lm34gsJV: Permission denied $
解決策
これは主に、/tmp ディレクトリの権限が間違っているために発生する可能性があります。ユーザーが「crontab -e」コマンドを使用して crontab を編集しようとすると、一時的な crontab ファイルが /tmp ディレクトリに作成され、ユーザーが変更を保存すると、実際の crontab ファイルに上書きされます。 / に対するグループ所有者 (ルート) の権限が正しくない場合も、このエラーが発生する可能性があります。この問題を解決するには、サーバーで以下の 2 つのことを確認してください。
/tmp のパーミッションを確認してください
1. /tmp ディレクトリの権限が「drwxrwxrwt.」であることを確認します。 」
# ls -ld /tmp/ drwxr-xr-x. 13 root root 4096 May 14 10:48 /tmp/
上記の出力からわかるように、これらは不適切な権限です。
2. 次のように正しい権限を復元します:
# chmod 1777 /tmp
ディレクトリは、すべての読み取り、書き込み、および実行権限を許可する必要があります。ファイルの所有者だけがファイルを削除できるように、「スティッキー」ビットも設定されます。そうしないと、ユーザーがディレクトリ内の任意のファイルを削除する可能性があります。
3. /tmp/ に新しいファイルを作成して確認してください:
# touch /tmp/test_file
SELinux パーミッションを確認する
1. システムで SELinux が有効になっているかどうかを確認することもできます。場合によっては、SELinux が正しく設定されていないと、問題が発生する可能性があります。 SELinux が有効になっているかどうかを確認するには:
# getenforce Enforcing
2. SELinux を一時的に無効にして、問題が解決するかどうかを確認します。
# setenforce 0
3. ユーザー crontab を編集して設定を確認します。
# crontab -e
4. 正常に動作する場合は、SELinux を再度有効にして、「restorecon」を使用することをお勧めします。 」を使用して、/tmp ディレクトリの正しい権限を復元してください。
# setenforce 1 # restorecon -v /tmp