GNU/Linux >> Belajar Linux >  >> Linux

Paksa Izin Baru Pada File Setelah Rsync Dari Seedbox?

Saya memiliki akun seedbox yang saya gunakan untuk torrent. Saya telah menyiapkan tugas cron yang menggunakan rsync untuk mengunduh semua file dari seedbox ke server ubuntu 14.04.1 saya. Folder unduhan adalah samba share, karena saya sebelumnya menggunakan windows untuk mengatur konten ke dalam folder sebelum memindahkannya ke tempat yang lebih permanen di server saya. Sebelum memutakhirkan ke 14,04, saya menggunakan 12,04 dan semuanya bekerja dengan baik.

Masalahnya adalah file yang saya dapatkan dari seedbox dimiliki oleh pengguna bernama "544" (ini adalah nama pengguna yang dihasilkan oleh seedbox, bukan sesuatu yang oktal) dan tidak dapat dihapus oleh pengguna saya di server saya. Setelah mengubah izin pada folder unduhan, saya dapat menghapusnya. Juga, saya telah memberikan izin kepada semua pengguna untuk membaca/menulis di folder samba setelah membagikannya.

Jadi pertanyaan saya adalah ini:Apakah mungkin melalui beberapa perintah elegan yang dijalankan untuk membuat rsync ubah pengguna/izin pada file saat mengunduhnya? Atau mungkinkah membuat folder berfungsi sedemikian rupa sehingga semua file baru akan secara otomatis mengubah pengguna ketika disalin/dipindahkan ke sana? Saya kira saya bisa meletakkan chmod perintah di sudo cron untuk dijalankan sesekali untuk mengubah pemilik file, tetapi karena kadang-kadang jumlah data yang akan diunduh bisa agak besar, sulit untuk mengetahui kapan harus memicunya sehubungan dengan rsync-job untuk memastikan semua file telah diunduh.

Jawaban yang Diterima:

rsync hanya mempertahankan pemiliknya jika Anda memintanya dengan -o — jika tidak, file akan dimiliki oleh pengguna yang menjalankan rsync perintah, sama seperti ketika file lain dibuat. -a termasuk -o , namun, begitu banyak rsync common yang umum baris perintah memasukkannya. man rsync menyertakan bagian tentang ini secara eksplisit:

For example: if you want to use -a (--archive) but don’t want -o
(--owner),  instead  of  converting  -a  into -rlptgD, you could
specify -a --no-o (or -a --no-owner).

Jadi, alih-alih rsync -a source dest anda dapat menggunakan rsync -a --no-o source dest agar file dimiliki oleh pengguna yang menjalankan perintah.

Di sisi lain, Anda biasanya hanya dapat mengubah pemilik file jika Anda melakukan root, jadi ini tidak banyak muncul. Jika perlu menjalankan tugas ini sebagai root karena alasan tertentu, dan Anda ingin file dimiliki oleh pengguna biasa Anda daripada root, Anda dapat menggunakan --chown pilihan:

rsync -a --chown=youruser:yourgroup ...

Ada juga --usermap opsi untuk pemetaan yang lebih rumit, jika Anda ingin mempertahankan beberapa pengguna. Dibutuhkan daftar from:to yang dipisahkan koma berpasangan.

Terkait:perbedaan antara &&dan | dalam skrip bash?

Sebagai opsi terakhir, karena Anda tampaknya menjalankan rsync dari tugas cron, Anda cukup menambahkan operasi pemilik/pengubah izin ke tugas cron dengan && chown ... .


Linux
  1. Cara Menggunakan Rsync untuk Menyinkronkan File Baru atau Berubah/Dimodifikasi di Linux

  2. Bagaimana Cara Menghapus Izin Jalankan Secara Rekursif Dari File Tanpa Menyentuh Folder?

  3. Rsync Apakah Mengubah Izin Direktori?

  1. Percepat rsync saat memigrasi server Linux dari baris perintah

  2. Menggunakan rsync untuk Menyinkronkan File

  3. cp -r tanpa file tersembunyi

  1. Linux setara dengan robocopy?

  2. rsync N file terbaru dalam direktori

  3. Bagaimana cara menggunakan rsync dari PC Windows ke server Linux jarak jauh?