Como posso tornar impossível para uma máquina Windows excluir um diretório (não seu conteúdo) em um servidor Linux Samba?

2

O título diz tudo. (Uma das raras ocasiões em que realmente se encaixa.: P)

    
por i336_ 18.09.2014 / 22:37

2 respostas

2

Um truque antigo no final do Linux pode funcionar aqui:

mkdir StayingAlive
sudo touch StayingAlive/.CantTouchThis
sudo chattr +i StayingAlive/.CantTouchThis

A chave aqui é o atributo imutável em .CantTouchThis (você provavelmente desejará um nome mais sério, como .rootfile ). Esse atributo impede que o arquivo seja excluído (ou até mesmo modificado) - mesmo o root não pode excluir isso sem antes remover o atributo. Esse arquivo impedirá que o diretório seja esvaziado e, portanto, impede que ele seja excluído.

Quando eu fiz isso no passado, eu normalmente também alterei a propriedade da pasta e dei acesso ao usuário através do bit setgid (g + s) - embora o raciocínio por trás disso me escape no momento

sudo chown root.user StayingAlive
sudo chmod g+sw StayingAlive
    
por 18.09.2014 / 22:43
0

Para excluir um diretório, ele deve estar vazio e você deve ter permissões de gravação em seu pai.

Assim, você pode evitar que o diretório fique vazio, como sugerido pelo STW, ou pode garantir que o usuário não tenha permissões de gravação no pai do diretório, o que não é permitido excluir.

Se você tiver um diretório chamado /foo/bar e um arquivo denominado /foo/bar/file , um usuário com permissões de gravação em /foo/bar poderá excluir o arquivo. Mas as permissões de gravação em /foo/bar não significam permissões para excluir /foo/bar , e a exclusão exigiria permissões de gravação em /foo .

    
por 20.09.2014 / 11:24