Não é possível definir permissões para novos arquivos adicionados ao diretório

2

Estou tentando adicionar permissões para minha pasta nginx html usando o seguinte:

sudo chown -R my-user:www-data /webdirectory
sudo chmod -R 0755 /webdirectory

Funciona para arquivos existentes no diretório, no entanto, quaisquer arquivos adicionados precisam executar essas linhas novamente.

Alguma solução?

    
por Adam 08.04.2015 / 11:28

2 respostas

3

Você está procurando por umask . umask é um shell que decidirá qual será a permissão padrão de um arquivo recém-criado. O valor de umask pode variar de usuário para usuário.

Para verificar o valor umask do usuário atual, execute umask no terminal:

$ umask 
0002

O primeiro 0 indica a ausência de SUID / SGID / Sticky bit , é o primeiro valor de bit padrão então, se não precisarmos definir nenhum desses três bits, geralmente não usamos esse bit.

O valor umask é realmente deduzido de 777 (no caso de um diretório) e de 666 (No caso de um arquivo) para obter a permissão de um arquivo / diretório recém-criado. Portanto, se o umask for 0002 , o arquivo recém-criado por esse usuário terá permissão de (666 - 002)=664 e um diretório terá (777 - 002)=775 .

Para alterar permanentemente o valor de umask somente para o usuário atual, coloque o valor umask no final de ~/.bashrc do usuário. Por exemplo:

echo "umask 022" >> ~/.bashrc

Para mudar temporariamente, execute:

$ umask 022

O valor global umask pode ser encontrado e alterado de /etc/login.defs :

$ grep "^UMASK" /etc/login.defs 
UMASK       022

**** Note que você não deve usar chmod / chown aleatoriamente, a menos que tenha absoluta certeza sobre o resultado.

    
por heemayl 08.04.2015 / 12:06
1

umask está correta, mas só cobre a parte chmod da sua pergunta, há uma maneira mais elegante de fazer isso.

Para ter certeza de que você não precisa chown ou chmod novamente, coloque seu usuário no grupo www-data do servidor web apache, assim:

useradd -G my-user www-data

Com este add você pode entrar nesta pasta e o nome de usuário e grupo serão exatamente o que você pediu. Também com isso, você nem precisa chmod novamente, porque o servidor pode lê-lo e, assim, o conteúdo pode ser entregue sem quaisquer restrições.

    
por s1mmel 08.04.2015 / 14:49