🐤
launchd で、load すると Path had bad ownership/permissions と言われる
エラー
hoge@fuga:/Library/LaunchDaemons$ sudo launchctl load ./script.plist
Password:
/Library/LaunchDaemons/./script.plist: Path had bad ownership/permissions
Load failed: 122: Path had bad ownership/permissions
弾かれる。
原因
root
権限がない group
や others
が書き込み権限を持っているスクリプトを、
root
権限で定期実行する事は出来ないらしい。そりゃそうか。
解決
権限確認
hoge@fuga:/Library/LaunchDaemons$ ls -l
-rw-rw-rw- 1 root wheel 900 5 22 11:27 script.plist
group
と others
が write
権限を持っている。
この状態で load
すると冒頭のエラーになる。
権限修正
hoge@fuga:/Library/LaunchDaemons$ sudo chmod g-w ./script.plist
hoge@fuga:/Library/LaunchDaemons$ sudo chmod o-w ./script.plist
再実行
hoge@fuga:/Library/LaunchDaemons$ sudo launchctl load ./script.plist
いけた。
課題
当然だが、この状態で root 権限の無いユーザーでファイルを保存しようとすると、権限エラーで弾かれる。ファイルを修正したい時と load したい時で権限を切り替える必要があり、ちょっとめんどくさい。(なんか良い方法あるのかな…。)
↓
設定フォルダを置くディレクトリで直接編集するんじゃなく、設定フォルダを管理するリポジトリの直下で編集して sudo cp
したら行けた
参考
Discussion