Você não pode editar o conteúdo do diretório público se não tiver acesso gravação .
-
Você indica que está tentando criar um novo arquivo. Se o arquivo
test
ainda não existir empublic
,touch
tentará criar um novo arquivo. Ele não pode fazer isso sem a capacidade de gravar na listagem de diretórios para adicionar a nova entrada do inode. Aparentemente, você não tem permissão para fazer isso. -
Se o arquivo
test
já existir empublic
,touch
irá, por padrão, atualizar o horário de modificação do arquivo. Somente o acesso write ao arquivo é necessário para isso, já que a data / hora da modificação é armazenada no inode do arquivo. Se o arquivo já existir, você precisará inspecionar as permissões do arquivo usando um comando comols -l public/test
para determinar se você tem acesso de gravação.
A máscara de bits de permissões no diretório, rwxrwxr-x
, significa:
- o usuário
root
, ou seja, o proprietário do diretório, possui privilégios de gravação no diretório conforme indicado pelo primeirorwx
block - membros do grupo
root
, isto é, o grupo no diretório, que não são eles mesmos o usuárioroot
, também têm privilégios de gravação no diretório conforme indicado pelo segundorwx
bloquear
Todos os outros usuários só têm direitos de leitura e execução, conforme indicado pelo último bloco r-x
.
Como obtenho permissões?
Você precisará conversar com o administrador do sistema (que pode ser você!) para realizar uma das ações a seguir:
- Torne-o proprietário do diretório
public/
usando um comando comochown user public/
. Isso será adequado se você for o único usuário que precisará ter direitos de edição. - Crie um novo grupo com um nome adequado , talvez
publiceditors
, e defina isso como o grupo no diretóriopublic/
usando um comando comochgrp publiceditors public/
. Certifique-se de que você e qualquer outro usuário que exija a capacidade de modificar o diretório sejam listados como membros do grupo. Essa abordagem funciona onde vários usuários precisam de recursos de edição. - Torne sua conta de usuário um membro do
root
group (não é algo que eu recomendaria). - Oferecer acesso a fazer login ou mascarar como
root
, comosudo
ousu
comroot
senha - Altere os direitos no diretório para conceder a todos os usuários permissões de gravação , usando um comando como
chmod o+w public
. Esteja ciente de que isso dá a todos na caixa a capacidade de editar e excluir arquivos no diretório público. Você pode não querer isso!
O que ler , escrever e executar permissões significam no contexto de um diretório?
Supondo que você esteja em uma caixa do Linux, em um diretório, um bit de permissão de leitura permite que você leia a listagem de diretórios. O bit de permissão de gravação permite atualizar o diretório listado, o que é necessário para criar um arquivo *, editar o nome de um arquivo, desvincular (excluindo) um arquivo. O bit de execução permite que você percorra o diretório, acesse seus arquivos, etc. Mais informações em Permissões do diretório Linux .
* Na verdade, você está vinculando um arquivo ao diretório. Na maioria das vezes, você fará isso no ponto de criação do arquivo, mas há exemplos mais complexos. Por exemplo, fazer um link físico para um arquivo que originalmente existia em outro lugar no sistema de arquivos exigirá acesso de gravação ao diretório de destino do link, apesar do fato de você não estar criando um novo arquivo.
Por que escrever acesso ao diretório ?
Você precisa ser capaz de gravar no diretório para adicionar uma referência ao inode relevante para o arquivo que está adicionando.