Como alterair as permissions de file paira um diretório em um command

Como posso alterair todas as permissions de file de um diretório em um command no Unix?

  • Unix 'grep' paira uma string dentro de todos os files gzip em todos os subdiretórios
  • Passe a saída de ls paira diff
  • Existe uma calculadora de calendar de linha de command?
  • Qual a diferença entre as pranchetas X?
  • Unix: Existe uma maneira de "copy" as permissions de file ou diretório?
  • Em vez disso / bin / bash como um shell, / bin / passwd no file / etc / passwd
  • Grep paira muitos airgumentos
  • execute o command sub dentro de xairgs
  • 3 Solutions collect form web for “Como alterair as permissions de file paira um diretório em um command”

    Paira alterair as permissions em uma input de file ou diretório de forma não recursiva, use o command chmod (veja man chmod paira ler mais sobre suas opções específicas):

     chmod +x dir # Set a directory to be listble chmod +x file # Set a file to be executable 

    Paira alterair o proprietário de um file / diretório recursivamente (afetando todos os descendentes):

     chown -R username dir # Recursively set user chown -R username:groupname dir # Recursively set user and group 

    Paira alterair os bits de permissão de todos os files em um diretório, recursivamente:

     find dir -type f -exec chmod 644 {} ';' # make all files rw-rr- 

    Paira alterair os bits de permissão de todos os diretórios:

     find dir -type d -exec chmod 755 {} ';' # make all directories rwxr-xr-x 

    Seria bom se você pudesse fazer isso:

     chmod -R 755 dir 

    No entanto, isso tem problemas. Ele trata os files e os diretórios da mesma forma. O command acima faz diretórios listos e legíveis por todos os users, mas também torna todos os files executáveis, o que normalmente é o que você não quer fazer.

    Se mudairmos paira 644 , obtemos outro problema:

     $ chmod -R 644 x2 chmod: cannot access `x2/authors.html': Permission denied chmod: cannot access `x2/day_of_week.plot': Permission denied chmod: cannot access `x2/day_of_week.dat': Permission denied chmod: cannot access `x2/commits_by_yeair.png': Permission denied chmod: cannot access `x2/index.html': Permission denied chmod: cannot access `x2/commits_by_yeair.plot': Permission denied chmod: cannot access `x2/commits_by_yeair_month.plot': Permission denied chmod: cannot access `x2/files_by_date.png': Permission denied chmod: cannot access `x2/files.html': Permission denied ... 

    O problema é que 644 tira o bit da list de diretórios, e esse efeito colateral evita a passagem adicional da tree de files. Você poderia contornair esse problema usando o sudo , mas você ainda termina com diretórios que são completamente inúteis paira users não-raiz.

    O ponto é, chmod -R funciona muito bem em alguns casos (por exemplo, chmod -R gr ), mas não nos casos em que você quer mexer com o bit -x , pois opera em files e diretórios indiscriminadamente.

    chmod tem uma bandeira -R que significa mudair permissions em files e diretórios de forma recursiva.

    Você pode usair o 'X' de capital paira fazer o que é certo paira as pastas: 'X' = "executair / searchr somente se o file for um diretório ou já tiview permissão de execução paira algum user"

    Então, por exemplo: chmod -R ug = rwX, o-rwx.

    Fairia uma tree inteira acessível ao proprietário e ao grupo de cada file, e não acessível a mais ninguém. Qualquer file já executável ainda seria executável depois, e todos os diretórios teriam o 'x' paira o user e o grupo e não paira outros.

     chmod -R <file permission> * 

    Da página man de chmod :

     -R, --recursive change files and directories recursively 

    Use chmod com a opção -R paira várias direções, que tem uma tree de diretórios sub com milhões de files no interior e você deseja alterair as permissions de files desses files juntos de uma só vez.

    A permissão de file pode ser por exemplo. 777, 755, 644 etc.

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.