impede que o usuário atual leia seu próprio arquivo

0

Edit: A pergunta curta é: Como faço para dar acesso a arquivos que o meu usuário (não privilegiado) possui atualmente. Eu gostaria de ser incapaz de obter acesso a eles de alguma forma. Por favor, veja o resto do post para uma descrição mais detalhada.

Para alguns backups, gostaria de copiar arquivos para um local remoto. Eu gostaria que esses arquivos estivessem seguros, mesmo no caso de a máquina local estar comprometida.

Inicialmente, meu plano era chown dos arquivos remotos para o root assim que eles fossem escritos. Isso não permitiria mais o acesso da máquina local, mas, em caso de desastre, permitiria que eu me recuperasse da máquina remota (supondo que uma delas não seja violada, é claro). Acontece, no entanto, que chown ing para outro usuário não é permitido no Linux por razões de segurança. Existe outro método para dar acesso a um arquivo que você possui atualmente?

A máquina remota é um raspberry pi rodando o Raspbian Stretch e a máquina local está executando o FreeNAS 11.0-U4. A máquina local pode ssh para a máquina remota como um usuário não privilegiado. Eu gostaria que as permissões deste usuário na máquina remota fossem o mais limitadas possível.

    
por Octaviour 10.02.2018 / 18:02

1 resposta

0

Em um sistema multiusuário com cotas de disco, permitir que usuários sem privilégios distribuam arquivos para outros usuários permitiria que os usuários abusassem das cotas de disco uns dos outros.

Seria trivial para o Usuário A criar um diretório acessível apenas pelo Usuário A, preenchê-lo com arquivos grandes e entregá-los ao Usuário B. Agora, a cota de disco do Usuário B está esgotada por arquivos que não podem ser acessados pelo usuário B.

A capacidade dos usuários de distribuir arquivos (a semântica do SysV para chown ()) usada para causar vários tipos de problemas de segurança e agora é considerada na literatura como um comportamento interrompido. Por exemplo, se você acidentalmente permitir que outros usuários gravem em seu diretório inicial, outro usuário no mesmo sistema poderá fornecer alguns arquivos / diretórios. Como <your_homedir>/.ssh/authorized_keys por exemplo. Ou <your_homedir>/.rhosts nos maus velhos tempos. Cada uma delas pode ser usada para permitir o acesso à sua conta, e você teria dificuldade em provar que não era você.

Em um sistema Linux, você pode usar sudo para permitir a configuração do atributo "imutável" para os arquivos, mas não o comando para limpá-lo. Esta seria a linha de configuração de exemplo para /etc/sudoers :

Octaviour  ALL=(root) NOPASSWD: /usr/bin/chattr -R +i /your/backup/directory

Você pode executar sudo chattr -R +i /your/backup/directory , mas não o comando chattr -R -i correspondente, usando sua conta de usuário comum. O bit imutável normalmente pode ser definido ou limpo apenas pela raiz.

(Se os recursos do Linux estiverem em uso, um processo com o recurso CAP_LINUX_IMMUTABLE poderá fazê-lo. Mas seria muito incomum para usuários normais ter isso, e o uso de recursos em si é bastante incomum.)

    
por 11.02.2018 / 16:51