Разрешения на монтирование в Linux

Разрешения на монтирование в Linux

У меня есть вопрос по монтированию в Linux Fedora. У меня есть точка монтирования внутри моего домашнего каталога. Точка монтирования находится в /home/user/project и в fstab я добавил строку:

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

Каталог /home/user/project имеет права доступа к файлу 0755, и он принадлежит пользователю. Но когда я делаю 'mount -a', владелец каталога меняется на root, а права доступа становятся 777. Я знаю, что у ext2/3/4 нет параметров uid= и gid=, но почему точка монтирования получает жестко заданные права доступа к файлу во время монтирования и как это изменить?

ПС

Тест проводился на Fedora 25. Когда я проделываю ту же самую процедуру на Fedora 23, я вижу другое поведение: права доступа к каталогу монтирования меняются на 755 (до монтирования они были 0777)

решение1

Разрешения для корня точки монтирования хранятся в смонтированной файловой системе (это на самом деле имеет смысл; иначе где бы /хранились разрешения для корневого каталога?). Вы меняете их обычным способом: chmod, chown, и т. д.

Перед монтированием вы видите разрешения для каталога точки монтирования в родительской файловой системе. После монтирования вы видите разрешения для корня смонтированной файловой системы.

Пример: у вас есть две файловые системы:

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

Обратите внимание, что обе они имеют самый верхний/корневой каталог ( /), как и все файловые системы (Unix). FS-A имеет два подкаталога, показанных ( /mntи /etc), и /mntимеет подкаталог /mnt/foo. FS-B имеет два файла, /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

Обратите внимание, что у нас есть выбор того, что /mnt/fooесть — это может быть /mnt/fooиз FS-A или /из FS-B. Оба имеют абсолютно одинаковый путь. Разработчики Unix выбрали FS-B.

PS: в вашей строке fstab отсутствует тип файловой системы. Должен быть перед опциями ( defaults).

Связанный контент