Mi sono imbattuto nello stesso problema oggi. Ho scoperto che puoi autorizzare utenti regolari a eseguire determinate operazioni con il comando "zfs allow":
come root, esegui le seguenti operazioni sul server:zfs consenti a tuo_nomeutente di ricevere, creare, montare archiviazione/foto
Successivamente, sarai in grado di accedere al server tramite ssh utilizzando your_username e avrai i privilegi zfs da ricevere. Vedi qui:http://docs.oracle.com/cd/E19253-01/819-5461/gfkco/index .html
Questo non rimuove completamente l'accesso root, ma protegge le cose oltre un accesso completo.
Imposta un trust SSH copiando la chiave pubblica dell'utente locale (di solito ~/.ssh/id_rsa.pub ) nel file authorized_keys (~/.ssh/authorized_keys ) per l'utente remoto. Ciò elimina le richieste di password e migliora la sicurezza poiché le chiavi SSH sono più difficili da applicare alla forza bruta. Probabilmente vuoi anche assicurarti che sshd_config ha PermitRootLogin without-password -- questo limita gli accessi root remoti alle sole chiavi SSH (anche la password corretta fallirà).
Puoi quindi aggiungere sicurezza usando il ForceCommand direttiva nel file authorized_keys per consentire solo l'esecuzione del comando zfs.
@analog900 è sulla strada giusta.
Una chiave per una maggiore sicurezza, incluso evitare la necessità di accessi root, è utilizzare la struttura di autorizzazioni integrata di ZFS e anche strutturare i trasferimenti di backup al contrario e tirare i tuoi backup sulla rete, invece di spingerli. La capacità di eseguire il backup dei filesystem senza accesso root è uno dei principali risultati di progettazione del filesystem ZFS.
Esegui il lavoro su destination ed estrai i dati da source , forse qualcosa come:
- Sulla fonte computer, creare un account utente non privilegiato
fooe usazfs allowper dare a quell'account la possibilità di creare e inviare istantanee:
zfs allow foo mount,snapshot,send,hold storage/photos
- Sulla destinazione macchina, crea un account non privilegiato
bare dai a quell'account la possibilità di ricevere/creare/montare filesystem:
zfs allow bar mount,create,receive storage/photos
- A destinazione, come utente
bar, creare una chiave ssh specifica per i processi di backup. Installa la metà pubblica di quella chiave nel.sshdirectory dell'utentefoosulla macchina di origine. Questo dà all'utenteexample@unixlinux.onlineproteggere l'accesso tramite login ssh alexample@unixlinux.onlineaccount. Inoltre, modifica il file ~bar/.ssh/config sudestinationin modo che utilizzi automaticamente il nome file della chiave SSH corretto (che hai creato in precedenza) e il nome utente:
Host source
Hostname FQDN.of.source.example.com
User foo
IdentityFile ~bar/.ssh/backup_key_id_rsa
- Ora esegui il processo di backup da
example@unixlinux.online:
dt=$(date +%Y-%m-%d_%H-%M-%S)
ssh source "zfs snap storage/example@unixlinux.online_$dt"
ssh source "zfs send -R storage/example@unixlinux.online_$dt" | zfs receive storage/photos
Per farlo in questo modo è necessario no qualsiasi accesso root.