背景
PR #31でcontroller instance lockをuser-scopeのtemporary sub directoryへ移しましたが、POSIXでは予測可能なpathへ事前作成されたsymlinkや別UID所有directoryをmkdir(..., exist_ok=True)が受理できます。後続のchmod失敗も抑止するため、lock file openが不安全な既存pathを追跡する可能性があります。
Root cause
現在の検証は新規directoryの名称と0700だけを対象とし、既存pathの種別・owner UID・group/other write permissionを確認していません。
Acceptance criteria
- POSIXでuser-scope pathがsymlinkならlock file open前に拒否する
- POSIXで別UID所有directoryを拒否する
- POSIXでgroup/other writableな既存directoryを拒否する
- current UID所有の安全なdirectoryは
0700で利用できる
- 正常・例外・process終了後のlock回収、二重起動拒否、固定公開stderrを維持する
- symlink再現testを追加し、既存のpublication・ruff・mypy・pytest・build gateを通す
Non-goals
- lock protocolや公開stderrの変更
- PID・port・command・cwdの保存
- USB CDC、Codex app-server、firmware、Cardputer画面の変更
- 実USB portのopenまたはfirmware upload
Refs #30
Refs #31
背景
PR #31でcontroller instance lockをuser-scopeのtemporary sub directoryへ移しましたが、POSIXでは予測可能なpathへ事前作成されたsymlinkや別UID所有directoryを
mkdir(..., exist_ok=True)が受理できます。後続のchmod失敗も抑止するため、lock file openが不安全な既存pathを追跡する可能性があります。Root cause
現在の検証は新規directoryの名称と
0700だけを対象とし、既存pathの種別・owner UID・group/other write permissionを確認していません。Acceptance criteria
0700で利用できるNon-goals
Refs #30
Refs #31