0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu24.04 における Apparmor + NFS homedirs 環境のための設定

Last updated at Posted at 2025-05-23

はじめに

  • snap版のアプリ(例えば VS Code)をNFS環境で使うときに,↓のようなエラーでハマってしまった.

    $ code
    cannot create user data directory: /home/file-server/user1/snap/code/194: Permission denied
    
  • 下書きのような雑文ですが,現状日本語だと情報が見つからないので,誰かの役に立つと信じて残しておきます.

  • 以下,Ubuntu 24.04 で動作確認をしています.

何が起こっているのか

NFS でホームディレクトリを共有する設定だと,たいていユーザのホームディレクトリは:

/srv/nfs/user1
/home/fs1/user1   # /home/fs1 = mount point, user1 = username

みたいにしているかと思います.

しかし,Apparmor の初期設定ではデフォルトのユーザディレクトリ /home/*/root しか,ホームディレクトリの対象として登録されていません.(そしてこの設定はrecursiveではない様子)
そのため,ユーザのホームディレクトリの場所を明示しておかないと,不要なパーミッションエラーに悩まされることになります.

参考:

設定方法

設定方法を2通り紹介します.

設定方法1

コマンドを使って設定したいなら:

$ sudo dpkg-reconfigure apparmor

で,「追加のホームディレクトリの場所 (Additional home directory locations)」 に,該当のディレクトリを追加する.
例えば,fstab や autofs で /home/file-server をマウントしていて,tako ユーザのディレクトリが /home/file-server/tako のような場所にあるとしたら:

/home/file-server/

を入力する.
なお,この手順により /etc/apparmor.d/tunables/home.d/ubuntu に設定項目が追加される.

設定方法2

を参考にして,/etc/apparmor.d/tunables/home.d/site.local を書き換える.例えば:

@{HOMEDIRS}+=/home/file-server/

デフォルトではコメントアウトされていることに注意.

このhome.dにあるファイルは,/etc/apparmor.d/tunables/home で include されている.

最後に

$ sudo systemctl reload apparmor.service

あるいは:

$ sudo systemctl restart apparmor.service snapd.apparmor.service snapd.service snapd.socket

を忘れずに.

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?