Como permitir que apenas um programa grave em um diretório se ele estiver montado?

1

Eu tenho um programa que grava alguns arquivos em um diretório. Meu problema é que, se o diretório não é montado por algum motivo, o programa grava no diretório de qualquer maneira, mas os arquivos acabam no sistema de arquivos do sistema, não no sistema de arquivos normalmente montado. Gostaria que as gravações no diretório falhassem se esse diretório não estivesse montado. Como faço isso no Linux?

    
por Nick 20.10.2011 / 23:59

2 respostas

2

Tornar o ponto de montagem subjacente somente leitura.

Quando o sistema de arquivos adicional é montado, as permissões têm precedência IIRC.

    
por 21.10.2011 / 00:16
1

Eu tropecei nesse problema uma vez também.

No meu caso, os scripts acessando o diretório em questão como root , então a opção readonly não teria sido uma solução.

Mas há outras duas soluções possíveis:

1º: Verifique com o comando mount, se o diretório estiver montado:

 if mount | grep /that/mountpoint
  then
    ...

2º: Crie manualmente um arquivo de flag quando o FS estiver montado e verifique isso no seu script. Se o arquivo de bandeira não estiver lá, o FS não pode ser montado

 mount /that/mountpoint
 touch /that/mountpoint/.is_mounted

 if test -e /that/mountpoint/.is_mounted
  then
    ...

A primeira solução é mais confiável se for adequada ao seu sistema, enquanto a segunda é mais portátil.

    
por 21.10.2011 / 11:31

Tags