it-swarm-pt.tech

Como posso dar acesso de gravação de uma pasta para todos os usuários no linux?

Eu instalei o Apache2 no Ubuntu agora e observei que a pasta/var/www está protegida. Eu posso apenas Sudo tudo, mas eu prefiro apenas dar-lhe acesso de escrita.

Como posso fazer isso?

Eu tentei Sudo chmod 7777 /var/www mas não funcionou.

184
Carson Myers

Para compartilhar melhor com vários usuários que devem poder escrever em /var/www, ele deve receber um grupo comum. Por exemplo, o grupo padrão para conteúdo da web no Ubuntu e Debian é www-data. Certifique-se de que todos os usuários que precisam de acesso de gravação a /var/www estejam nesse grupo.

Sudo usermod -a -G www-data <some_user>

Em seguida, defina as permissões corretas em/var/www.

Sudo chgrp -R www-data /var/www
Sudo chmod -R g+w /var/www

Além disso, você deve tornar o diretório e todos os diretórios abaixo dele "set GID", para que todos os new files e diretórios criados sob /var/www sejam de propriedade do grupo www-data.

Sudo find /var/www -type d -exec chmod 2775 {} \;    

Encontre todos os arquivos em /var/www e adicione permissão de leitura e gravação para proprietário e grupo:

Sudo find /var/www -type f -exec chmod ug+rw {} \;

Você pode ter que fazer logout e efetuar login novamente para poder fazer alterações se estiver editando a permissão para sua própria conta.

313
jtimberman

Existe uma maneira mais simples de fazer isso, tente fazer esse comando.

Sudo chmod -R 757 /var/www

Essencialmente, o comando chmod altera as permissões e o switch -R afeta todos os usuários. Então é simplesmente dando as permissões corretas para usar.

32
Krishna Modi

Leitura + gravação:

Sudo chmod -R a+rw /var/www

Ler + Escrever + Executar:

Sudo chmod -R a+rwx /var/www
27
paivaric

Você também pode replicar o que o jtimberman sugeriu usando listas de controle de acesso . O setfacl command aceita -s para substituir uma ACL ou -m existente para modificá-lo; -R para tornar o diretório ACLs recursivo; e -d para tornar as configurações especificadas como padrão, o que é útil se você está antecipando contas de usuário futuras.

Estes apenas definir as permissões como você faria para o usuário, grupo, outro e mascarar usando chmod:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

E isso pode ser como você faria isso para um usuário específico ou seu grupo:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

E, claro, a força é que você pode designar qualquer usuário específico, vários usuários, etc., tudo sem ter que modificar suas configurações de grupo. E ao contrário do chmod, se você quer que alguns groupies tenham acesso a um diretório e outros groupies para ter acesso apenas a outro, é realmente possível com o setfacl. Finalmente, para ver as ACLs de um diretório, execute getfacl :

getfacl DIRECTORY

E você pode especificar -R para ver as ACLs dos subdiretórios ou -d para ver os padrões.

7
Nikhil Chelliah

A resposta rápida e fácil -

uma. Adicione ( -a ) seu usuário ( user_name ) ao grupo ( -G ) www-data .

Sudo usermod -a -G www-data user_name

b. Dê ao Group ( g ) as mesmas permissões ( = ) que o usuário proprietário ( u ) de/var/www Recursively ( -R ).

Sudo chmod -R g=u /var/www

Explicação: O Apache 2 no Debian/Ubuntu define o usuário e o grupo www-data como o proprietário de/var/www . As permissões padrão para o usuário são "Visualizar e modificar conteúdo", mas o grupo só pode "Exibir conteúdo". Portanto, adicionar-se ao Grupo www-data e conceder as mesmas permissões que o Usuário wwww-data é uma maneira rápida e fácil de desenvolver. Eu faço isso para todos os meus ambientes de desenvolvimento Web localhost (PC/Laptop).

2
user1138

Eu uso typicall

chmod g+w /folder/ -R

É quase auto-explicativo.

Ele adiciona todos no group de /folder/ para ter acesso write (+w), -R é para recursão de subpastas.

1
Arda