Requer o sudo para excluir arquivos, mas ainda permite escrever

-1

Eu tenho todos os meus arquivos em uma invasão de servidor, e ele tem uma quantidade razoavelmente excessiva de espaço, então eu não vou precisar apagar nada.

Eu ainda tenho coisas escrevendo para o ataque o tempo todo, então eu não quero ter que usar o sudo para fazer isso. Mas é possível definir permissões para que a escrita seja permitida, mas a exclusão de arquivos não é?

Eu assumo que isso também irá requerer que eu use sudo para comandos mv, mas isso não é um problema

Informação extra:

O Raid usa o btrfs raid1

O sistema operacional está em uma unidade separada (servidor Ubuntu 14.04)

    
por Anake 08.10.2014 / 17:57

3 respostas

1

Você precisa de permissões de gravação de diretório para criar ou excluir arquivos. Você precisa de permissões de gravação de arquivo para alterar o arquivo.

Considerando esta árvore:

FolderA: (no write permissions for you)
   - FileX (write permissions)
   - FileY (write permissions)

Agora você pode alterar o FileX e o FileY, mas não pode excluí-los. Nem você pode criar um FileZ na FolderA.

    
por kvbx 08.10.2014 / 18:03
1

Eu não acho que seja possível. A criação e exclusão de arquivos no Unix são controladas pela capacidade de gravar no diretório --- basicamente, o mesmo sinalizador.

Agora, o que você pode fazer é criar dois diretórios - um com permissão de gravação e outro restrito ao root.

[romano:~/tmp/test] % ls -l
total 8
drwxrwxr-x 2 romano romano 4096 Oct  8 18:06 normal
drwxrwxr-x 2 root   root   4096 Oct  8 18:06 onlyroot

Você normalmente trabalha em normal . Suponha que você tenha nele:

[romano:~/tmp/test/normal] % ls
one.txt  three.txt  two.txt

Você pode excluir arquivos claramente e criar novos; Suponha que você queira proteger " one.txt " da exclusão. O que você pode fazer é criar um link físico para ele em onlyroot :

[romano:~/tmp/test/normal] 1 % sudo ln one.txt ../onlyroot

Isso criará outro nome para one.txt em onlyroot (usando uma quantidade insignificante de espaço; o arquivo não é copiado). Agora, como usuário normal, você pode excluir one.txt na pasta normal , mas terá uma versão intocável sob onlyroot one.

[romano:~/tmp/test/normal] % ls
one.txt  three.txt  two.txt
[romano:~/tmp/test/normal] % rm one.txt
rm: remove regular empty file ‘one.txt’? y
[romano:~/tmp/test/normal] % cd ..
[romano:~/tmp/test] % cd onlyroot 
[romano:~/tmp/test/onlyroot] % ls
one.txt
[romano:~/tmp/test/onlyroot] % rm one.txt 
rm: remove regular empty file ‘one.txt’? y
rm: cannot remove ‘one.txt’: Permission denied
    
por Rmano 08.10.2014 / 18:12
1

No meu entender (com base no link ), o btrfs oferece suporte apenas às permissões tradicionais do Unix e POSIX.1e ACLs e, portanto, não pode fazer o que você quer.

Muitos outros sistemas de arquivos suportam pelo menos uma das richacls do Linux (que ainda não acredito estar na linha principal), ACLs NFSv4, ACLs do ZFS ou ACLs do Windows, e todas elas permitem negar especificamente 'excluir', mas eu não imagino que você esteja disposto a desistir dos recursos do btrfs apenas por isso.

Por outro lado, como você está planejando especificamente evitar erros simples, talvez seja melhor aproveitar os recursos de snapshot do btrfs usando algo como o autosnap.

    
por Nye 08.04.2015 / 16:00