Não consigo escrever em uma pasta da qual sou membro

1

Estou tentando configurar o acesso da pasta a um grupo para que todos os membros desse grupo possam criar / editar / excluir arquivos dentro da pasta.

# create my group and add a member
sudo addgroup dev
sudo adduser martyn dev

Agora, logado como "martyn", verifique se meu usuário foi adicionado ao grupo "dev"

groups martyn
martyn : martyn dev

Agora, quero alterar a propriedade do grupo da pasta do meu projeto para que todos os membros desse grupo possam editá-lo e incluir arquivos / pastas nele.

sudo chgrp -R dev myproject

Só para verificar:

martyn@localhost:/var/www$ ls -l
total 4
drwxrwxr-x 3 dev dev 4096 May 31 15:53 myproject

Agora é aqui que ele falha. Eu quero criar um arquivo dentro do meu projeto (logado como "martyn", um membro do "dev"):

vi myproject/test

.. mas quando tento salvar o arquivo, recebo o seguinte erro:

"myproject/test" E212: Can't open file for writing

Por que, como usuário "martyn" que é membro de "dev", não consigo gravar este arquivo? Mesmo se eu criar o arquivo para que ele exista, mude a propriedade para "dev" e tente editar e salvar - recebo o mesmo erro.

    
por Martyn 31.05.2014 / 10:11

2 respostas

-1

Você pode tentar alterar / definir a propriedade do diretório com o comando chown , assim:

chown -R dev:dev myproject/

e, em seguida, defina as permissões com o comando chmod :

chmod -R 0775 myproject/

A notação em 0775 define o modo de diretório como rwxrwxr-x , o que dá ao usuário dev e a todos os membros do dev group rwx acesso ao diretório e aos arquivos.

Tente isso em vez do comando chgrp . Você também pode tentar reiniciar sua máquina, apenas no caso. Boa sorte.

    
por 31.05.2014 / 10:33
0

Isso funciona para mim no Arch Linux:

$ sudo useradd martyn
$ sudo passwd martyn
$ sudo groupadd example 
$ sudo usermod --append --groups example martyn
$ sudo mkdir /var/www /var/www/myproject
$ sudo chgrp example /var/www/myproject
$ sudo chmod g+w /var/www/myproject
$ su - martyn
$ groups
example martyn
$ touch /var/www/myproject/file
$ ls -l /var/www/myproject/file
-rw-r--r-- 1 martyn martyn 0 May 31 11:13 /var/www/myproject/file

Tem certeza de que não tem o SELinux habilitado (executar getenforce )?

    
por 31.05.2014 / 12:15