uma - mudar permissão linux chmod




Como faço para definir chmod para uma pasta e todas as suas subpastas e arquivos? (11)

Existe uma maneira de definir o chmod 755 para /opt/lampp/htdocs e todo o seu conteúdo, incluindo subpastas e arquivos?

Além disso, no futuro, se eu criar uma nova pasta ou arquivo dentro do htdocs , como as permissões podem ser automaticamente definidas para 755 ?

Isso funciona, mas apenas para esta pasta:

chmod 775 /opt/lampp/htdocs

É muito simples.

No Terminal, vá para o gerenciador de arquivos. exemplo: sudo nemo . Vá em /opt/ e clique em Propriedades → Permissão . e depois outro . Finalmente, mude para criar e apagar e acessar o arquivo para ler e escrever e clique no botão aplicar ... E trabalhar.


Aqui está outra maneira de configurar diretórios para 775 e arquivos para 664.

find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)

Pode parecer longo, mas é bem legal por três razões:

  1. Faz a varredura através do sistema de arquivos apenas uma vez, em vez de duas vezes.
  2. Fornece melhor controle sobre como os arquivos são manipulados versus como os diretórios são tratados. Isso é útil ao trabalhar com modos especiais , como o bit adesivo , que você provavelmente deseja aplicar aos diretórios, mas não aos arquivos.
  3. Usa uma técnica diretamente das man pages (veja abaixo).

Note que eu não confirmei a diferença de desempenho (se houver) entre esta solução e a de simplesmente usar dois comandos find (como na solução de Peter Mortensen). No entanto, ver um exemplo semelhante no manual é encorajador.

Exemplo da página de man find do man find :

find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)

Traverse the filesystem just once, listing setuid files and  direc‐
tories into /root/suid.txt and large files into /root/big.txt.

Felicidades


Eu acho que Adam estava perguntando como alterar o valor de umask para todos os processos que estão operando no diretório /opt/lampp/htdocs .

A máscara do modo de criação de arquivo do usuário (umask) é usada para determinar a permissão do arquivo para arquivos recém-criados. Pode ser usado para controlar a permissão de arquivo padrão para novos arquivos.

então se você vai usar algum tipo de programa de ftp para fazer upload de arquivos em /opt/lampp/htdocs você precisa configurar seu servidor ftp para usar o umask que você quiser.

Se arquivos / diretórios forem criados por exemplo por php, você precisa modificar o código php

<?php
umask(0022);
// other code
?>

Se você criar novos arquivos / pastas a partir da sua sessão bash, você pode definir o valor umask no seu perfil de shell ~ / .bashrc Ou você pode configurar umask no arquivo /etc/bashrc ou /etc/profile para todos os usuários. adicione o seguinte ao arquivo: umask 022

Sample umask Values and File Creation Permissions
If umask value set to   User permission     Group permission     Others permission
000                         all              all                   all
007                         all              all                   none
027                         all          read / execute            none

E para alterar permissões para arquivos já criados, você pode usar o find. Espero que isto ajude.


Há duas respostas para encontrar arquivos e aplicar o chmod a eles. A primeira é find o arquivo e aplicar chmod como ele encontra (como sugerido por @WombleGoneBad).

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

A segunda solução é gerar uma lista de todos os arquivos com o comando find e fornecer essa lista ao comando chmod (como sugerido por @lamgesh).

chmod 755 $(find /path/to/base/dir -type d)

Ambas as versões funcionam bem, desde que o número de arquivos retornados pelo comando find seja pequeno. A segunda solução parece ótima para os olhos e mais legível do que a primeira. Se houver um grande número de arquivos, a segunda solução retornará erro: Argument list too long.

Então minha sugestão é

  1. Use chmod -R 755 /opt/lampp/htdocs se quiser alterar as permissões de todos os arquivos e diretórios de uma só vez.
  2. Use find /opt/lampp/htdocs -type d -exec chmod 755 {} \; se o número de arquivos que você está usando for muito grande. A opção -type x procura apenas por um tipo específico de arquivo, onde d é usado para encontrar o diretório, f para o arquivo e l para o link.
  3. Use chmod 755 $(find /path/to/base/dir -type d) caso contrário
  4. Melhor usar o primeiro em qualquer situação

Para definir para todas as subpastas (recursivamente) use -R

chmod 755 /folder -R

E use umask para definir o padrão para novas pastas / arquivos cd / folder umask 755


Para o Mac OS X 10.7 (Lion), é:

chmod -R 755 /directory

E sim, como todos os outros dizem, tenha cuidado ao fazer isso.


Usar:

sudo chmod 755 -R /whatever/your/directory/is

No entanto, tenha cuidado com isso. Pode realmente te machucar se você alterar as permissões dos arquivos / pastas errados.


Verifique a opção -R

chmod -R <permissionsettings> <dirname>

No futuro, você pode economizar muito tempo verificando a página do manual primeiro:

man <command name>

Então, neste caso:

man chmod

Você pode usar -R com chmod para chmod recursiva de todos os arquivos e subpastas.

Você pode precisar do sudo, pois depende de o LAMP estar instalado pelo usuário atual ou outro:

sudo chmod 755 -R /opt/lampp/htdocs

Você quer ter certeza de que os arquivos e diretórios apropriados são chmod-ed / permissões para aqueles que são apropriados. Para todos os diretórios que você deseja

find /opt/lampp/htdocs -type d -exec chmod 711 {} \;

E para todas as imagens, JavaScript, CSS, HTML ... bem, você não deve executá-las. Então use

chmod 644 img/* js/* html/*

Mas, para todo o código lógico (por exemplo, código PHP), você deve definir permissões de modo que o usuário não possa ver esse código:

chmod 600 file

chmod 755 -R /opt/lampp/htdocs definirá recursivamente as permissões. Não há como definir as permissões para arquivos automaticamente apenas neste diretório que é criado depois de definir as permissões, mas você pode alterar as permissões de arquivo padrão do sistema com a configuração de umask 022 .





chmod