Dnes jsem narazil na stejný problém. Zjistil jsem, že můžete autorizovat běžné uživatele k provádění určitých operací pomocí příkazu "zfs allow":
jako root proveďte na serveru následující:zfs povolte vašemu_uživatelskému jménu přijímat, vytvářet, připojit úložiště/fotografie
Poté budete moci připojit ssh na server pomocí your_username a budete mít oprávnění zfs pro příjem. Viz zde:http://docs.oracle.com/cd/E19253-01/819-5461/gfkco/index .html
Toto zcela neodstraní přihlášení uživatele root, ale zajistí věci nad rámec plnohodnotného přihlášení.
Nastavte důvěryhodnost SSH zkopírováním veřejného klíče místního uživatele (obvykle ~/.ssh/id_rsa.pub
) do souboru autorizovaných klíčů (~/.ssh/authorized_keys
) pro vzdáleného uživatele. To eliminuje výzvy k zadání hesla a zlepšuje zabezpečení, protože klíče SSH je těžší brutálně vynutit. Pravděpodobně se také budete chtít ujistit, že sshd_config
má PermitRootLogin without-password
-- toto omezuje vzdálené přihlášení root pouze na klíče SSH (i správné heslo selže).
Poté můžete přidat zabezpečení pomocí ForceCommand
direktiva v souboru author_keys, která povolí provedení pouze příkazu zfs.
@analog900 je na správné cestě.
Jedním z klíčů ke zvýšení bezpečnosti, včetně zamezení nutnosti přihlášení uživatele root, je použít vestavěnou strukturu oprávnění ZFS a také strukturovat přenosy záloh opačným směrem „kolem a tahem vaše zálohy přes síť, spíše než je tlačit. Schopnost zálohovat souborové systémy bez přístupu root je jedním z hlavních konstrukčních úspěchů souborového systému ZFS.
Spusťte úlohu na destination
a vytáhněte data z source
, možná něco jako:
- Na zdroji počítači, vytvořte si neprivilegovaný uživatelský účet
foo
a použijtezfs allow
dát tomuto účtu možnost vytvářet a odesílat snímky:
zfs allow foo mount,snapshot,send,hold storage/photos
- Na cíli počítači, vytvořte si neprivilegovaný účet
bar
a dát tomuto účtu možnost přijímat/vytvářet/připojovat souborové systémy:
zfs allow bar mount,create,receive storage/photos
- V cíli jako uživatel
bar
, vytvořte ssh klíč speciálně pro úlohy zálohování. Nainstalujte veřejnou polovinu tohoto klíče do.ssh
adresář uživatelefoo
na zdrojovém stroji. To dává uživateli[email protected]
bezpečný přístup k přihlášení přes ssh na[email protected]
účet. Také upravte soubor ~bar/.ssh/config nadestination
takže automaticky použije správný název souboru klíče SSH (který jste vytvořili dříve) a uživatelské jméno:
Host source
Hostname FQDN.of.source.example.com
User foo
IdentityFile ~bar/.ssh/backup_key_id_rsa
- Nyní spusťte úlohu zálohování z
[email protected]
:
dt=$(date +%Y-%m-%d_%H-%M-%S)
ssh source "zfs snap storage/[email protected]_$dt"
ssh source "zfs send -R storage/[email protected]_$dt" | zfs receive storage/photos
Udělat to tímto způsobem vyžaduje ne root přístup jakýkoli.