Saya menemukan masalah yang sama sebelumnya hari ini. Saya menemukan bahwa Anda dapat memberi otorisasi kepada pengguna biasa untuk melakukan operasi tertentu dengan perintah "zfs allow":
sebagai root, lakukan hal berikut di server:zfs memungkinkan nama_pengguna Anda menerima, membuat, memasang penyimpanan/foto
Setelah itu, Anda akan dapat ssh ke server menggunakan your_username dan Anda akan memiliki hak istimewa zfs untuk menerima. Lihat di sini:http://docs.Oracle.com/cd/E19253-01/819-5461/gfkco/index .html
Ini tidak sepenuhnya menghapus login root, tetapi mengamankan hal-hal di luar login berfitur lengkap.
Siapkan kepercayaan SSH dengan menyalin kunci publik pengguna lokal (biasanya ~/.ssh/id_rsa.pub ) ke file authorized_keys (~/.ssh/authorized_keys ) untuk pengguna jarak jauh. Ini menghilangkan permintaan kata sandi, dan meningkatkan keamanan karena kunci SSH lebih sulit untuk di-bruteforce. Anda mungkin juga ingin memastikan bahwa sshd_config memiliki PermitRootLogin without-password -- ini membatasi login root jarak jauh hanya ke kunci SSH (bahkan kata sandi yang benar pun akan gagal).
Anda kemudian dapat menambahkan keamanan dengan menggunakan ForceCommand direktif dalam file authorized_keys untuk mengizinkan hanya perintah zfs yang dieksekusi.
@analog900 berada di jalur yang benar.
Salah satu kunci untuk meningkatkan keamanan, termasuk menghindari kebutuhan login root, adalah dengan menggunakan struktur izin bawaan ZFS, dan juga menyusun transfer cadangan Anda dengan cara lain 'round and pull cadangan Anda melalui jaringan, daripada mendorongnya. Kemampuan untuk mencadangkan sistem file tanpa akses root adalah salah satu pencapaian desain utama sistem file ZFS.
Jalankan tugas di destination dan tarik data dari source , mungkin sesuatu seperti:
- Pada sumber mesin, buat akun pengguna non-istimewa
foodan gunakanzfs allowuntuk memberikan akun tersebut kemampuan untuk membuat dan mengirim snapshot:
zfs allow foo mount,snapshot,send,hold storage/photos
- Di tujuan mesin, buat akun non-istimewa
bardan berikan akun itu kemampuan untuk menerima/membuat/memasang sistem file:
zfs allow bar mount,create,receive storage/photos
- Di tempat tujuan, sebagai pengguna
bar, buat kunci ssh khusus untuk pekerjaan cadangan. Instal separuh publik dari kunci itu di.sshdirektori penggunafoopada mesin sumber. Ini memberi penggunaexample@unixlinux.onlineakses login ssh yang aman keexample@unixlinux.onlineAkun. Juga, edit file ~bar/.ssh/config padadestinationsehingga secara otomatis menggunakan nama file kunci SSH yang benar (yang Anda buat sebelumnya) dan nama pengguna:
Host source
Hostname FQDN.of.source.example.com
User foo
IdentityFile ~bar/.ssh/backup_key_id_rsa
- Sekarang jalankan tugas pencadangan Anda dari
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
Melakukannya dengan cara ini membutuhkan tidak akses root apa pun.