私のユーザーとしてクローンタスクを設定しようとしています。 crontab -eを実行して編集し、保存して終了します。次のエラーメッセージが表示されます/var/spool/cron/: mkstemp: Permission denied
。
ls -al /var/spool/cron/crontabs 関連出力
drwxr-xr-x 2 root crontab 4096 Nov 4 10:09 .
drwxr-xr-x 5 root root 4096 Nov 19 2014 ..
-rw-rw-rw- 1 greg crontab 91 Nov 4 11:04 greg
-rw------- 1 root crontab 1231 Oct 29 16:18 root
gregファイルを直接変更して保存できますが、アップデート後にcronを再起動してもまだジョブが実行されないようです。この問題を解決するにはどうすればよいですか?
出力はls -lha $(which crontab)
次のとおりです
-rwxr-sr-x 1 root crontab 36K Feb 8 2013 /usr/bin/crontab
出力はgroups greg
次のとおりです
greg : greg adm sudo crontab lpadmin sambashare
答え1
これは即時の問題を解決します。
chmod u=rwx,g=wx,o=t /var/spool/cron/crontabs
ただし、パッケージをダウンロードできる場合は、この問題を解決するより信頼性の高い方法はapt-get
適切なパッケージを再インストールすることです。
root@ubuntu# dpkg-query -S /var/spool/cron/crontabs
cron: /var/spool/cron/crontabs
root@ubuntu# apt-get install --reinstall cron
まず、背中へのローカル変更がどこかにコピーされ、再適用されたことを確認/etc/init/cron.conf
してください/etc/default/cron
。
答え2
Mark Plotnickが言及した解決策は私には効果がありませんでしたが、私のユーザーをグループに追加した後はうまくいきましたcrontab
。
sudo adduser myname crontab
この変更を適用するには、ログアウトして再度ログインする必要があります。
答え3
Ubuntu 22.04で:
crontab ~/admin/scripts/crontab.txt
/var/spool/cron/: mkstemp: 権限が拒否されました。
$ ls -lha $(which crontab)
-rwxr-sr-x 1 ルート crontab 39K 2022 年 3 月 23 日/usr/bin/crontab
~$ ls -lha /var/spool/cron/crontabs
ls: '/var/spool/cron/crontabs' ディレクトリを開けませんでした: 権限が拒否されました。
~$ sudo ls -lha /var/spool/cron/crontabs
合計8000個
drwx-wx--T 2ルートsystemd-journal 4.0K 2023年3月2日。
drwxr-xr-x 3 ルート ルート 4.0K 7月22日 09:48 ..
したがって、権限を取得するために実行するには、2 つのユーザーグループが必要です。
sudo usermod -a -G systemd-journal <user>
sudo usermod -a -G systemd-journal <user>
ログアウトしてから、次のユーザーとして再度ログインしてください。
crontab ~/admin/scripts/crontab.txt
crontab -l
0 */1 * * * ~/admin/scripts/elasticsearch_flush.sh > /dev/null 2>&1