erros de permissão usando o gcsfuse como usuário não raiz no google compute instance

6

No momento, estamos tentando demonstrar a plataforma de nuvem do Google para algumas cargas de trabalho que exigem muito armazenamento. Estamos tentando usar o armazenamento em nuvem do Google, mas estamos tendo problemas para montar os blocos usando o gcsfuse. Atualmente, posso montar meu bloco de teste como o usuário raiz (com a opção allow_other configurada), mas os usuários não raiz só têm acesso de leitura.

Coisas que tentei e verifiquei:

  • definindo o ponto de montagem como 777. As permissões permanentes são sobrescritas quando o bucket é montado.
  • o usuário mostrado em gcloud config list | grep account recebeu acesso de proprietário para este intervalo
  • a VM que estou testando tem acesso total à API a todos os serviços do Google Cloud

Aqui está a saída do console - Catting e tocando em animal.txt para atualizar o registro de data e hora.

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 = [email protected]
disable_usage_reporting = True
project = testing1-1148
[root@vm-00 cloud]#

e agora como um usuário não raiz, consigo ver o conteúdo de animal.txt, mas não consigo tocar no arquivo ou criar um novo arquivo nesse diretório. :

[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 = [email protected]
disable_usage_reporting = True
project = testing1-1148

O gcs é o caminho certo para fazer isso ou há uma solução melhor para montar um repositório de armazenamento do Google Cloud disponível em todo o sistema? Eu sei que os médicos dizem para não montar o balde como root, mas eu não vi nada que explicasse porque é ruim. Eu tentei montar como um usuário nonroot, mas eu tenho um problema de permissão, mesmo depois que o usuário foi adicionado ao grupo de fusíveis. Eu não tenho certeza se isso está relacionado ao meu problema, mas eu adoraria mergulhar nisso uma vez que eu comecei a trabalhar.

    
por echdee 21.01.2016 / 01:53

2 respostas

7

644 e 755 são as permissões padrão para todos os inodes de arquivo e diretório em um sistema de arquivos gsfuse. Você pode usar os sinalizadores --file-mode e --dir-mode para controlá-los. Consulte aqui para documentação.

    
por 21.01.2016 / 11:10
2

Para criar a entrada fstab usando o exemplo de echdee, especifique os atributos gsfuse dir-mode e file-mode com underscores:

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

link

    
por 05.02.2017 / 17:34