Mount device with specific user rights
How can I mount a device with specific user rights on start up? I still have some problems figuring it out. I would like to mount the divide with uid=1000 and gid=1000 . My current entry to the /etc/fstab/ file looks like this:
dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000
@skub: The owner of /var/www/ is root. dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000 gui=1000 didin’t work so well (Ubuntu removed the entry after a failed restart).
@skub: It’s a VirtualBox shared folder, so /dev is is right. I figured it out by now, sudo mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/www works just fine.
I’ve been messing around with this problem in vbox for a while now too. From what I’ve gathered, the correct solution (to the question you aren’t asking) is to add your user into the vboxsf group, and then it doesn’t matter who the owner of the files are — you will have permission to edit them. alcobrov.blogspot.com/2012/06/…
1 Answer 1
To mount a device with certain rights, you can use the -o Option directive while mounting the device. To mount the device you described, run:
mount -t deviceFileFormat -o umask=filePermissions,gid=ownerGroupID,uid=ownerID /device /mountpoint
For example mounting a VirtualBox shared folder to /var/www with www-data as owner would look like this:
mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/www
If you want to mount the device on startup, you can add the following entry to your /etc/fstab file:
/device /mountpoint deviceFileFormat umask=filePermissions,gid=ownerGroupID,uid=ownerUserID
Again, with the same example the entry to the /etc/fstab file would look like this:
dev /var/www vboxsf umask=0022,gid=33,uid=33
For filesystems that does not support mounting as a specific user (like ext4) the above will give the error
Unrecognized mount option "uid=33" or missing value
to change the owner of an ext4 mount simply run
chown username /mountpoint
after it has been mounted.
Как настроить автоматическое монтирование дисков в Linux
Обновлено: 09.02.2022 Опубликовано: 16.08.2016
Монтирование по имени диска
- /dev/sda1 — диск, который мы монтируем
- /db — каталог, в который монтируем диск
- xfs — файловая система
- defaults — стандартные опции. Полный их перечень можно посмотреть на Википеции.
- 0 0 — первый отключает создание резервных копий при помощи утилиты dump, второй отключает проверку диска.
Теперь создаем каталог, в который монтируем диск (в данном примере, /db):
И монтируем вручную диск, чтобы проверить правильность настроек fstab:
Должен появиться новый диск. Это можно проверить следующей командой
Монтирование по идентификатору
Данный способ не сильно отличается от монтирования по имени диска — вместо имени мы указываем идентификатор. Такой подход считается более надежным, так как при переподключении дисков к другим портам материнской платы может поменяться приоритет и, как следствие, имя устройства — это может привести к проблемам монтирования. UUID диска не меняется и поэтому, данная проблема при таком монтировании не страшна.
И так, смотрим идентификатор диска командой:
Мы получим ответ на подобие:
/dev/sdb: UUID=»3e53fc7e-a417-4fa5-b034-b227bea2474c» BLOCK_SIZE=»4096″ TYPE=»ext4″
/dev/sda1: UUID=»358f032e-3efb-42ab-b3ba-05ddc82fedfd» BLOCK_SIZE=»512″ TYPE=»xfs» PARTUUID=»0beca126-01″
* допустим, диск который мы хотим примонтировать — sda1. Его идентификатор 358f032e-3efb-42ab-b3ba-05ddc82fedfd.
Открываем на редактирование следующий файл:
и добавляем в него следующую строчку:
UUID=358f032e-3efb-42ab-b3ba-05ddc82fedfd /db xfs defaults 0 0
Монтирование можно проверить командой:
Пример монтирования сетевого диска
//192.168.0.1/network /mnt cifs user,rw,noauto,credentials=/root/.smbclient 0 0
* в данном примере выполняется монтировние общей папки network на сервере с IP-адресом 192.168.0.1 в каталог /mnt. В качестве сетевой файловой системы используется cifs (протокол SMB: сервер samba или общая папка Windows). Параметры для подключения — user: позволяет выполнить монтирование любому пользователю, rw: с правом на чтение и запись, noauto: не монтировать автоматически при старте системы, credentials: файл, в котором написаны логин и пароль для подключения к общей папке.
Теперь создадим файл аутентификации (credentials):
и приведем его к следующему виду:
* username: имя пользоватля, password: пароль. Само собой, в вашем случае указываются свои данные.
Теперь вводим следующую команду:
Должна примонтироваться сетевая папка //192.168.0.1/network. Это можно проверить следующей командой: