У меня есть вопрос по монтированию в 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
).