Alterar as permissões de arquivo recursivamente Linux

Alterar as permissões de arquivo recursivamente Linux
Linux como todos os outros sistemas operacionais é um sistema operacional multiusuário que pode ser acessado por vários usuários ao mesmo tempo. Portanto, é muito importante que os administradores apliquem um conjunto adequado de permissões para evitar acesso não autorizado e equívocas. Permissões definem quem pode acessar e modificar os arquivos armazenados em um sistema multiusuário. O Linux fornece aos usuários maior flexibilidade e controle granular sobre as permissões de acesso de seus sistemas de arquivos.

Normalmente, um usuário que cria o arquivo tem os direitos de acessar e alterar as permissões de arquivo. Além disso, o usuário root tem, por padrão, todos os privilégios para acessar todos os arquivos no sistema.

Neste artigo, explicaremos como alterar as permissões de diretório recursivamente em um sistema operacional Linux usando os dois métodos diferentes. Primeiro, daremos uma rápida visão geral de como visualizar e alterar as permissões de arquivo e depois discutiremos como alterar as permissões recursivamente.

Exibir permissões de arquivo atuais

Para observar as permissões atuais de um arquivo ou diretório, execute o seguinte comando em seu terminal:

$ ls -l

Por exemplo, se corrermos ls-l, receberíamos uma saída semelhante:

Na lista acima, se o primeiro caractere de uma linha começar com "D", indica que é um diretório, enquanto se começar com "-" indica que é um arquivo. Depois disso, os próximos nove caracteres mostram as permissões do arquivo ou um diretório. Esses nove caracteres são realmente agrupados em três conjuntos para o usuário, grupo e proprietário, respectivamente. Além disso, cada conjunto compreende três tipos de permissões que são R, W e X são para "Read", "Write" e "Execute" Permissões, respectivamente,.

Alterar permissões

No Linux, para alterar as permissões de um arquivo ou um diretório, o comando chmod é usado. No entanto, para alterar a permissão, você deve ser o proprietário do arquivo ou o usuário root.

A sintaxe é:

$ chmod [referência] [operador] [mode] file1 file2…

Onde

  • Referência: quem atribuir permissões e.G U (para usuário), G (para o grupo), O (para o proprietário).
  • Operador: + (adicione a permissão), - (Remova a permissão), = (defina apenas esta permissão)
  • Modo: que permissão para atribuir r (para leitura), w (para gravação), x (para executar)

Alterar as permissões recursivamente usando -r

Você deve ter notado que, se aplicar permissões através do comando chmod acima, essas permissões são aplicadas apenas ao arquivo ou diretório especificado no comando. Não será aplicado aos subdiretos ou arquivos em um diretório.

O CHMOD permite alterar a permissão de vários arquivos e subdiretórios em um diretório usando a opção -r da seguinte maneira:

$ chmod -r [referência] [operador] [Modo] Arquivo…

Digamos que os subdiretos no diretório de downloads tenham as seguintes permissões, como mostrado na captura de tela a seguir.

Se visualizarmos um dos arquivos nomeados do subdiretório, ele contém alguns arquivos com as seguintes permissões.

Agora vamos modificar a permissão do nosso diretório pai de "arquivos", atribuindo -lhe a permissão de gravação da seguinte maneira.

$ chmod u+w arquivos

Onde você significa "usuário", o + para "add" e o w para "write".

Depois de atribuir a permissão de gravação, execute o “ls -l”Comando, você pode ver que a nova permissão foi atribuída ao diretório“ arquivos ”.

No entanto, este comando aplica apenas as permissões ao diretório, não os arquivos sob ele. Para verificar isso, navegue até o diretório de arquivos usando o “cd”Comando. Então execute o “ls -l”Comando. Você pode ver na captura de tela seguinte as permissões inalteradas.

Vamos aplicar a permissão recursivamente usando o seguinte comando:

$ chmod -r u+w arquivos

Ele não apenas aplicará a permissão ao diretório “arquivos” dos pais, mas também aos arquivos sob ele.

Agora, para verificar se a permissão é aplicada com sucesso, navegue para o diretório "arquivos" usando o "cd”Comandando e depois execute o“ls -l”Comando. A partir da seguinte entrada, você pode ver que as permissões se aplicaram com sucesso a todos os arquivos no diretório pai.

Da mesma maneira, você também pode atribuir recursivamente as permissões em forma absoluta. Por exemplo, para atribuir a permissão de leitura, gravação e executar apenas para o usuário, o seguinte comando pode ser usado:

$ chmod -r 700

Alterar a permissão recursivamente usando o comando find

Quando o chmod com -r é usado para aplicar permissão em um diretório, ele atribui a mesma permissão a todos os arquivos e subdiretórios sob ele. No entanto, às vezes, você pode querer fornecer permissões separadas a arquivos e diretórios. Um exemplo disso seria aplicar a permissão de execução no diretório, mas não nos arquivos, pois os arquivos não precisam da permissão de execução. Geralmente, as seguintes permissões são atribuídas aos arquivos e diretórios.

Para diretórios: 755 ou DRWXR-XR-XX
Para arquivos: 644 ou -rw-r-r--

Se for esse o caso, para atribuir recursivamente permissão aos diretórios, use uma das formas absolutas ou simbólicas:

$ find/path/to/diretório -Type d -exec chmod 755 +
$ find/path/to/diretório -Type d -exec chmod u = rwx, go = rx \;

Embora para atribuir recursivamente permissões aos arquivos, use uma das formas absolutas ou simbólicas:

$ find/path/to/diretório -Type f -exec chmod 644 +
$ find/path/to/diretório -Type f -exec chmod u = rw, go = r \;

Certifique -se de substituir as permissões pelos conjuntos de permissão necessários.

É assim que você pode alterar as permissões de diretório em Linux recursivamente. Para aplicar as mesmas permissões recursivas a todo o arquivo e subdiretório, use a opção -r, enquanto aplica permissões recursivas para arquivar e subdiretas separadamente, use o comando de localização.