- Mount device with r/w access to specific user
- Команда mount в Linux
- Введение
- Синтаксис
- Параметры
- Использование команды mount в Linux
- Результат монтирования
- Запуск без параметров
- Список определённых файловых систем
- Монтирование файловой системы
- Монтирование файловой системы с помощью /etc/fstab
- Монтирование съёмного устройства
- Размонтирование съёмного устройства
- Принудительное размонтирование
- Заключение
Mount device with r/w access to specific user
You can use the -o option, that will let you set up umask, owner and group owner for the mounted device.
mount -t vfat -o umask=0022,gid=33,uid=33 dev /var/www
That will mount a vfat device in /var/www with umask 0022, owner: user with ID 33, and group: group with ID 33.
There’s no generic way to do exactly that. If the filesystem doesn’t have a notion of file ownership, it probably has a mount option ( uid ) to decide which user the files will belong to. If the filesystem does have a notion of file ownership, mount it read-write, and users will be able to write every file they have permission to.
If you only want a specific user to access the filesystem, and there is a FUSE driver for it, then arrange for the user to have read-write access to the device and mount it through FUSE as that user.
Another way to only let a specific user (or a specific group, or better fine-tuning through an ACL) is to place the mount point underneath a restricted-access directory:
mkdir -p /media/restricted/joe/somedisk chown joe /media/restricted/joe/somedisk chmod 700 /media/restricted/joe/somedisk mount /dev/sdz42 /media/restricted/joe/somedisk
If you want some users to have read-write access and others to have read-only access regardless of file permissions, mount the filesystem read-write under a restricted access directory and use bindfs to make a read-only view of that filesystem.
bindfs -o perms=a-w /media/private/somedisk /media/public-read-only/somedisk
You can also make a bindfs view read-write to some users and read-only for others; see the -m and -M options in the bindfs man page. Remember to put the primary mount point under a directory that only root can access.
Команда mount в Linux
В Linux команда mount позволяет пользователям монтировать (присоединять) дополнительную файловую систему к определённой точке монтирования текущей системы.
- Введение
- Синтаксис
- Параметры
- Использование команды mount в Linux
- Результат монтирования
- Запуск без параметров
- Список определённых файловых систем
- Монтирование файловой системы
- Монтирование файловой системы с помощью /etc/fstab
- Монтирование съёмного устройства
- Размонтирование съёмного устройства
- Принудительное размонтирование
Введение
Иерархия файловой системы Linux организована в виде большой древовидной структуры, где файловая система начинается с корневого каталога / . Все остальные дочерние файловые системы отходят от корневого каталога.
Эти файлы могут быть распределены на различных устройствах в зависимости от вашей таблицы разделов fstab . Родительский каталог монтируется к этому дереву в / . Все остальные дочерние файловые системы отходят от корневого каталога.
Все файловые системы не монтируемые автоматически можно смонтировать вручную с помощью графического интерфейса (если он доступен) или с помощью команды mount , которая передает инструкции монтирования ядру, завершающему операцию.
Команда указывает ядру смонтировать файловую систему, найденную в устройстве [device] в каталог [dir] . Опция -t [type] необязательна и описывает лишь тип файловой системы (EXT3, EXT4, BTRFS, XFS, HPFS, VFAT и т. д.).
Если команде mount не указан целевой каталог, то монтируются файловые системы, перечисленные в файле /etc/fstab .
Пока файловая система смонтирована, предыдущее содержимое, владелец и режим каталога [dir] невидимы, а имя пути [dir] относится к корню файловой системы.
Синтаксис
Параметры
Наиболее распространённые опции команды mount :
-a Монтирование всех файловые системы, перечисленных в /etc/fstab -F Разветвление нового монтирования каждого устройства (используется в сочетании с опцией -a ) -l Список всех смонтированных файловых систем и добавление меток к каждому устройству -L [label] Монтирование раздела с указанным [label] -M Перемещение поддерева в другое место -O [opts] При использовании в сочетании с опцией -a ограничивает набор файловых систем -r Монтирование файловой системы в режиме только для чтения -R Перемонтирование поддерева в другом месте, делая его содержимое доступным в обоих местах -t [type] Указание типа файловой системы -T Использование для указания альтернативного файла /etc/fstab -v Монтирование подробно с описанием каждой операции -h Отображение файла справки со всеми параметрами команды -V Отображение информации о версии программы
Использование команды mount в Linux
Результат монтирования
Команда mount возвращает одно из следующих значений, указывающих на статус завершения процесса:
0 Успех 1 Неверный вызов команды или недостаточные разрешения 2 Системная ошибка 4 Ошибка внутреннего монтирования 8 Операция прервана пользователем 16 Проблемы с записью или блокировкой файла /etc/mtab 32 Сбой монтирования 64 По крайней мере, одна операция монтирования прошла успешно, но не все
Запуск без параметров
Запуск команды mount без каких-либо параметров позволяет отобразить все смонтированные файловые системы. В выходных данных также отображаются точки монтирования и параметры монтирования:
oleg@mobile:~:$ mount proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) dev on /dev type devtmpfs (rw,nosuid,relatime,size=921624k,nr_inodes=230406,mode=755,inode64) run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64) /dev/sda6 on / type ext4 (rw,relatime) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=34,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14043) mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime) tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime) debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M) configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime) ramfs on /run/credentials/systemd-tmpfiles-setup-dev.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700) ramfs on /run/credentials/systemd-sysctl.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=932020k,nr_inodes=1048576,inode64) /dev/sda5 on /mnt/ubuntu type ext4 (rw,relatime) /dev/sda3 on /mnt/win_d type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096) /dev/sda2 on /mnt/win_c type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096) /dev/sda8 on /home type ext4 (rw,relatime) ramfs on /run/credentials/systemd-tmpfiles-setup.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime) tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=186400k,nr_inodes=46600,mode=700,uid=1000,gid=984,inode64) gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=984) oleg@mobile:~:$
Список определённых файловых систем
Параметр -t позволяет пользователям указать, какие файловые системы отображать при выполнении команды mount . Например, чтобы показать только файловые системы ext4 , выполняется следующая команда:
oleg@mobile:~:$ mount -t ext4 /dev/sda6 on / type ext4 (rw,relatime) /dev/sda5 on /mnt/ubuntu type ext4 (rw,relatime) /dev/sda8 on /home type ext4 (rw,relatime) oleg@mobile:~:$
Монтирование файловой системы
Для монтирования файловой системы указывается каталог или точка монтирования, к которой будет присоединена файловая система. Например, чтобы смонтировать файловую систему /dev/sdc в каталог /mnt/sdc следует выполнить:
oleg@mobile:~:$ sudo mount /dev/sdc /mnt/sdc
Для указания дополнительных параметров монтирования используется флаг -o , за которым перед именем устройства следуют параметры:
mount -o [options] [device] [dir]
Монтирование файловой системы с помощью /etc/fstab
Файл конфигурации /etc/fstab содержит строки, описывающие место монтирования системных устройств и используемые ими параметры. Файл fstab используется для внутренних устройств, таких как устройства CD/DVD, также для общих сетевых ресурсов (samba /nfs/sshfs). Съёмные устройства обычно монтируются иначе.
При ручном монтировании устройства и предоставлении команде mount только одного параметра ( [dir] или [device] ) утилита считывает содержимое файла конфигурации /etc/fstab . В случае наличия в его списке указанных файловых систем команда mount использует параметры монтирования, приведённые в /etc/fstab .
Пример структуры файла /etc/fstab :
oleg@mobile:~:$ cat /etc/fstab # Static information about the filesystems. # See fstab(5) for details. # /dev/sda6 UUID=6d031569-0134-4713-9cb8-4f55968dc362 / ext4 rw,relatime 0 1 # /dev/sda8 UUID=e0b4595f-9e86-4dcc-b334-7f50a012a79b /home ext4 rw,relatime 0 2 # /dev/sda5 # UUID=92369345-9663-4edb-86c1-58578e43edb5 /mnt/ubuntu ext4 rw,relatime 0 2 /dev/sda5 /mnt/ubuntu ext4 rw,relatime 0 2 # /dev/sda2 UUID=2C2E8B882E8B49B2 /mnt/win_c ntfs defaults 0 0 # /dev/sda3 UUID=0292C00092BFF66F /mnt/win_d ntfs uid=oleg,gid=users 0 0 # /dev/sda7 UUID=2cb45ba1-0d5f-493e-bb45-77b966f5fd6e none swap defaults 0 0 /dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0 oleg@mobile:~:$
Монтирование съёмного устройства
Подавляющее большинство современных дистрибутивов Linux автоматически монтируют съёмные устройства после их вставки. Однако, если автоматическое монтирование не удалось или вы отключили автоматическое монтирование по каким-либо своим причинам, то для монтирования съёмного устройства вручную выполняется ряд действий.
Смотрим смонтированные устройства /dev/sd* :
oleg@mobile:~:$ ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 фев 6 07:55 /dev/sda brw-rw---- 1 root disk 8, 1 фев 6 07:55 /dev/sda1 brw-rw---- 1 root disk 8, 2 фев 6 07:55 /dev/sda2 brw-rw---- 1 root disk 8, 3 фев 6 07:55 /dev/sda3 brw-rw---- 1 root disk 8, 4 фев 6 07:55 /dev/sda4 brw-rw---- 1 root disk 8, 5 фев 6 07:55 /dev/sda5 brw-rw---- 1 root disk 8, 6 фев 6 07:55 /dev/sda6 brw-rw---- 1 root disk 8, 7 фев 6 07:55 /dev/sda7 brw-rw---- 1 root disk 8, 8 фев 6 07:55 /dev/sda8 oleg@mobile:~:$
Все устройства определяются как /dev/sda* .
Теперь вставляем флешку и проверяем снова:
oleg@mobile:~:$ ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 фев 6 07:55 /dev/sda brw-rw---- 1 root disk 8, 1 фев 6 07:55 /dev/sda1 brw-rw---- 1 root disk 8, 2 фев 6 07:55 /dev/sda2 brw-rw---- 1 root disk 8, 3 фев 6 07:55 /dev/sda3 brw-rw---- 1 root disk 8, 4 фев 6 07:55 /dev/sda4 brw-rw---- 1 root disk 8, 5 фев 6 07:55 /dev/sda5 brw-rw---- 1 root disk 8, 6 фев 6 07:55 /dev/sda6 brw-rw---- 1 root disk 8, 7 фев 6 07:55 /dev/sda7 brw-rw---- 1 root disk 8, 8 фев 6 07:55 /dev/sda8 brw-rw---- 1 root disk 8, 16 фев 6 11:47 /dev/sdb oleg@mobile:~:$
Мы видим появление нового устройства /dev/sdb .
Создаём для этого устройства точку монтирования, например /mnt/sdb :
oleg@mobile:~:$ sudo mkdir /mnt/sdb
Теперь монтируем устройство /dev/sdb в /mnt/sdb :
oleg@mobile:~:$ sudo mount /dev/sdb /mnt/sdb
В данном примере показано монтирование устройства USB. Внешний жёсткий диск, либо карта памяти монтируются точно так же.
Размонтирование съёмного устройства
Размонтировать подключенное устройство весьма просто. Для этого достаточно выполнить команду umount с указанием точки монтирования:
oleg@mobile:~:$ sudo umount /mnt/sdb
Принудительное размонтирование
Для принудительного размонтирования файловой системы команда umount используется с опцией -f :
oleg@mobile:~:$ sudo umount -f /mnt/sdb
Будьте осторожны при принудительном размонтировании файловой системы, так как процесс может повредить данные в ней.
Заключение
В этой статье показано использование в Linux команды mount для монтирования различных файловых систем к дереву каталогов, а также использование команды umount для размонтирования файловых систем. Здесь также приведены различные практические примеры. Знание этого весьма полезно для начинающих пользователей Linux.