Qual é a permissão adequada para um diretório ao criar um arquivo nele?

0

Eu, como usuário normal (não root), estou tentando criar um arquivo em um diretório como abaixo:

touch a/b/c/d/test.log

No entanto, recebo um erro: permissão negada.

Eu sei que devo chmod para o diretório, mas não sei o que é uma permissão adequada porque não quero torná-lo 777.
Além disso, devo chmod para cada diretório como este:

sudo chmod ??? a
cd a
sudo chmod ??? b
cd b
sudo chmod ??? c
...

Ou eu deveria simplesmente fazer:

sudo chmod ??? a/b/c/d

Se eu precisar ler e escrever test.log após a criação, o que devo usar para substituir ??? acima?

    
por Yves 11.01.2018 / 15:10

2 respostas

2

Você precisa de um mínimo de permissões de 'execução' nos diretórios a/ , a/b/ e a/b/c/ , com permissão 'gravar' no diretório a/b/c/d/ . A permissão de execução permite que você percorra o diretório para chegar ao próximo, você não precisa de permissões de gravação reais nos diretórios intermediários. Você pode usar a opção recursiva para chmod para conceder permissões de execução:

sudo chmod -R +x a

Tenha em mente que este comando afetará todos os arquivos e todos os diretórios dentro de a/ , não apenas os diretórios que você mencionou.

    
por 11.01.2018 / 15:14
1

exemplo, suponha que o usuário p1 queira criar um arquivo em / a / b / c / d /

Somente o proprietário e o grupo têm permissão de leitura, gravação e execução, mas o usuário p1 não está na lista e no proprietário do grupo.

Nesse momento, você tem duas opções para alterar outras permissões, como abaixo

chmod o + rwx / path_whereyou_want_to_create_file / significa que todos os usuários terão permissão rwx para que possam criar um arquivo.

Mas para um lado mais seguro Você pode obter permissão como abaixo para dar permissão de leitura, gravação e execução somente a usuários e caminhos específicos

setfacl -m u: p1: rwx / path_whereyou_want_to_create_file /

    
por 11.01.2018 / 19:47