matsuand です。 返信ありがとうございます。 全般に、私がよく理解できていない領域のようで、 正解がわかりませんが・・ On Sun, May 8, 2022 at 9:13 PM ribbon <jm****@ribbo*****> wrote: ... > > rsync: failed to set times on > > "/home/groups/l/li/linuxjm/htdocs/manual/GNU_make": Operation not > > permitted (1) > > 時刻をセットしようとしたけれど、アクセス権に引っかかってエラー ですよね。 > > /home/groups/l/li/linuxjm/htdocs/manual/GNU_make はディレクトリで、 > drwxrwsr-x となっています。setgid が設定されてますね。 > > で、このファイルにアクセスするプロセスは、どのuid/gidで動いているのでしょう? cron 設定を uid=matsuand, gid=users で設定している都合上、 ファイルアクセスプロセスの uid/gid は matsuand/users になるのか と思います。 ここで横道にそれるかもしれませんが、OSDNサーバーに ssh ログインした 直後は、誰しも自ユーザーのホームディレクトリに入ります。 そこで試しに mkdir test とすると、この test ディレクトリは $ ls -l drwxr-xr-x 2 matsuand users 4096 May 8 21:40 test となります。(setgid なし、グループは users) 一方、linuxjm のディレクトリ /home/groups/l/li/linuxjm に 移動して、同じく mkdir test をすると $ ls -l drwxr-sr-x 2 matsuand linuxjm 4096 May 8 21:41 test となります。(setgid あり、グループは linuxjm) そもそも、setgid の設定なり、グループの設定は、 どのような設定が為されていて、こうなるのでしょう? 私には知識がありません。 ribbon さんご指摘と照らし合わせると、たしかに users と linuxjm のグループ違いで、エラー発生した かのように見えます。この先は私には分かりません・・・ --- ところで、そもそもの話、このエラー発生箇所は、 rsync 処理を行っている場面であり、何を rsync しているか、と言うと、 1) サーバー上で git pull して、リポジトリ最新内容 を取得している => jm.git ディレクトリ 2) リポジトリ内容をウェブアクセスさせる目的で、 ウェブ公開ディレクトリ htdocs 配下に、jm.git 配下の内容を(不要なものは除外した上で) コピーしている => http://linuxjm.osdn.jp/manual/ により 参照可能となる; こういうアクセスをさせることが 本来の意味ではなく、「JM インデックス (作業状況)」 ページ http://linuxjm.osdn.jp/INDEX/progress.html において、original リンクや prev.release リンクにより man ページの生データを参照させるため。 つまり 1) から 2) への rsync コピーを行っています。 で、 この場面での処理目的を考えると、ディレクトリの タイムスタンプを維持することは不要なことなので、 たまたま今、(グループ違いにより?) ディレクトリ へのタイムスタンプ更新に失敗しているのなら、 そのタイムスタンプ更新をやめにしてしまえば、 エラー回避が出来てしまう、というものです。 前メールで示した rsync の --omit-dir-times オプションがこれを実現します。 最も由緒正しい(?)やり方は、gid まわりを適切に 取り扱うことでエラー回避することなのであろう、と 思うのですが、omit-dir-times で回避できて しまうので、これはこれで良いかな、と手を抜いて 考えています。 さらに詳しく指南いただけるようであれば拝聴します。