1週位前から朝バロシステムを raspi から rockpi-s (armbian)にしはじめたんだが、
いざ概ねDACとかロータリーエンコーダとかが動くようになって移行し始めたらなんと!
crontab -e が出来ない。
パーミッションエラーだとかいう。
最近堕落しまくってるので geminiくん に相談したら使ってるtmpdirのパーミッションが悪いだの armbian の cron にバグが混入してるだのエディタが悪いだのありとあらゆる対応をさせられて結局だめ。cron代替にしてくれっていったら最近は systemd-timerですヨ とか言い出す。
プログラムを定期的に動かすだけなんでsystemdは大げさだからイヤだったんだが、動かないもんはしょうが無い。ってことでsystemdへの書き換えをお願いして設定を始めたが、「こんどこそ完璧」ですといいながらまた10回位やり取りして多分今朝動くようになったと思う。
一息付いたのでOSをもう一枚別なボード用に焼き直してほぼ巣の状態で試してみることにした。
root権限のまんまだと当然ながらちゃんと crontab -e はできるし登録も出来る。
で、実利用するユーザになるとやっぱり permission error。
crontabを置き換えるプロジェクトは一杯あるのでそのどれかを入れてみようかなとおもって調べ始めたけど、そういえばこういうときのpermission error といえば /etc/group だよなと思ってみてらcrontab グループがある。raspiのときはそんなのをいじったことはないのだが、それより強いグループに自動的に入るっぽいので気がついてないだけだった。いや、大昔にadminしてたときもそんな目にあった記憶がないんだが忘れてるだけか?
マニュアルにもそれっぽいことがちゃんと書いてあった(/etc/groupにcrontabグループがあるとかは書いてないけど)。あほだった。
There is one file for each user's crontab under the /var/spool/cron/crontabs directory.
Users are not allowed to edit the files under that directory directly to ensure that only users allowed by the system to run periodic tasks can add them, and only syntactically correct crontabs will be written there.
This is enforced by having the directory writable only by the crontab group and configuring crontab command with the setgid bid set for that specific group.
なので、/etc/group の crontabグループに自分を追加したら普通に編集も出来てcron動作も問題ない。
私がアホだったのはしょうが無いとしてなんでgeminiくんがこんなもんわかって無くてめっちゃくちゃなことさせるんだよ。
とほほ。