🐤

launchd で、load すると Path had bad ownership/permissions と言われる

2022/05/22に公開

エラー

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 権限がない groupothers が書き込み権限を持っているスクリプトを、
root 権限で定期実行する事は出来ないらしい。そりゃそうか。

https://stackoverflow.com/questions/28063598/error-while-executing-plist-file-path-had-bad-ownership-permissions

解決

権限確認

hoge@fuga:/Library/LaunchDaemons$ ls -l
-rw-rw-rw-  1 root  wheel  900  5 22 11:27 script.plist

groupotherswrite 権限を持っている。
この状態で 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 したら行けた

参考

https://qiita.com/rsahara/items/7d37a4cb6c73329d4683
https://qiita.com/shisama/items/5f4c4fa768642aad9e06

Discussion