該当箇所
src/utils.js:12-14 — writeFile 関数
src/index.js:46 — encrypt() 内での呼び出し
// src/utils.js
export async function writeFile(filepath, content) {
await fs.writeFile(filepath, content, 'utf8');
}
問題
Issue #2 で .env.key のパーミッション問題は指摘済みだが、.env.enc(暗号化されたシークレットを含むファイル)も同様にデフォルトパーミッション (0644) で作成される。シークレット管理ツールとして、グループ・その他ユーザーから読める状態は不適切。
修正案
- 簡易:
writeFile にオプション引数で mode を渡せるようにし、init() と encrypt() で 0o600 を指定
- 本格:
writeFile を拡張するか、init() / encrypt() で fs.writeFile 後に fs.chmod(filepath, 0o600) を呼ぶ。CLI オプション --no-restrict も検討
期待効果
該当箇所
src/utils.js:12-14—writeFile関数src/index.js:46—encrypt()内での呼び出し問題
Issue #2 で
.env.keyのパーミッション問題は指摘済みだが、.env.enc(暗号化されたシークレットを含むファイル)も同様にデフォルトパーミッション (0644) で作成される。シークレット管理ツールとして、グループ・その他ユーザーから読める状態は不適切。修正案
writeFileにオプション引数で mode を渡せるようにし、init()とencrypt()で0o600を指定writeFileを拡張するか、init()/encrypt()でfs.writeFile後にfs.chmod(filepath, 0o600)を呼ぶ。CLI オプション--no-restrictも検討期待効果