Você pode aproveitar a estrutura e / ou o sistema de expressão de find
para fazer isso:
find /share/Multimedia/ -type f -exec chmod 644 {} \; -o -type d -exec chmod 755 {} \;
Essencialmente, isso tem a seguinte lógica:
IF:
the item is a plain file
AND the chmod 644 command succeeds on it
OR
the item is a directory
AND the chmod 755 command succeeds on it
THEN
... well, do nothing; normally it'd print the item's path, but since
there's a -exec in the expression, that gets skipped
Mas há uma maneira muito mais simples:
chmod -R u=rwX,go=rX /share/Multimedia/
Isso tira proveito da permissão "X" de chmod
, que significa "executar, mas somente se fizer sentido". Principalmente, isso significa que ele é executado em diretórios, mas não em arquivos simples. O principal problema em potencial é que, se ele vê uma permissão de execução em um arquivo simples, assume que é intencional e a mantém, portanto, isso não será limpo depois que alguém passar e atribuir a permissão de execução a tudo.