- Buat
mybackup
akun pengguna baru yang terpisah di klien dan server
- Kunci kata sandi
sudo passwd -l mybackup
untuk akun ini untuk mencegah masuk langsung
- Izinkan, melalui
sudo
, mereka account baru untuk menjalankan sangat spesifik /usr/bin/rsync/ --some-long-command /from/here /to/there
perintah sebagai root dengan NOPASSWD:
di /etc/sudoers
menggunakansudo visudo
- Buat kunci SSH tanpa kata sandi baru untuk lokal ke host jarak jauh menggunakan
sudo -u mybackup ssh-keygen
- Tambahkan ke
sudo -u crontab -e
satu atau ujung lainnya untuk menjalankan remote rsync
menggunakan ssh
dan kunci sebagai transportasi
Dengan cara ini, satu-satunya perintah yang dapat dijalankan sebagai root adalah perintah yang telah Anda izinkan secara eksplisit, dan satu-satunya pengguna jarak jauh yang dapat mengaktifkannya adalah pemegang separuh lain dari sif kunci ssh yang dipasang, yang juga memiliki kata sandi terkunci hanya bisa seseorang dengan sudo mengakses diri mereka sendiri, atau crontab yang Anda atur.
sudo rsync
dan memungkinkan pengguna untuk memilih opsi yang diteruskan ke rsync berarti bahwa pengguna dapat menggunakan rsync untuk membaca / menulis/etc/sudoers
file misalnya, dan memberikan dirinya sendiri akses sudo penuh.Anda dapat mengedit
/etc/sudoers
untuk mengizinkan pengguna apa pun yang menjalankan perintah (atau semua pengguna) untuk menjalankannyaroot
tanpa kata sandi (mungkin agak berbahaya dengan rsync).Tidak bisakah Anda menjalankan seluruh perintah / skrip / apa pun
root
? Saya menganggap ini akan dijalankan melalui cron jadi tambahkan sajaroot
pekerjaan melalui:Catatan: Anda dapat melakukan hal-hal yang cukup rumit dengan membungkus perintah cron Anda di
bash -e "..."
penjepit atau hanya melakukannya dalam skrip terpisah. Dengan asumsi itu tidak ditetapkan, jikaroot
dijalankan (melaluicron
), itu akan berjalanroot
sehingga harus menyelesaikan masalah izin Anda.sumber
sudo
oleh pengguna normal. Itu akan lebih aman daripada sekadar membiarkanrsync
.Anda bisa (tetapi tidak boleh) memberikan kata sandi kepada pengguna root
Sunting: Setuid bit tidak berfungsi untuk skrip. Kalau tidak, Anda bisa menggunakan bit setuid pada program cadangan.
Mungkin, Anda bahkan ingin menjalankan backup sebagai tugas cron?
sumber
sudo whoami
Pengembalian, root) jadisudo passwd
dibutuhkan.