Установка файловой системы со специальным идентификатором пользователя

16

Я хочу установить устройство /dev/sda3 в каталог /foo/bar/baz . После установки каталог должен иметь uid пользователя johndoe . Итак, я сделал:

sudo -u johndoe mkdir /foo/bar/baz
stat -c %U /foo/bar/baz
johndoe

и добавил следующую строку в мой /etc/fstab :

/dev/sda3 /foo/bar/baz ext4 noexec,noatime,auto,owner,nodev,nosuid,user 0 1

Когда я делаю сейчас sudo -u johndoe mount /dev/sda3 , команда stat -c %U /foo/bar/baz приводит к root , а не к johndoe . Каков наилучший способ монтировать эту ext4-файловую систему с помощью uid johndoe set?

    
задан qbi 08.04.2011 в 07:33
источник

3 ответа

17

Невозможно принудительно привести владельца на диск с файловой системой ext4. Только файловые системы, которые не поддерживают разрешения Linux, такие как жир, имеют атрибут для владения / группировки: uid=value и gid=value . См. справочную страницу на mount .

Вы должны изменить владельца на смонтированную файловую систему, как в:

sudo chown johndoe /foo/bar/baz

Если вам нужно рекурсивно изменить разрешения:

sudo chown -R johndoe /foo/bar/baz

... и если группу нужно также изменить на johndoe :

sudo chown -R johndoe: /foo/bar/baz
    
ответ дан Lekensteyn 08.04.2011 в 07:49
источник
14

bindfs - ответ. Это займет уже смонтированную файловую систему и отобразит ее в зависимости от того, какой вы хотите:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
    
ответ дан Catskul 04.10.2013 в 19:08
6

Предполагая, что групповой набор для файлов имеет соответствующие разрешения, вы должны просто узнать его идентификатор группы (GID) и добавить себя к нему.

Чтобы узнать идентификатор группы файла, используйте ls -n . Пример вывода:

drwxr-xr-x 1 1000 1000  550 Jul  9 11:08 Desktop/

Вы хотите четвертое поле для GID, которое в моем случае является вторым 1000 .

sudo addgroup --gid GID foobar; sudo usermod 'whoami' -aG foobar

Как только вы запустите, у вас должна быть полная навигация, где бы атрибуты файла для группы не разрешали.

Как указано в другом ответе, касающемся прав пользователя, если вам нужно исправить группу в некоторых файлах, запустите one из них:

sudo chown -R :foobar ./
sudo chgrp -R  foobar ./
    
ответ дан Chinoto 09.07.2012 в 19:43