Eu tenho tentado limpar as permissões em algumas caixas e vasculhado o homem chmod, bem como toda a documentação da Internet que eu manuseio sem sorte - então aqui vamos nós.
Basicamente, tenho um diretório com muitos subdiretórios e arquivos - e gostaria de definir as seguintes permissões:
Para diretórios: 770 (u + rwx, g + rwx, o-rwx)
Para arquivos: 660 (U + rw, g + rw, machado, o-rw)
Eu gostaria de tentar fazer isso com um único chmod recursivo, se possível - para evitar a recorrência em cada diretório e definir permissões arquivo a arquivo.
Eu imagino que deve haver uma maneira de fazer isso sem escrever um script de shell próprio - mas não consegui encontrar nada.
Eu aprecio sua ajuda!
fonte
Não há necessidade de scripts.
// Diretórios:
// Arquivos:
fonte
No seu caso, pode não ter que ser tão complicado quanto os outros pareceram ser (embora
find
seja realmente uma boa ferramenta para esse tipo de coisa em geral). A diferença entre os modos é o bit de execução. Se não houver arquivos com o bit de execução definido, você poderá fazê-lo em uma única chamada dechmod
, exatamente como solicitado.A chave aqui é a capital
X
, que a página de manual explica comoPortanto, se seus arquivos ainda não tiverem o bit de execução definido, ele será definido apenas para diretórios.
fonte
Eu descobri que, pelo menos no meu caso de uso, usar
rsync
para copiar o diretório em si mesmo era muito mais rápido do que usarchmod
diretamente com uma lista de arquivos defind
.Se você deseja adicionar um
chown
à mesma operação,rsync
faça isso também com a--chown=user:group
opçãofonte
Limpo e simples:
fonte
find ... -exec chmod ... {} \;