Назад | Перейти на главную страницу

ошибки разрешений с использованием gcsfuse в качестве пользователя без полномочий root в экземпляре вычислений Google

В настоящее время мы пытаемся продемонстрировать облачную платформу Google для некоторых рабочих нагрузок, требующих большого объема хранилища. Мы пытаемся использовать облачное хранилище Google, но не можем установить корзины с помощью gcsfuse. В настоящее время я могу смонтировать свою тестовую корзину в качестве пользователя root (с установленной опцией allow_other), но пользователи без root имеют доступ только для чтения.

Вещи, которые я пробовал и проверял:

Вот вывод консоли - Catting and touching animal.txt для обновления метки времени.

root@vm-00 cloud]# grep bucket /etc/fstab
test_bucket_00 /data/cloud/tb-00 gcsfuse  rw,allow_other
[root@vm-00 cloud]# mount tb-00
Calling gcsfuse with arguments: -o rw -o allow_other test_bucket_00 /data/cloud/tb-00
Using mount point: /data/cloud/tb-00
Opening GCS connection...
Opening bucket...
Mounting file system...
File system has been successfully mounted.
[root@vm-00 cloud]# mount | grep bucket
test_bucket_00 on /data/cloud/tb-00 type fuse (rw,nosuid,nodev,allow_other,default_permissions)
[root@vm-00 cloud]# ls -lh /data/cloud/tb-00/animal.txt ; date ; touch/data/cloud/tb-00/animal.txt ; ls -lh /data/cloud/tb-00/animal.txt 
-rw-r--r--. 1 root root 20 Jan 21 00:24 /data/cloud/tb-00/animal.txt
Thu Jan 21 00:25:37 UTC 2016
-rw-r--r--. 1 root root 20 Jan 21 00:25 /data/cloud/tb-00/animal.txt
[root@vm-00 cloud]# cat /data/cloud/tb-00/animal.txt
ants bats cats dogs
[root@vm-00 cloud]# ls -lh /data/cloud
total 4.0K
drwxr-xr-x. 1 root root    0 Jan 21 00:25 tb-00
[root@vm-00 cloud]# chmod 777 /data/cloud/tb-00
[root@vm-00 cloud]# ls -lh /data/cloud
total 4.0K
drwxr-xr-x. 1 root root    0 Jan 21 00:25 tb-00
[root@vm-00 cloud]# gcloud config list
Your active configuration is: [NONE]
[core]
account = REDACTED1234-compute@developer.gserviceaccount.com
disable_usage_reporting = True
project = testing1-1148
[root@vm-00 cloud]#

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

[testuser@vm-00 ~]$ cat /data/cloud/tb-00/animal.txt
ants bats cats dogs
[testuser@vm-00 ~]$ touch /data/cloud/tb-00/mineral.txt
touch: cannot touch `/data/cloud/tb-00/mineral.txt': Permission denied
[testuser@vm-00 ~]$ gcloud config list
Your active configuration is: [NONE]
[core]
account = REDACTED1234-compute@developer.gserviceaccount.com
disable_usage_reporting = True
project = testing1-1148

Является ли gcsfuse правильным способом решения этой проблемы или есть лучшее решение для установки корзины облачного хранилища Google, доступной на общесистемном уровне? Я знаю, что в документации сказано не монтировать ведро как root, но я не видел ничего, что объясняло бы, почему это плохо. Я попытался подключиться как пользователь без полномочий root, но у меня возникла проблема с разрешением, даже после того, как пользователь был добавлен в группу fuse. Я не уверен, связано ли это с моей проблемой, но я хотел бы покопаться в этом, как только у меня это заработает.

644 и 755 являются разрешениями по умолчанию для всех индексных дескрипторов файлов и каталогов в файловой системе gcsfuse. Вы можете использовать --file-mode и --dir-mode флаги для управления ими. Видеть Вот для документации.

Чтобы создать запись fstab на примере echdee, укажите атрибуты gcsfuse dir-mode и file-mode с подчеркиванием:

test_bucket_00 /data/cloud/tb-00 gcsfuse rw,allow_other,file_mode=777,dir_mode=777

https://github.com/GoogleCloudPlatform/gcsfuse/blob/master/docs/mounting.md