Linux でのマウント権限

Linux でのマウント権限

I have a question about mount in Linux Fedora. I have a mount point inside my home directory. The mount point is at /home/user/project and in fstab I have added the line:

/dev/mapper/fedora-proj /home/user/project ext4 defaults 1 2

The directory /home/user/project has the file permissions 0755 and it is owned by user. But when I do 'mount -a', the directory owner gets changed to root and the permissions are 777. I know ext2/3/4 do not have uid= and gid= options, but why is the mounting point receives hard coded file permissions during mount and how can I change it?

P.S

The test was made on Fedora 25. When I am doing the exact same procedure on Fedora 23 I see a different behavior: the mount directory permissions are changing to 755 (before mount it is 0777)

答え1

マウントポイントのルートの権限は、マウントされたファイルシステムに保存されます (実際にはこの方法では意味があります。そうでなければ、ルート ディレクトリの権限はどこに/保存されるのでしょうか?)。権限は通常の方法で変更します: chmod、、chownなど。

マウントする前は、親ファイルシステム上のマウントポイント ディレクトリの権限が表示されます。マウント後は、マウントされたファイルシステムのルートの権限が表示されます。

例: 2 つのファイルシステムがあります。

FS-A             FS-B
/                /
  /mnt             /file1
    /foo           /file2
  /etc           

両方のファイルシステムには、/他のすべての (Unix) ファイルシステムと同様に、最上位/ルート ディレクトリ ( ) があることに注意してください。FS-A には、2 つのサブディレクトリ (/mnt/etc) があり、/mntサブディレクトリ があります/mnt/foo。FS-B には、2 つのファイル/file1と があります/file2。Unix ファイルシステムであるため、これらすべてのディレクトリとファイルには、ユーザー、グループ、および権限があります。ここで、FS-A をルート ファイルシステムにして、FS-B を にマウントしてみましょ/mnt/fooう。次のようになります。

/                   # FS-A /
  /mnt              # FS-A /mnt
    /foo            # FS-A /mnt/foo *or* FS-B /
      /file1        # FS-B /file1
      /file2        # FS-B /file2
  /etc              # FS-A /etc

何がFS-A からのもの/mnt/fooなのか、FS-B からのものなのかを選択できることに注意してください。どちらもまったく同じパスを持っています。Unix の設計者は FS-B を選択しました。/mnt/foo/

PS: fstab 行にファイルシステムの種類がありません。オプション ( defaults) の前に記述する必要があります。

関連情報