matsuand です。いろいろありがとうございます。 On Thu, May 12, 2022 at 1:00 PM Akihiro Motoki <amoto****@gmail*****> wrote: ... > > 先日に chmod g+w をして頂いたことだけで、 > > あとはうまくいくであろうと思っています。 > > 何かあれば改めて提示させて頂きます。 > > とりあえずはなんとか対処できそうな状況でしたので、安心しました。 結論として既にサーバーサイドのソース改修、設定を行って、 本日0時の定時処理以降、実処理を行っています。 エラーは発生していません。 ちなみに chmod g+w に相当する対処は、 cron から呼び出されるスクリプト webupdate.sh、webupdate-all.sh の中で umask 002 を実行することにしました。 グループ書き込み権限がこれにより確保されています。 > すでに更新などがされているかもしれませんが、 > && でつなぐと、それぞれ別のサブシェルで実行されるので、 > newgrp が効かないと思います。 > また、 newgrp は新しいシェルセッションに入ってしまうので、 > && 以降は newgrp のセッション終了後にしか実行されないので、 > 目的にあわないかもしれません。 机上でのみ考えていて、全く気づきませんでしたが、 実際にやってみて気づきました。したがって cron 設定は以下のように sg コマンドを用いることにしました。 # m h dom mon dow command 33 */6 * * * sg linuxjm /home/groups/l/li/linuxjm/jm.git/admin/cron/webupdate.sh 3 1 15 * * sg linuxjm /home/groups/l/li/linuxjm/jm.git/admin/cron/webupdate-all.sh --- なお上述の対処を通じて、今回のエラー発生はすべて 解消されると踏んでいたのですが、まだ解消しません。 当初のメールにて、とりあえずの回避策としてお示しした rsync の --omit-dir-times オプションをつけることで 今のところエラー回避しています。 これまでに判断が二転三転してきたのですが、 現時点において、--omit-dir-times オプションは どうあっても必要であったのではないか、 と考えるようになりました。rsync 処理においては、 同一所有者による実行でないと、 (同一グループの別ユーザーが実行すると) rsync: failed to set times on "<directory>": Operation not permitted (1) のエラーが発生するものと捉えるようになりました。 なお上のように考えるにあたっての大前提は、 /home/groups/l/li/linuxjm ディレクトリ配下の全ファイル の所有者を amotoki から matsuand へ変更するような ことは行わない(amotoki のままとする)(ちなみに OSDN サーバー環境内では amotoki => matsuand への 所有者変更はできない)、というところにあり、この大前提 をひっくり返せば、対処の仕方は変わってくると思います。 (全ファイルを全削除して matsuand が作り直せば matsuand 所有ファイルとすることができます。) 各位においては、これの真の(?)解決策がお分かりになれば ご提示頂けたらよいと思いますが、私は今時点の結論で さしあたり十分に正解に近いと踏んでいて、これ以上の 調査は行いません。断念します。