Instalação do Samba no sistema somente leitura

0

Não encontrei nada útil na Web.

Aqui está a história. Estou tentando instalar o Samba (versão 4.5.12) no Debian (Raspbian, mas isso não importa). O Debian é instalado em um sistema de arquivos somente leitura. A instalação está ok, mas o samba não está sendo iniciado no modo RO (somente leitura). Eu estava tentando fazer links simbólicos de dados necessários ( /var/lib/samba files ) no disco rígido externo (que é leitura-gravação), mas eu tenho um erro no início do Samba - systemctl não conseguiu iniciar smdb.service. Em systemctl status não foi nada interessante. Mas em samba/log. descobri que:

[2018/04/01 17:11:55.333301,  0] ../lib/util/util.c:270(directory_create_or_exist_strict)
  directory /var/lib/samba/private/msg.sock isn't a directory
[2018/04/01 17:12:35.116576,  0] ../lib/util/util.c:270(directory_create_or_exist_strict)
  directory /var/lib/samba/private/msg.sock isn't a directory
[2018/04/01 17:42:24.843043,  0] ../lib/util/util.c:216(directory_create_or_exist)
  mkdir failed on directory /var/lib/samba/private/msg.sock: Read-only file system
[2018/04/01 18:04:41.824892,  0] ../lib/util/util.c:216(directory_create_or_exist)
  mkdir failed on directory /var/lib/samba/private/msg.sock: No such file or directory

O googling me ajudou a descobrir que a função directory_create_or_exist_strict no código-fonte do Samba verifica se diretórios (no meu caso para /var/lib/samba/private/msg.sock ) são reais.

Existe alguma solução para o Linux? Devo reescrever a função directory_create_or_exist_strict ou fazer o caminho absoluto para o diretório msg.sock no disco rígido externo? Ou existe alguma outra maneira de espelhar essa pasta para HDD externo? Por favor, compartilhe algumas dicas comigo.

    
por SteAlzzer 02.04.2018 / 10:31

1 resposta

0

O problema é provavelmente que você está usando um softlink para redirecionar a pasta samba var para o outro disco.
Um softlink se comporta de maneira um pouco diferente de uma pasta real e pode não ser aceitável para o código de criação do soquete do samba.

O que eu faria em uma configuração como a sua é colocar todo o sistema de arquivos / var no outro disco (ou como um tmpfs) e simplesmente montá-lo no momento da inicialização.
Ou, se você não quiser percorrer todo o caminho, basta criar um sistema de arquivos tmpfs na inicialização e montá-lo em / var / lib / samba.

Um ponto de montagem deve estar OK. Caso contrário, nenhum sistema Linux jamais poderia colocar / var em um sistema de arquivos diferente.

    
por 02.04.2018 / 10:42