Como desabilito as permissões de cópia?

2

Podemos definir permissões, em uma caixa do Linux OU para um diretório específico (Scientific Linux no meu caso), que é possível ler arquivos, mas não pode copiar, mover ou excluí-los?

Atualização: Meu cenário é:  Nós desenvolvemos um programa de GUI que está tendo algumas imagens que nós criamos consumindo muito tempo e esforços. Nossa estrutura de diretórios é:

/GUI/program/GUI.exe
/GUI/images/A/A1.jpeg A2.png .... A200.png
/GUI/images/B/B1.png B2.png .... B200.png
.
.
/GUI/images/I/I1.png I2.png .... I200.png

Não é preciso dizer ./GUI.exe chama imagens que o usuário precisa para interagir.
Agora preciso ocultar /GUI/images/* .
Existe alguma maneira?

    
por Tejas 13.03.2013 / 14:53

5 respostas

6

Se um arquivo puder ser lido, ele poderá ser copiado. Você pode, no entanto, impedir que o arquivo seja excluído ou movido, não dando permissões de gravação ao diretório em que o arquivo reside.

Editado com informações adicionais desde que a pergunta foi alterada:

Dado o cenário que você adicionou à pergunta, você pode fazer isso:

  • crie um usuário que será usado apenas para este programa, por exemplo %código%
  • altera a propriedade do diretório / GUI / images para, por exemplo, %código%
  • altere as permissões do diretório e dos arquivos dentro dele para que apenas guiuser tenha permissão de leitura
  • altere o proprietário do programa GUI.exe para pertencer a guiuser
  • altere as permissões do programa para executar o setuid ( guiuser )

Quando seus usuários executarem o programa, esse programa terá os direitos de acesso de guiuser , para que o programa possa ler os arquivos mesmo que o usuário comum não tenha permissão.

    
por 13.03.2013 / 15:00
4

Copiar não é mágico: é apenas ler um arquivo e salvar o que você leu em outro lugar. Então, inerentemente, se você pode ler um arquivo, você pode copiá-lo.

No entanto, dependendo do que você está fazendo, você pode conseguir atingir seu objetivo tornando os dados não legíveis por usuários normais , e acessados somente por meio de um programa especial (antigamente, um programa setuid; atualmente, um aplicativo da web pode ser mais apropriado). Esse programa distribuiria bits dos dados a pedido, e não arquivos inteiros. Como o problema inerente permanece, isso não pode impedir a cópia, mas pode tornar isso mais difícil, porque você pode ter lógica para solicitações de limite de taxa ou similares. Ou, você pode apresentar os dados de uma maneira com perdas , em vez de fornecer as informações brutas. Por exemplo, se a origem estiver em HTML, envie o texto simples renderizado. Um usuário determinado pode adivinhar e reconstruir o original, mas é improvável que obtenha um resultado exato.

    
por 13.03.2013 / 15:13
2

Se você pretende exibir essas imagens, elas precisam ser legíveis. Se eles podem ser lidos, eles podem ser copiados, porque copiar consiste em ler algo e escrevê-lo em outro lugar. Isso ocorre quer você esteja exibindo-os em um aplicativo personalizado ou pela Web como sugerido pelo mattdm . Quando um navegador da Web exibe uma imagem, primeiro precisa fazer o download (se não baixou a imagem, não saberia o que exibir, afinal).

Você pode conceder privilégios extras ao seu programa e tornar as imagens acessíveis apenas com esses privilégios extras, como sugerido por Jenny D . No entanto, não há chance de que você seja capaz de fazer isso sem projetar seu aplicativo para ser seguro do zero. Além disso, o administrador do sistema teria acesso às imagens de qualquer maneira.

Você quase certamente está tentando resolver um problema social por meio da tecnologia. Isso é bem conhecido para não funcionar. Faça com que seus usuários assinem um contrato informando que eles não copiarão as imagens. Isso é chamado de licença.

    
por 13.03.2013 / 22:49
1

Update: My Scenario is, We developed an GUI program which are having some images which we have created by consuming lot of time and efforts.

Tudo bem, jacking com as permissões de arquivo e setuid () em seu aplicativo podem impedir que usuários normais copiem as imagens. Não vai impedir que uma pessoa realmente determinada "roube" eles. Gilles sugeriu isso em um comentário para outra resposta.

Você pode criptografar as .png imagens no disco e fazer com que seu aplicativo as descriptografe antes de usá-las diretamente. Mais uma vez, não é perfeito, mas provavelmente é mais provável impedir que sejam copiados facilmente.

Mas (aqui está a má notícia), qualquer um com um programa de captura de tela pode simplesmente retirá-lo da tela quando seu próprio aplicativo o usar. Uma vez que está no visor, é "roubável" novamente. Mesmo que eles não saibam como fazer uma captura de tela, se eles tiverem um smartphone ou uma câmera, eles estarão disponíveis.

A melhor esperança é provavelmente apenas colocar avisos de direitos autorais nas imagens.

    
por 14.03.2013 / 01:17
0

Não em relação à cópia. Ferramentas que copiam arquivos apenas as lêem, e não haveria como o sistema dizer qual é o propósito de uma leitura.

A menos que você elimine completamente a capacidade de um usuário escrever em qualquer lugar , um usuário razoavelmente competente encontrará uma maneira de copiar um arquivo se ele puder lê-lo.

    
por 13.03.2013 / 15:01