[JM:03576] Re: https://linuxjm.osdn.jp/ が更新されていないようです。

Back to archive index
matsuand michi****@gmail*****
2022年 5月 8日 (日) 21:55:49 JST


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 で回避できて
しまうので、これはこれで良いかな、と手を抜いて
考えています。

さらに詳しく指南いただけるようであれば拝聴します。


linuxjm-discuss メーリングリストの案内
Back to archive index