Chmod para permitir permissões de leitura e gravação para o diretório

62

Eu criei diretórios na raiz. Estou procurando o chmodcomando para permitir que todos os usuários leiam e gravem permissões em um diretório específico. Eu fiz chmod 775para um arquivo, mas eu preciso disso para um diretório. Isso inclui permissões em todos os arquivos e subdiretórios.

chrissygormley
fonte

Respostas:

34

0775raramente está correto para um arquivo. A seguir, serão adicionadas as permissões desejadas apropriadas ao tipo apropriado, sem perturbar outras permissões existentes:

find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

Veja a página de manual para encontrar para ajudar a decifrar isso.

Ignacio Vazquez-Abrams
fonte
47

Para todos os usuários terem acesso de leitura e gravação, isso seria 0777um pouco perigoso, especialmente se você estiver executando um servidor da web. Como @unwind disse:

chmod -R 0777 /mydirectory Permitirá que todos os usuários leiam e gravem acesso a todos os arquivos e pastas dentro desse diretório

Dependendo da sua finalidade, convém ler sobre bits fixos, que permitem a todos os usuários criar novos arquivos, mas não excluir ou editar outros arquivos em um diretório:

chmod +t /mydirectory

Além disso, caso você não saiba, man chmodserá exibida a página de manual do chmodcomando, que você pode procurar pelo texto "recursivo" digitando/recursive


fonte
15

Não é assim que o modelo de proteção Unix funciona, você não pode definir permissões recursivamente. Você precisa configurá-los em cada diretório, até o final "inativo".

É claro que você pode fazer a configuração recursivamente, mas isso significa apenas "passar e definir essas permissões em todos os arquivos e pastas abaixo", e não é assim que entendo sua pergunta.

Para fazer isso, use a opção -R para chmod:

$ chmod -R 0755 /my-cool-directory
descontrair
fonte
@unwind - refiro-me a todos os arquivos e subdiretórios de um diretório que chmod tem permissão de leitura e gravação para todos. É isso que esse comando faz? Graças
11
Quando coloco o -r antes do 0755, recebo o 0755 - não existe esse arquivo ou diretório .. colocar o -r depois resolve meu problema.
precisa
"faça". ri muito. legais.
ytpillai