Estou executando um servidor web e servidor FTP, no qual /var/www
está vinculado /home/user/www
.
Defino os dois diretórios como chmod 777
(o que é bom, pois é apenas para teste).
Posso fazer upload de arquivos /home/user/www
, mas sempre que crio um novo diretório, sempre tenho que executar chmod 777
nessa pasta.
Caso contrário, quando tento procurar, recebo a mensagem de erro
Você não tem permissão para acessar / testar / neste servidor.
Existe uma maneira de tornar todas as subpastas dentro /var/www
acessíveis por qualquer pessoa? Ou suas permissões podem ser definidas automaticamente 777
? É irritante que eu tenha que digitar chmod 777
toda vez.
permissions
apache2
chmod
user1645034
fonte
fonte
Respostas:
Essa é uma prática ruim, mas espero que você esteja usando isso apenas para desenvolvimento ou tenha outro bom motivo. Você pode especificar as permissões ao criar um diretório usando a
-m
opção:Ou você pode definir as permissões recursivamente.
Antes de usar qualquer um desses, considere realmente se você deseja que seu sistema de arquivos seja tão acessível.
Edit: Como mencionado por Rinzwind aqui é uma maneira melhor de realizar o que você deseja.
Verifique qual grupo possui o seu
/var/www
diretório e adicione seu usuário a esse grupo.O grupo é provavelmente
www-data
.Você ficará bem ao definir suas permissões para 775.
fonte
Arquivos e diretórios no Unix podem ter três tipos de permissões: read (
r
), write (w
) e execute (x
). Cada permissão pode seron
ouoff
para cada uma das três categorias de usuários: o proprietário do arquivo ou diretório; outras pessoas no mesmo grupo que o proprietário; e todos os outros. Para alterar o modo de um arquivo, use o comando chmod. A forma geral é chmod X @ Y arquivo1 arquivo2 ...fonte
para o ftp que cria todos os arquivos com permissões diferentes, você pode procurar pelo umask do ftpd, como esse daemon é iniciado
Dê uma olhada neste site https://linuxaria.com/article/linux-shell-understanding-umask-with-examples
fonte
Anúncio de serviço público:
Nunca use o chmod 777 para corrigir problemas
É um grande risco de segurança se você executar qualquer serviço disponível ao público, especialmente aplicativos da Web (por exemplo, PHP).
O modelo de segurança do sistema operacional pressupõe que muitos serviços (como o servidor da web) sejam executados com privilégios reduzidos, para impedir que eles possam modificar arquivos. Definir 777 em arquivos quebra esse design.
Um usuário remoto pode gravar ou fazer upload de arquivos e, em seguida, induzir o servidor (ou algum outro processo em seu sistema) a lê-los ou executá-los. Scripts ou software podem ter falhas que permitem isso. É muito difícil bloquear de todas as formas possíveis isso se houver diretórios graváveis em todo o mundo.
Usado em determinados diretórios do sistema (/ usr, / etc, / var, etc.), ele pode danificar seu sistema de maneiras surpreendentes.
Alguns arquivos essenciais do sistema precisam de permissões especiais, como permissões setuid / setgid, para serem executados. Por exemplo, sudo. Evite alterar as permissões de arquivo nos diretórios e arquivos configurados pelo próprio sistema.
Não há como desfazer e recuperar todas as permissões antigas.
Ou seja, se você tinha arquivos e pastas com várias permissões diferentes antes, não há como voltar a essas permissões específicas - apenas alterá-las para a mesma coisa, o que pode perder as configurações de permissão específicas necessárias em arquivos específicos.
Sempre há uma maneira mais apropriada de alcançar o que você deseja alcançar.
Nesse caso, parece que você deseja apenas que seu servidor da Web possa ler um diretório. Dar permissão de escrita no mundo é muito mais do que você precisa.
Encontre o motivo pelo qual o servidor da Web não pode ler esse diretório (dica: provavelmente é porque o diretório inicial não é legível pelo mundo. O legível pelo mundo é muito mais seguro do que o gravável no mundo - defina seu diretório inicial para algo como 755 ou mova esse diretório www fora de sua casa para algum lugar como / var / www ou / srv).
fonte
Isso não funciona para mim.
Eu tenho que usar
-f
também.fonte
Se você deseja copiar permissões e / ou propriedade de outro arquivo com o qual esteja satisfeito, use-o sudo chmod --reference = caminho / para / arquivo / para / caminho de referência / para / arquivo / você / deseja / para / alterar / permissino / para
E você também pode fazer o mesmo pela propriedade dos arquivos.
fonte