LinuxForum.Fans
Тема

mount ext4

Автор: Peter 23 сообщений 2311 просмотров
#363855

Здравствуйте!

Почему-то раздел на usb-flash в ext4 монтируется пользователем,
но не так, как указано в /etc/fstab и на запись только для root.
Вот строка из /etc/fstab:
[console]/dev/sdc1 /media/usb-ext ext4 rw,noauto,async,suid,dev,exec,users 0 0[/console]
А вот из /etc/mtab:
[console]/dev/sdc1 /media/usb-ext ext4 rw,nosuid,nodev,noexec,relatime 0 0[/console]
Вот вывод "ls -l /dev/sdc*
[console]
brw-rw---- 1 root floppy 8, 32 Feb 2 16:15 /dev/sdc
brw-rw---- 1 root floppy 8, 33 Feb 2 16:15 /dev/sdc1
brw-rw---- 1 root floppy 8, 34 Feb 2 16:15 /dev/sdc2
[/console]
Пользователь есть в группах floppy и disk.

В чём причина такого поведения и что надо сделать, чтобы опльзователь
имел право на запись?
После монтирования каталог /media/usb-ext становится root:root 755.

Пётр.

#363860

Потому что это не раздел Windows, монтируется с теми правами, с которыми вы и записывали на этот раздел.
как вариант можно после монтирования изменить права:

text
# chown -R user_name /media/usb-ext
#363864
ormorph написал:
Потому что это не раздел Windows, монтируется с теми правами, с которыми вы и записывали на этот раздел.
как вариант можно после монтирования изменить права:
text
# chown -R user_name /media/usb-ext

Я это подумал, насчёт прав создания, но ведь права имеет файл или каталог,
а что имеет раздел? Там же только файловая система. Каталог lost+found тоже есть,
а когда я в другом подобном случае создал на ext4 каталог и сделал его владельцем
nobody:nogroup, то после монтирования он был доступен пользователю на запись,
но мне сказали, что это лишнее.

Почему для того, чтобы пользователю был доступен по записи последовательный
порт, COM или USB, достаточно включить его в группу dialout, а в данном случае
недостаточно включить его в группу floppy?

Пётр.

#363865
"Peter" написал:
Почему для того, чтобы пользователю был доступен по записи последовательныйпорт, COM или USB, достаточно включить его в группу dialout, а в данном случаенедостаточно включить его в группу floppy?

Потому что это файловая система. Файлы там также должны принадлежать root:floppy, тогда доступ будет.

#363867
yars написал:
[quote="Peter"]Почему для того, чтобы пользователю был доступен по записи последовательныйпорт, COM или USB, достаточно включить его в группу dialout, а в данном случаенедостаточно включить его в группу floppy?

Потому что это файловая система. Файлы там также должны принадлежать root:floppy, тогда доступ будет.[/quote]
Так пользователь не может записать в корень раздела.
Вот как сделать, чтобы при монтировании не переключались на противоположные
опции, указанные в /etc/fstab?

Пётр.

#363870
"yars" написал:
Потому что это файловая система. Файлы там также должны принадлежать root:floppy, тогда доступ будет.

Ну не только, так же еще пользователю должны быть даны права на чтение запись.

Просто особенность UNIX-подобных файловых систем.
Тут могу посоветовать книгу "Linux и Unix прогамирование в shell Девид Тейнсли" там про права подробно написано.

"Peter" написал:
Так пользователь не может записать в корень раздела.
Вот как сделать, чтобы при монтировании не переключались на противоположные
опции, указанные в /etc/fstab?

А опции и не меняются, просто внимательно почитайте man mount
какая опция для чего нужна (монтировать под пользователем , или монтировать с правами пользователя).

#363874

Я смотрел и пробовал, и раньше и сейчас, но, по-видимому, недостаточно внимательно.
Сейчас воткнул эту флешку в ноутбук с Ubuntu-13.04,
разделы смонтировались автоматически,
vfat смонтировался для пользователя, а ext4 - для root:root,
т.е. пользователь прав на запись не имеет.

Пётр.

#363889
"Peter" написал:
vfat смонтировался для пользователя, а ext4 - для root:root,
т.е. пользователь прав на запись не имеет.

Ну так все правильно, в vfat можно назначить права монтирования, за это отвечает параметр umask, а для Linux ФС, права на корень, каталоги и файлы даются командами chown, chgrp, chmod. Опциями монтирования можно выставить на только для чтения, либо для чтения/записи.

#363900
ormorph написал:
[quote="Peter"]vfat смонтировался для пользователя, а ext4 - для root:root,
т.е. пользователь прав на запись не имеет.

Ну так все правильно, в vfat можно назначить права монтирования, за это отвечает параметр umask, а для Linux ФС, права на корень, каталоги и файлы даются командами chown, chgrp, chmod. Опциями монтирования можно выставить на только для чтения, либо для чтения/записи.[/quote]
Так что, надо искать udeb rule, которым монтируется usb-flash и добавлять туда запуск скрипта?
Или можно как-то опциями монтирования?

Пётр.

#363903
"Peter" написал:
Так что, надо искать udeb rule, которым монтируется usb-flash и добавлять туда запуск скрипта?
Или можно как-то опциями монтирования?

Не знаю что вам конкретно необходимо и что находится на флешке EXT4?
По идее должно быть достаточно выполнить после монтирования раздела EXT4 в каталог /media/usb-ext:

text
# chmod -R 777 /media/usb-ext

Далее после этого при каждом монтировании, будут разрешены все операции для пользователя (чтение. запись выполнение).

Опциями монтирования не получится.

#363909
ormorph написал:
[quote="Peter"]Так что, надо искать udeb rule, которым монтируется usb-flash и добавлять туда запуск скрипта?
Или можно как-то опциями монтирования?

Не знаю что вам конкретно необходимо и что находится на флешке EXT4?
По идее должно быть достаточно выполнить после монтирования раздела EXT4 в каталог /media/usb-ext:

text
# chmod -R 777 /media/usb-ext

Далее после этого при каждом монтировании, будут разрешены все операции для пользователя (чтение. запись выполнение).

Опциями монтирования не получится.[/quote]
Плохо, если не получится опциями монтирования, а я именно не хочу вводить команду как root.
А если при создании ext4 использовать опцию root_owner и задать nobody_nogoroup?

Пётр.

#363913

А что, опции group, owner, user, users не дают желаемого результата?

text
group
Allow an ordinary (i.e., non-root) user to mount the filesystem if one of his groups  matches  the  group  of  the device.   This  option  implies  the  options nosuid and nodev (unless overridden by subsequent options, as in the option line group,dev,suid).
...
owner
Allow an ordinary (i.e., non-root) user to mount the filesystem if he is the owner of  the  device.   This  option implies  the  options  nosuid  and  nodev  (unless  overridden  by  subsequent  options,  as  in  the  option line owner,dev,suid).
...
user
Allow an ordinary user to mount the filesystem.  The name of the mounting user is written to mtab so that  he  can unmount  the  filesystem  again.   This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line user,exec,dev,suid).
...
users
Allow every user to mount and unmount the filesystem.  This option implies the options noexec, nosuid,  and  nodev
(unless overridden by subsequent options, as in the option line users,exec,dev,suid).
#363917

owner в этот раз не пробовал, а остальные не дают.
Пробовал также grpid.

Пётр.

#363918
"Peter" написал:
owner в этот раз не пробовал, а остальные не дают.

И не должна дать к сожалению...
Это все опции прав на монтирование устройства, а не ФС.

#363921

Я попробовал создать fs с параметром
-E root_owner=0:25
25 - это floppy-gid, а при подключении флешки владельцем раздела становится
root:floppy, права 660,
а также установил права на каталог монтирования /media/usb-ext
775, владелец его тоже root:floppy,
теперь после монтирования флешки пользователем он остаётся у root:floppy,
но права меняются на 755, так что пользователь по-прежнему не имеет доступа на запись.

Пётр.

#363932

Не легче было бы тогда, создать без root_owner, а просто присвоить группу

text
# chgrp -R wheel /media/usb-ext

А затем дать права на 775

text
# chmod 775 -R /media/usb-ext

после должно было бы и так все получится под пользователем в группе wheel.

#363935
ormorph написал:
Не легче было бы тогда, создать без root_owner, а просто присвоить группу
text
# chgrp -R wheel /media/usb-ext

А затем дать права на 775

text
# chmod 775 -R /media/usb-ext

после должно было бы и так все получится под пользователем в группе wheel.

Мне надо, чтобы раздел монтировался уже с правами на запись,
без дополнительных команд от root. Потом, какая разница, wheel или floppy?
При монтировании root:floppy сохраняется, но меняется 775 на 755.
Я изменил в /etc/login.defs UMASK на 002, но это не помогло.

Пётр.

#363946

Эти команды нужны только один раз, чтобы дать права, а потом уже при следующем монтировании эти права будут подхватываться автоматом.

Зы: права даются при уже смонтированном разделе.

Пример:
[console]# dd if=/dev/zero of=test.img bs=1M count=2
# mkfs.ext4 test.img
# mkdir /mnt/gg
# mount -o loop test.img /mnt/gg
# chgrp -R wheel /mnt/gg
# chmod 775 -R /mnt/gg
# umount /mnt/gg
# cd /mnt/
# ls -l
drwxr-xr-x 2 root root 4096 февр. 2 20:14 gg
# mount -o loop /xxx/test.img /mnt/gg
# ls -l
drwxrwxr-x 8 775 wheel 1024 февр. 2 22:56 gg[/console]

#363950

Насчёт того, что при смонтированном, я сомневаюсь, но попробую.
В любом случае всё это очень неудобно и непереносимо,
т.к. на другом компьютере флешка не смонтируется.

Пётр.

#363980

Я обнаружил, что в Debian Wheezy mke2fs не имеет параметра root_owner,
tune2fs тоже не имеет подобного параметра. А после создания fs и монтирования раздела
возможно назначить ей владельца с помощью chown?

Ещё непонятно, почему при подключении usb-flash /dev/sdc* получают права 660.
Я посмотрел /lib/udev/rules.d/91-permissions.rules, ни там, ни вообще ни в каком
*.rules нет таких прав - 660.

И почему при монтировании пользователем раздела ext4 на каталог с правами 775
они меняются на 755? От чего это зависит или чем определяется?

Пётр.

Войдите или зарегистрируйтесь, чтобы ответить.