Saya ingin memiliki pengguna yang memiliki akses ke semua file dan folder di sistem. Ini untuk tujuan menggunakan RSYNC pada mesin lokal untuk membuat cadangan mesin jarak jauh.
Saat ini kami menggunakan pengguna backups
dan meskipun kami telah menambahkan pengguna ini ke grup sudo
dan admin
rsync masih mengembalikan pesan seperti:
rsync: opendir "/ location / to / folder" gagal: Izin ditolak (13)
rsync: send_files gagal membuka "/ location / to / file": Izin ditolak (13)
Setiap gagasan tentang bagaimana kami memberikan backups
izin kepada pengguna untuk mengakses segalanya (singkatnya menambahkan pengguna ke semua grup - server jarak jauh yang kami coba cadangkan adalah server hosting khusus di mana setiap akun memiliki pengguna sendiri pada sistem).
Terima kasih atas bantuannya.
sumber
/proc
,/dev
dll maka kesalahan akan terjadi.backups
kesudo
danadmin
jangan ubah apa pun./home/a/c/account/users/mail:username
yang memiliki izin sepertidrwx------
dan dimiliki olehmail:4096
. Saya berasumsi bahwa karena penggunabackups
berada dalam grupsudo
atauadmin
tidak memiliki akses karena tidak ada izin akses untuk grup? Saya tidak tahu, tetapi kesalahan pada folder / file seperti itu.rsync
perintah dengan sudo.Jawaban:
Hanya menambahkan pengguna
backups
ke grup penggunasudo
tidak secara otomatis memberikan akses akun ke semua file di sistem. Ini memberi pengguna izin untuk menjalankansudo
perintah.Karena Anda menggunakan otentikasi kunci publik (mungkin tanpa frasa sandi), saya akan melakukan pendekatan ini dengan mempertimbangkan keamanan dan kemudahan implementasi. Menggunakan
ssh
memungkinkan Anda untuk membatasi pengguna untuk hanya menjalankan perintah yang sangat spesifik. Dalam hal ini, Anda dapat mengizinkan penggunabackups
untuk mengeksekusirsync
dengan izin pengguna super.Anda telah melakukan pertukaran kunci dan otentikasi terverifikasi berhasil. Dalam
authorized_keys
file di host jarak jauh tempat Anda mendukung/home
direktori, Anda bisa menambahkancommand=
arahan ke kunci yang digunakan oleh penggunabackups
. Direktif ini hanya akan memungkinkan bahwa perintah yang akan dijalankan ketika itu kunci digunakan untuk otentikasi. Jadi bidang pertama kunci akan terlihat mirip dengan ini:Anda dapat melangkah lebih jauh dan menambahkan lebih banyak opsi ke tombol, seperti
from=myhost,no-pty,no-X11-forwarding
.Ini akan memberi Anda keamanan yang layak dan tidak mengharuskan Anda untuk memodifikasi izin sistem file yang mendasarinya. Anda mungkin perlu bermain dengan perintah yang Anda tempatkan di
authorized_keys
file sampai berfungsi seperti yang Anda harapkan; mungkin butuh sedikit untuk membungkus otak Anda di sekitarnya. Perintah yang ditentukan padaauthorized_keys
dasarnya akan menggantikanrsync
opsi yang akan Anda lewati dari host penghubung.Banyak informasi bagus di
man sshd
. Anda ingin secara khusus membaca bagian FORMAT AUTHORIZED_KEYS.sumber
rsync -e ssh -az [email protected]:/home /location/of/local/folder
untuk memerintahkannya berjalan sebagai superuser pada mesin jarak jauh? Atau akankah itu melakukannya secara otomatis? Terima kasih atas waktu dan bantuan Anda. :)Salah satu opsi adalah menjalankan server rsync pada sistem jarak jauh.
Pada dasarnya, buat
rsync.conf
denganuid=root
kemudian gunakanrsync -az rsync://domain.com
.Lihat http://pastebin.com/5hQx1mRV untuk contoh yang ditulis orang lain dan Mengkonfigurasi daemon rsync untuk beberapa dasar mengaktifkan server di Ubuntu.
Perhatikan bahwa Anda harus mempertimbangkan keamanan ini. Pendekatan yang lebih baik mungkin untuk membuat sistem jarak jauh mendorong ke sistem lokal Anda.
sumber
/backup/lc
folder di server jauh? Apakah saya mengubahpath
sedikit agar bisa/home
berfungsi?Anda mungkin dapat menggunakan ACL jika sistem file yang mendasarinya mendukungnya.
Anda harus menambahkan cadangan grup di ACL dari setiap file dan direktori. Tetapi untuk ditambahkan secara otomatis untuk file dan direktori yang baru dibuat, Anda harus terlebih dahulu mengatur ACL default untuk semua direktori yang ada. Jadi pada server jarak jauh:
Maka Anda harus memiliki izin rx untuk semua direktori yang ada dan membaca file. Anda dapat melakukan ini dengan 2 perintah (tanpa -d saat ini)
Ini akan memberi Anda izin ekstra untuk membaca file ke cadangan grup tanpa mengubah pengguna dan grup yang ada yang memiliki setiap file.
Catatan: untuk mempercepat pencarian | perintah xargs Anda dapat menambahkan opsi berikut ke perintah xargs:
-P n
dengan n jumlah proses paralel. Anda dapat mengaturnya ke jumlah cpu yang Anda miliki di mesin Anda + 1.sumber
sudo setfacl -Rm d:group:backup:r-X,group:backup:r-X /home
:) jauh lebih sederhana!