Compreendendo as permissões corretamente para o cp [duplicado]

3

Estou tentando entender o uso da permissão para o comando cp no unix.

  1. Quais são as permissões necessárias para copiar um arquivo em um diretório
  2. Quais são as permissões necessárias para copiar de um diretório?

Suponho que para minha primeira pergunta, o diretório precisará de permissões de execução para executar a operação e o arquivo precisará de permissões de leitura para ler o binário do arquivo e, em seguida, o arquivo de saída precisará de permissões de gravação.

Para o segundo, o próprio diretório precisaria executar permissões para executar a operação de cópia e o arquivo precisaria de permissões de leitura para extrair os dados do arquivo.

Alguém pode me dizer se minha lógica é falha?

    
por Ryan 25.09.2015 / 04:28

3 respostas

9

  1. você precisa:

    diretório de origem: execute e leia a permissão arquivo de origem: permissão de leitura.
    diretório de destino: execute e escreva permissão.
    arquivo de destino: você não precisa de permissão, pois não sai antes de copiá-lo. ou escrever permissão se o arquivo existir.

  2. você precisa:

    diretório de origem: permissão de execução e leitura.
    arquivo de origem: permissão de leitura. diretório de destino: execute e grave permissão. arquivo de destino: você não precisa de permissão, pois não sai antes de copiá-lo. ou escrever permissão se o arquivo existir.

Como você vê, essas duas perguntas são realmente as mesmas. Se você quer ter certeza, você pode apenas testá-lo em apenas alguns minutos.

    
por 25.09.2015 / 05:14
3

Primeiramente, você deve entender que um diretório sem permissões de execução é inútil. Você pode listar o conteúdo se tiver permissões de leitura - mas mesmo isso gerará um erro sem permissões de execução, e TUDO get é o nome dos arquivos, nenhuma outra informação sobre eles.

Em seguida, entenda que as permissões de execução em um diretório permitem que você acesse o conteúdo, independentemente das permissões de leitura - MAS, somente se você já souber o nome exato do arquivo no diretório. Sem permissões de leitura, você não será capaz de listar o conteúdo do diretório, mas executar permite que você obtenha os arquivos dentro do diretório se você souber o nome do arquivo, E se você tiver permissões corretas no arquivo em si.

Em seguida, entenda que as permissões de gravação em um diretório permitem adicionar arquivos e DELETE arquivos , independentemente das permissões que você tiver nos arquivos. Isso significa que é possível excluir arquivos que você nem tem permissão para ler.

Uma analogia que pode ser útil é uma lista telefônica. O diretório é apenas isso - um diretório. NÃO é uma pasta. É como um catálogo telefônico, e tudo o que ele diz é o nome do arquivo e um "número de telefone" associado (chamado número de inode). As permissões de leitura no diretório permitem que você leia a lista telefônica. As permissões de execução permitem discar os números na lista telefônica. As permissões de gravação permitem que você anote os nomes e números de arquivos na lista telefônica e também raspe nomes de arquivos e números já presentes. Observe que, se você tiver permissões de execução (a capacidade de discar números), mas não as permissões de leitura (a capacidade de ler o catálogo telefônico), ainda poderá fazer uma ligação telefônica, se souber o nome do arquivo. (A analogia é um pouco fraca, porque neste caso você não precisa do número do inode, apenas do nome do arquivo.)

E, muito importante, observe que isso não diz absolutamente nada sobre o sucesso de sua ligação telefônica, apenas que você pode fazer o telefonema. É quando entramos em permissões de arquivo. Se você puder fazer chamadas telefônicas, ou seja, tiver permissões de execução no diretório (e, ou já souber o nome do arquivo ou tiver permissões de leitura no diretório), as permissões de arquivo começarão a ser importantes.

Se você tiver permissões de leitura no arquivo, a pessoa no telefone responderá às suas perguntas (forneça as informações que elas têm, ou seja, informe o conteúdo do arquivo). Se você tiver permissões de gravação, poderá alterar suas respostas (alterar o conteúdo do arquivo). Se você tiver permissões de execução, você pode executar o arquivo como um programa ... Eu não tenho nenhuma analogia para isso.

Observe que você pode alterar o conteúdo do arquivo sem permissões de gravação no diretório - porque você não está alterando o diretório (a lista telefônica), apenas o arquivo para o qual o diretório possui um número. Mas você não pode criar um novo arquivo no diretório sem permissões de gravação no diretório, porque envolve escrever um novo nome e número na "lista telefônica". Da mesma forma, se você tiver permissões de gravação no diretório e receber algum empurrão no telefone que não responderá às suas perguntas e não aceitará suas instruções (sem permissões de gravação, sem permissões de leitura no arquivo), ainda poderá riscar o nome dele. a lista telefônica.

Eu mesmo pensei nessa analogia; é muito preciso na maioria dos aspectos e é por isso que um diretório é chamado de "diretório". Espero que ajude a entender a relação entre permissões de diretório e permissões de arquivo. (Há um recurso importante que eu não abordei, chamado de "sticky bit" em um diretório, mas você pode procurar por ele sozinho).

    
por 28.09.2015 / 10:43
1
  1. Seu usuário deve ter pelo menos permissões de gravação e execução no diretório de destino por qualquer meio (ou seja, se o usuário for o proprietário, pelo menos, permissões 300 , se o usuário não for o proprietário, mas estiver no Agrupe pelo menos permissões 030 e se seu usuário não for o proprietário e não estiver no grupo, pelo menos, permissões 003 )

  2. Seu usuário deve ter pelo menos permissões de leitura e execução no diretório de origem por qualquer meio (ou seja, se seu usuário for o proprietário, pelo menos, permissões 500 , se seu usuário não for o proprietário, mas estiver no Agrupe pelo menos permissões 050 e se seu usuário não for o proprietário e não estiver no grupo, pelo menos, permissões 005 )

A razão pela qual é necessário ter permissão de gravação (no primeiro caso) e permissão de leitura (no segundo caso) é bastante auto-explicativa; a razão pela qual é necessário ter permissões de execução nos dois casos é porque, para gravar / ler arquivos, é obrigatório poder acessar o diretório, o que é permitido somente se o usuário tiver a permissão de execução no diretório target / source.

    
por 25.09.2015 / 05:27