88635
Ubuntu 上で munin-node
のプラグインから一般ユーザーのホームディレクトリ配下にあるファイルやフォルダの情報を取得しようとしていますが、確実にファイルが存在するにも関わらず "No
such file or directory" のエラーが出ています。

自作のプラグイン (シェルスクリプト) をコマンドラインから実行した場合には意図した通りに動作しており、  
`munin-run` でのテストやデーモンから呼び出した場合にエラーとなっているようです。

権限の問題かと思い、プラグイン個別の設定ファイル中で `user root` などを指定しても状況は変わりませんでした。

**実行環境:**  
Ubuntu 20.04.4  
munin-node 2.0.56
CC BY-SA 4.0
2022-05-03T06:13:55.240
88634
2022-05-03T06:13:55.240
3060
question
linux ubuntu munin
munin-node のプラグインからホームディレクトリ配下のファイルにアクセスできない
munin-node サービスのユニットファイル `/lib/systemd/system/munin-node.service` 中に、  
`ProtectHome=true` という記述がされているのが原因のようです。

`/home/***` 以下のデータを読み取るには、`ProtectHome=read-only` に変更します。  
もしデータの書き込みも行う場合は `ProtectHome=false` という設定も用意されているようですが、殆どの場合は不要かと思います
(安全のためには推奨されません)。  
対象のファイルを `/home` の外に移動することも方法の一つです。

なお、設定変更後に munin-node の再起動を行ったところ以下のような警告が表示されました。

```

    # systemctl restart munin-node
    Warning: The unit file, source configuration file or drop-ins of munin-node.service changed on disk. Run 'systemctl daemon-reload' to reload units.
    
```

追加で以下のコマンドを実行することで、意図した通りプラグインからもファイルにアクセスできるようになりました。

```

    # systemctl daemon-reload
    
```

参考:  
[Munin-node plugins on Debian 10 cannot read from home directories. Debian 9
works fine - Server Fault](https://serverfault.com/q/1004695)
CC BY-SA 4.0
2022-05-03T06:13:55.240
88635
2022-05-03T06:13:55.240
3060
88634
answer