Como permitir a escrita localmente na partição NFS somente leitura

1

Eu criei meu próprio servidor de inicialização de rede PXE / NFS no Ubuntu 12.04, conforme explicado aqui . Eu posso escrever para arquivos no lado do cliente se eu alterar o arquivo /etc/exports como este no lado do servidor:

/srv/ubuntulivecd/        *(rw,async,no_root_squash,no_subtree_check) 

Eu quero alterar os arquivos apenas localmente. Quero dizer, isso não deve mudar o arquivo na partição NFS se eu gravar no arquivo local. Se eu alterar a opção rw(read-write) para ro(read-only) , não será possível alterar os arquivos (conforme esperado) por causa das permissões. Existe uma maneira de alterar os arquivos localmente ou temporário (todos os arquivos devem ser removidos após a reinicialização ou desligamento) no lado do cliente?

    
por Eyüp Alemdar 10.03.2014 / 21:29

1 resposta

0

No cliente, você pode copiar os arquivos para tmpfs (o mesmo que um CD ao vivo inicializa). Você precisa definir um tipo union FS ( aufs ) entre o sistema de arquivos RO no NFS e um sistema de arquivos RW tmpfs em sua máquina local.

example for tmps:
$ mount -t tmpfs no_device /tmp

agora tudo que você faz no / tmp funcionará no ramfs

example for union:
$ ls dir1
subdir
$ ls dir1/subdir
file1
$ ls dir2
subdir
$ ls dir2/subdir
file2
$ mkdir dir_union
$ mount -t aufs -o dirs=dir1=rw:dir2=ro no_device dir_union
$ ls dir_union
subdir
$ ls dir_union/subdir
file1 file2

observe o dir1 = rw e o dir2 = ro . agora você pode $ rm dir_union/subdir/file2 , que deve ser ro , mas na união você pode modificá-lo e você não terá nenhum erro. Na verdade, apenas as diferenças são mapeadas. Se você fizer

$ ls -la dir_union
file1 .wh.file2

onde .wh.file2 é um arquivo que mapeia as diferenças.

O mesmo com um CD-ROM:

$ mount -o ro /dev/cdrom /mnt/cdrom
mount -t tmpfs no_device /mnt/rw
mount -t aufs -o dirs=/mnt/rw=rw:/mnt/cdrom=ro no_device /mnt/union

Aqui você verá todos os arquivos originais do CD-ROM em / mnt / union. Se você modificá-los, as diferenças são mapeadas, os arquivos podem ser alterados em / mnt / union, mas os arquivos originais em / mnt / cdrom permanecem inalterados.

Agora, como exercício, faça isso para uma montagem NFS;)

felicidades

    
por 10.03.2014 / 22:01