AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1010822
Accepted
Mike
Mike
Asked: 2020-04-04 13:39:01 +0800 CST2020-04-04 13:39:01 +0800 CST 2020-04-04 13:39:01 +0800 CST

Problemas do Samba4 com o Time Machine: não é possível criar um novo backup no compartilhamento do Samba

  • 772

Nota: postado originalmente no StackExchange. Não tenho certeza de qual local é mais apropriado, peço desculpas se a duplicação causar problemas.

TL;DR: o Time Machine não pode criar um novo backup em minha unidade compartilhada, mas pode adicionar a um backup existente .

Estou executando o macOS Catalina e meu Time Machine faz backup em um servidor Debian 10 com NetAtalk e Avahi. Como o Mavericks macOS preferiu o SMB e, como o SMB é um pouco mais rápido, decidi mudar para o uso do SMB para os compartilhamentos do Time Machine. Em um novo compartilhamento AFP, posso iniciar um novo backup do Time Machine nas Preferências do Sistema e ele criará uma nova imagem .sparse sem reclamar.

Se eu usar exatamente o mesmo diretório (/usr/local/smb), as mesmas permissões etc, e criar um compartilhamento de samba, quando o Time Machine tentar criar um novo backup, ele dará o erro: "O Time Machine não pôde concluir o backup para SERVER.local. Não foi possível criar a imagem de disco de backup."

Se eu primeiro me conectar ao compartilhamento com o AFP e fizer o backup inicial, poderei conectar-me ao SMB e adicionar backups incrementais subsequentes sem erros. Eu pensei que talvez um problema de permissões, mas para fins de depuração eu tenho /usr/local/smb definido como 0777 e ainda recebo o erro.

ls -lamostrando as permissões do ponto de compartilhamento:

drwxrwxrwx  5 root smbusers 4096 Apr  3 12:35 smb

Eu encontro o seguinte erro possivelmente útil no log:

Failed to create '/Volumes/.timemachine/SERVER._smb._tcp.local/DDE06691-7411-41DD-8419-24FEFC21CE29/TimeMachine Set A - SMB/8E394711-7E3F-520B-800C-192D4F680177.sparsebundle', results: {
}, error: 13 Permission denied

afp.conf:

[Global]
; Global server settings
vol preset = default_for_all
log file = /var/log/netatalk.log
uam list = uams_dhx2.so,uams_clrtxt.so
save password = no

[default_for_all]
file perm = 0664
directory perm = 0774
cnid scheme = dbd

[Time Machine Set A - AFP]
path = /usr/local/smb
time machine = yes
vol size limit = 4000000

Estou usando algumas opções smb.conf sugeridas neste GitHub: https://gist.github.com/ChloeTigre/4c2022c0d1a281deedba6f7539a2e3ae

smb.conf:

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = WORKGROUP
   wins support = yes

#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
   log file = /var/log/samba/log.%m

# Cap the size of the individual log files (in KiB).
   max log size = 1000

# We want Samba to only log to /var/log/samba/log.{smbd,nmbd}.
# Append syslog@1 if you want important messages to be sent to syslog too.
   logging = file

# Do something sensible when Samba crashes: mail the admin a backtrace
   panic action = /usr/share/samba/panic-action %d

###MacOS compatability stuff
guest account = smbguest
min protocol = SMB2
map acl inherit = yes
vfs objects = catia fruit streams_xattr  
fruit:metadata = netatalk
fruit:model = MacSamba
fruit:posix_rename = yes 
fruit:veto_appledouble = yes

durable handles = yes
kernel oplocks = no
kernel share modes =no
posix locking = no
smb2 leases = yes


#Turned off for testing compatability
#fruit:wipe_intentionally_left_blank_rfork = yes 
#fruit:delete_empty_adfiles = yes 

####### Authentication #######

# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller". 
#
# Most people will want "standalone server" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
   server role = standalone server

   obey pam restrictions = yes

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
   unix password sync = yes

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<[email protected]> for
# sending the correct chat script for the passwd program in Debian Sarge).
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
   pam password change = yes

# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
   map to guest = bad user

######Security#######
security = user
valid users = @smbusers
username map = /etc/samba/users.map
guest ok = no

# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
   usershare allow guests = yes

#======================= Share Definitions =======================

[TimeMachine Set A - SMB]
path = /usr/local/smb
comment = SMB Time Machine Destination Set A
browsable = yes
writeable = yes
create mode = 0664     #tried turning this off, no fix
directory mode = 0777  #tried turning this off, no fix
vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:time machine = yes
#guest ok = yes
fruit:time machine max size = 3.9T  #tried turning this off, no fix
inherit acls = yes
debian samba time-machine netatalk samba4
  • 2 2 respostas
  • 6498 Views

2 respostas

  • Voted
  1. Kay
    2020-04-11T03:59:27+08:002020-04-11T03:59:27+08:00

    Encontrei o mesmo problema, fazendo com que meu Mac se recusasse a criar os arquivos de pacote esparsos iniciais no meu servidor samba. Depois de incorporar as dicas em https://wiki.samba.org/index.php/Configure_Samba_to_Work_Better_with_Mac_OS_X finalmente iniciou o backup.

    Embora eu possa apenas supor, o seguinte comentário me chamou a atenção: Como armazenar metadados do OS X: fruit:metadata = stream

    Você pode tentar mudar de netatalk para stream. Talvez o uso do netatalk impeça a máquina do tempo de armazenar seus metadados.

    Boa sorte, Ka

    • 2
  2. Best Answer
    Mike
    2020-04-27T09:55:45+08:002020-04-27T09:55:45+08:00

    Pensei em postar algumas informações adicionais para as pessoas. Meu smb.conf atualmente em funcionamento é o seguinte. A adição fruit:metadata = streamfuncionou por pouco tempo para mim, então abaixo estão os resultados de horas de testes adicionais.

    Observe que isso está no Debian 10 (Buster), então coisas como o comando de alteração de senha serão diferentes em outras distribuições. Observe também que a ordem dos módulos na configuração vfs objects = catia fruit streams_xattré significativa e importante.

    # NOTE: Whenever you modify this file you should run the command
    # "testparm" to check that you have not made any basic syntactic 
    # errors. 
    [global]
       workgroup = WORKGROUP
       min protocol = SMB2
    
    
       log file = /var/log/samba/log.%m
       max log size = 5000
       logging = file
       security = USER
       
       panic action = /usr/share/samba/panic-action %d
    
       server role = standalone server
       obey pam restrictions = yes
       unix password sync = yes
    
       passwd program = /usr/bin/passwd %u
       passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
       pam password change = yes
       username map = /etc/samba/users.map
       map to guest = bad user
       guest account = XXXYOURGUESTACCOUNT
    
    # Time Machine settings
       vfs objects = catia fruit streams_xattr
       fruit:model = RackMac
       fruit:advertise_fullsync = true
       fruit:metadata = stream
       fruit:veto_appledouble = no
    #default is yes, not necessary to specify fruit:posix_rename = no
    #default is yes, not necessary to specify fruit:zero_file_id = yes
       fruit:wipe_intentionally_left_blank_rfork = yes
       fruit:delete_empty_adfiles = yes
       ea support = yes
    
    
    #default is yes, not necessary to specify   fruit:aapl = yes
    
       # Make share visible to Windows
    #Disabled for a Mac-Only network
    #   lanman auth = no
    #   ntlm auth = yes
    #   wins support = yes
    #   local master = yes
    #   preferred master = yes
    
       # Allow symlinks
    #   follow symlinks = yes
    #   wide links = yes
    #   unix extensions = no
    
    #======================= Share Definitions =======================
    [SHARED DRIVE]
    
       path = /PATH/TO/YOUR/SHARED/FOLDER
       valid users = @YOURGUESTUSERGROUP
       writable = yes
       durable handles = yes
       kernel oplocks = no
       kernel share modes = no
       posix locking = no
       vfs objects = catia fruit streams_xattr
    #default is yes, not necessary to specify   ea support = yes
    #default is yes, not necessary to specify browseable = yes
       read only = no
       inherit acls = yes
       fruit:time machine = yes
       fruit:metadata = stream
       fruit:locking = netatalk
       guest ok = yes
    
    [Time Machine]
       path = /PATH/TO/YOUR/SHARED/FOLDER
       valid users = @YOURGUESTUSERGROUP
       writable = yes
       durable handles = yes
       kernel oplocks = no
       kernel share modes = no
       posix locking = no
       vfs objects = catia fruit streams_xattr
    #default is yes, not necessary to specify   ea support = yes
       browseable = no
       read only = no
       inherit acls = yes
       fruit:time machine = yes
       fruit:metadata = stream
       fruit:locking = netatalk
       fruit:time machine max size = 1.9T
    

    **EDIT: Acontece que o Samba 4.9 no Debian 10 anuncia automaticamente os destinos do TimeMachine, desde que não haja anúncios relacionados ao Samba em arquivos /etc/avahi/services. Meu sistema não estava anunciando o compartilhamento TimeMachine porque eu também tinha uma configuração manual de compartilhamento smb para avahi. Quando eu desabilitei AMBOS, o Samba anunciou ambos corretamente.

    *** ANTIGO VEJA ACIMA Observe também que a versão do Samba com o Debian 10 atualmente não possui suporte embutido para anunciar compartilhamentos do Time Machine. Normalmente, a especificação fruit:time machine = yesacionará o Samba para anunciar um destino do Time Machine via Avahi, mas esse suporte específico não é construído com o Samba incluído no Debian 10. Você precisará configurar uma definição .service em /etc/avahi/services/. Eu criei time_machine_advert.service nessa pasta. Você precisará reiniciar o avahi para garantir que ele seja aplicado com o sudo systemctl restart avahi. Eu tenho dois destinos do Time Machine. Múltiplos podem ser anunciados em um único arquivo simplesmente duplicando o registro txt e incrementando dkX, ou seja, dk1, dk2 etc.

    <?xml version="1.0" standalone='no'?><!--*-nxml-*-->
    <!DOCTYPE service-group SYSTEM "avahi-service.dtd">
    <service-group>
     <name replace-wildcards="yes">%h</name>
     <service>
       <type>_adisk._tcp</type>
       <txt-record>sys=waMa=0,adVF=0x100</txt-record>
       <txt-record>dk0=adVN=SAMBA SHARE NAME EXACTLY,adVF=0x82</txt-record>
       <txt-record>dk1=adVN=SAMBA SHARE NAME #2 EXACTLY,adVF=0x82</txt-record>
     </service>
      <service>
        <type>_smb._tcp</type>
        <port>445</port>
      </service>
    </service-group>
    

    Existem alguns sites úteis adicionais para configuração do Samba em relação ao Time Machine aqui:

    Guia oficial da equipe do Samba para a configuração do Time Machine, embora isso por si só não tenha uma configuração funcional para mim: https://wiki.samba.org/index.php/Configure_Samba_to_Work_Better_with_Mac_OS_X

    referência smb.conf: https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

    vfs_fruit (o módulo de compatibilidade da Apple para Samba) referência https://www.samba.org/samba/docs/current/man-html/vfs_fruit.8.html

    O smb.conf de Ken Murphy no GitHub que finalmente me levou ao limite e fez minha configuração funcionar: https://github.com/KenMurphy/SambaConfigs/blob/master/smb.conf

    Um guia geral do Samba no Debian: https://www.antoneliasson.se/journal/time-machine-compatible-samba-on-debian-buster/

    • 2

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve