crontabはユーザーに開かない

crontabはユーザーに開かない

開こうとすると、crontab次の出力が表示されます。

ubuntu@macaroon:~$ crontab -l
crontabs/ubuntu/: fopen: 権限が拒否されました。

しかし、sudoこれを追加するとうまく開き、そこで作業しても機能しません。

ubuntu@macaroon:~$ sudo crontab -l
# Edit this file to introduce tasks to be run by cron.
# omitted such info
* * * * * /usr/bin/env python3 /home/ubuntu/main.py date >> ~/main_script_cronjob.log

このマシンには何が欠けていますか?この動作を修正する方法

他のコンピュータはcrontab通常のコマンドを使用するとうまく動作するのでsudo

ここではいくつかの回避策を実行する必要があります。

sudo crontab -u Ubuntu -e

これにより、crontabUbuntuユーザーには正しく開きます。

修正する:

詳細については、追加情報crontab

ubuntu@macaroon:~$ ls -l /usr/bin/crontab
-rwxrwxrwx 1 root crontab 39568 Mar 23  2022 /usr/bin/crontab
ubuntu@macaroon:~$ sudo namei -l /var/spool/cron/crontabs/ubuntu
f: /var/spool/cron/crontabs/ubuntu
drwxr-xr-x root   root    /
drwxr-xr-x root   root    var
drwxr-xr-x root   root    spool
drwxr-xr-x root   root    cron
drwx-wx--T root   crontab crontabs
-rw------- ubuntu root    ubuntu

Dockerコンテナではありません。物理的な機械です。

ベストアンサー1

コマンドがcrontab権限を失いました。たとえば、私の(Raspbian)システムの権限には、次のものが含まれます。設定crontabsグループ権限ビット):

-rwxr-sr-x 1 root crontab 30452 Feb 22  2021 /usr/bin/crontab

ls -l /usr/bin/crontab問題のシステムで実行し、結果を質問に追加することでこれを確認できます。欠落しているsetgidビットを修正する方法は次のとおりです。

sudo chmod u=rwx,go=rx,g+s /usr/bin/crontab

(私はシンボル値を好みます:User = rwx、Group、Others = rx、Group + setgid。8進数も使用できます2755。)

また、Dockerで実行しようとすると、通常はデフォルトで権限が削除されますので、お知らせください。

おすすめ記事