Estou tentando alterar as permissões de temp_dir para 777. Por que esses comandos não estão conseguindo isso? A propósito, estou usando Linux.
kylefoley@kfoley76:/mnt/disks$ chmod 777 /mnt/disks/temp_dir
kylefoley@kfoley76:/mnt/disks$ stat -c "%a %n" temp_dir
755 temp_dir
Eu também tentei a opção detalhada
kylefoley@kfoley76:/mnt/disks$ chmod -v 777 /mnt/disks/temp_dir
mode of '/mnt/disks/temp_dir' changed from 0755 (rwxr-xr-x) to 0777 (rwxrwxrwx)
kylefoley@kfoley76:/mnt/disks$ stat -c "%a %n" temp_dir
755 temp_dir
Eu também não entendo porque não posso usarsudo
kylefoley@kfoley76:/mnt/disks/temp_dir$ sudo chmod 777 fix_mistakes
chmod: cannot access 'fix_mistakes': Permission denied
Mesmo quando eu faço login como usuário root
kylefoley@kfoley76:/mnt/disks/temp_dir$ sudo -i
root@kfoley76:~# sudo chmod 777 /mnt/disks/temp_dir
chmod: cannot access '/mnt/disks/temp_dir': Permission denied
Devo acrescentar também que esse bug deve ter algo a ver com o fato de o diretório em questão ser um disco montado no gcsfuse, disponível no gcloud. Outras tentativas de alterar as permissões funcionaram bem:
kylefoley@kfoley76:~$ mkdir hey
kylefoley@kfoley76:~$ stat -c "%a %n" hey
755 hey
kylefoley@kfoley76:~$ chmod 777 hey
kylefoley@kfoley76:~$ stat -c "%a %n" hey
777 hey
Responder1
gcsfuse define permissões de arquivo e diretório durante a montagem. Especificamente, as opções são:
file_mode
– Bits de permissão para arquivos, em octaldir_mode
– Bits de permissão para diretórios, em octal
Se você não especificar as opções, os padrões serão dir_mode=0755,file_mode=0644
.
Estas opções se aplicam a todos os arquivos e diretórios na montagem. Este sistema de arquivos FUSE não tem a capacidade de alterar permissões para arquivos ou diretórios específicos, e é por isso que chmod
não faz nada.
Além disso, o gcsfuse possui restrições de acesso adicionais que limitam o acesso ao usuário que montou o sistema de arquivos. Detalhes:
Como medida de segurança, o próprio fuse restringe o acesso ao sistema de arquivos ao usuário que montou o sistema de arquivos (cf.fusível.txt). Por esse motivo, o gcsfuse, por padrão, mostra todos os arquivos como propriedade do usuário invocador. Portanto, você deve invocar gcsfuse como o usuário que usará o sistema de arquivos, não como root.
Se você sabe o que está fazendo, pode substituir esses comportamentos pelo
allow_other
opção de montagem suportada pelo fusível e com os sinalizadores--uid
e--gid
suportados pelo gcsfuse. Tenha cuidado, isso pode ter implicações de segurança!
É por isso que você não consegue acessar a montagem de outro usuário. Para permitir que outros usuários acessem a montagem, especifique allow_other
em suas opções de montagem.
Responder2
Consegui resolver o problema da seguinte maneira: tive que ir ao Cloud API Access Scopes e verificar na configuração da VM se ela possui leitura e gravação ou acesso total para armazenamento. Isso envolveu pressionar editar no console gcloud que lista minhas instâncias. No final da página havia a limitação de armazenamento que alterei para ‘cheio’. Isso resolveu.