Я хочу смонтировать устройство /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
?
Невозможно принудительно установить владельца на диск с файловой системой ext4. Только файловые системы, которые не поддерживают разрешения Linux, такие как fat, имеют атрибут владения / группового доступа: uid=value
и gid=value
. См. Справочную страницу по креплению .
Вы должны изменить владельца в смонтированной файловой системе следующим образом:
sudo chown johndoe /foo/bar/baz
Если вам нужно рекурсивно изменить разрешения:
sudo chown -R johndoe /foo/bar/baz
... и если группе нужны также следует изменить на johndoe
:
sudo chown -R johndoe: /foo/bar/baz
bindfs
является ответом. Он возьмет уже смонтированную файловую систему и предоставит ее для просмотра в зависимости от того, что вам нужно:
sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
Предполагая, что группа, установленная для файлов, имеет соответствующие разрешения, вы должны просто узнать ее идентификатор группы (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
После того, как вы запустите это, вы должны иметь полную настройку там, где это позволяют атрибуты файла для группы.
Как отмечалось в другом ответе, касающемся прав доступа пользователя, если вам нужно исправить группу для некоторых файлов, запустите один из них:
sudo chown -R :foobar ./
sudo chgrp -R foobar ./