GNU/Linux >> Belajar Linux >  >> Linux

Cara Menjaga Kepemilikan Dan Izin File Tetap Utuh Saat Menyalin File Atau Direktori

Suatu hari saya berencana untuk membuat cadangan beberapa data dari sistem desktop Ubuntu saya ke drive USB eksternal. Setelah saya mentransfer semua data ke drive eksternal, saya perhatikan bahwa pemilik dan izin file dan direktori pada sumber dan tujuan berbeda. Namun, saya ingin menjaga atribut file yang ada (seperti pemilik, grup, dan stempel waktu, dll.) tetap utuh di kedua lokasi. Setelah pencarian Google cepat dan melalui halaman manual dari perintah "cp", saya menemukan bahwa kita dapat menjaga kepemilikan dan izin file tetap utuh saat menyalin file dan direktori di Linux. Jika Anda pernah berada dalam situasi seperti ini, berikut adalah solusi cepat untuk melakukannya.

Jaga Kepemilikan Dan Izin File Tetap Utuh Saat Menyalin File Atau Direktori Di Linux

cp perintah memiliki opsi untuk menyalin file dan direktori tetapi mempertahankan waktu modifikasi, waktu akses, dan mode dari file asli.

$ cp -rp ~/data /media/sk/sk_seagate/data/

Di sini, saya menyalin konten folder bernama "data" ke drive eksternal saya.

Dari cp halaman manual perintah:

-p     same as --preserve=mode,ownership,timestamps

       --preserve[=ATTR_LIST]
              preserve the specified attributes (default: mode,ownership,timestamps), if possible
              additional attributes: context, links, xattr, all

Jadi, jika Anda menggunakan -p flag, ini akan mempertahankan semua atribut file yang ada seperti mode, kepemilikan, dan stempel waktu dari file asli.

Dan "-r" flag digunakan di sini untuk menyalin direktori secara rekursif. Artinya - itu akan menyalin direktori dan sub-direktori dan filenya.

Atau, Anda dapat menggunakan -a bendera. Ini menyertakan flag -r dan mempertahankan semuanya, seperti tautan, xattr, atribut SELinux, dll.

$ cp -a ~/data /media/sk/sk_seagate/data/

Dari halaman manual perintah cp:

-a, --archive
              same as -dR --preserve=all

Untuk memverifikasi apakah izin dan kepemilikan file utuh, gunakan getfacl perintah di kedua lokasi yaitu sumber dan tujuan.

$ getfacl ~/data
$ getfacl /media/sk/sk_seagate/data/

Jika Anda ingin menyalin file antara dari sistem lokal ke sistem jarak jauh di jaringan yang sama, Anda dapat menggunakan "scp" perintah untuk mentransfer file dari satu sistem ke sistem lain seperti di bawah ini.

$ scp -rp ~/data [email protected]:/home/senthil/

Perintah di atas akan menyalin folder isi bernama "data" dari sistem lokal saya ke sistem jarak jauh. Di sini, 192168.225.22 adalah alamat IP sistem jarak jauh saya dan "senthil" adalah nama pengguna sistem jarak jauh.

Periksa izin file dan kepemilikan direktori "data" di kedua sistem menggunakan perintah "getfacl".

Pertama, periksa atribut file dari direktori "data" di sistem lokal:

$ getfacl data/

Contoh keluaran:

# file: data/
# owner: sk
# group: sk
user::rwx
group::rwx
other::r-x

Selanjutnya, periksa atribut file direktori "data" pada sistem jarak jauh. Anda dapat langsung masuk ke sistem jarak jauh dan memeriksa atribut fie dari direktori jarak jauh melalui perintah ssh seperti di bawah ini.

$ ssh [email protected] getfacl data

Contoh keluaran:

[email protected]'s password:
# file: data
# owner: senthil
# group: senthil
user::rwx
group::rwx
other::r-x

Seperti yang mungkin Anda perhatikan pada output di atas, informasi pemilik dan grup (yaitu senthil) berbeda di sistem jarak jauh saya. Karena, -p flag perintah scp tidak mempertahankan semua izin.

Dari halaman manual perintah scp:

-p      Preserves modification times, access times, and modes from the original file.

Jelas bahwa -p flag hanya akan mempertahankan waktu modifikasi, waktu akses, dan mode dari file asli, tetapi bukan kepemilikannya . Dalam kasus seperti itu, Anda dapat membuat nama pengguna yang sama di kedua sistem dan mencoba perintah di atas untuk membawa kepemilikan dan izin file yang sama pada sistem yang berbeda. Atau cukup gunakan perintah "chown" pada sistem tujuan untuk mengubah kepemilikan.

Untuk detail lebih lanjut, lihat halaman manual dari perintah cp dan scp.

$ man cp
$ man scp

Bacaan yang disarankan:

  • Cara Menyalin File Dan Mengubah Kepemilikan, Izin Pada Saat Yang Sama

Semoga membantu.


Linux
  1. Cara Menyalin File Dan Mengubah Kepemilikan, Izin Pada Saat Yang Sama

  2. Cara mengekstrak file .gz dan .tar.gz di Linux

  3. Cara memasang dan memasang sistem file di Linux

  1. Cara Menyalin Izin dan Kepemilikan File ke File Lain di Linux

  2. Cara Menghapus File dan Direktori di Linux dari Command Line

  3. Bagaimana cara menghapus file .fuse_hidden*?

  1. Cara mengubah izin untuk file dan direktori

  2. Linux chmod and chown – Cara Mengubah Izin dan Kepemilikan File di Linux

  3. Bagaimana Mendaftar Ukuran File Rekursif Dari File Dan Direktori Di Direktori?