Open3
Snap パッケージのデバッグについて
使用するコマンド
- snapcraft
- パッケージの生成や設定ファイルの生成など
- snap
- パッケージのインストール
パッケージ設定
snapcraft.yaml というファイルに記載する。
snapcraft init
により、カレントディレクトリにsnapというディレクトリを作成し、その中にひな形のsnapcraft.yaml を生成してくれる。
パッケージのビルド
snapcraft.yaml が置かれたディレクトリで、snapcraft
と実行する。
ビルド時にkvmを使用するようで、仮想環境内でのビルドには工夫がいるかもしれない。
(自分の場合はめんどうなので、ネイティブなUbuntuホスト上で行っている)
パーミッション
interface により細かくアプリのアクセス制限がなされる。
通信/ファイルアクセス/HW制御などなど。
multipass のエラーが出る場合
きちんと調べていないが、multipassの再起動を下記コマンドで行い対処している。
sudo snap restart multipass
パーミッションの追い方(調査途中)
interfaceによる制限により、snapパッケージでは満足に動作しないことがある。(読みたいファイルが読めないとか)
適切なパーミッションの設定の仕方の調査過程の記録。
開発モードでのパッケージインストール
開発モードでsnapパッケージをインストールすると、パーミッションの制限がなくなる。
sudo snap install --devmode *.snap
Journalctlによる確認
ドキュメントによると、auditログを見ながらデバッグするようだ。
auditログとinterface設定との関連がよくわからない。
sudo journalctl --since=yesterday | grep audit
自分の環境においては、AppArmorによる検知ログが見つかった。