Saya memiliki dua file dalam direktori. Yang satu memiliki izin yang benar dan yang lainnya tidak. Apakah ada cara saya bisa "menyalin" set izin dari satu file ke file lainnya?
unix
permissions
file-management
Svish
sumber
sumber
--reference
pilihan disertakan dalam versi GNU; OSX mungkin menggunakan chmod yang berasal dari BSD sebagai gantinya. OSX man chmod : developer.apple.com/Mac/library/documentation/Darwin/Reference/…cp -dpR <source-file> <dest-file>
kehendak, saat menyalin file, copy perizinan serta file.r yangSaya datang dengan ini:
Ini bukan bukti peluru sepenuhnya, tetapi melakukan apa yang saya butuhkan.
sumber
coba ini:
find /PATH/TO/TARGET -exec chmod --reference /PATH/TO/SOURCE/{} {} \;
ini akan naik secara berulang dan chmod setiap file, jika dua direktori tidak cocok pada file Anda akan melihat banyak kesalahan "Tidak ada file atau direktori".
sumber
find /home/myubuntuuser/Desktop/test1 -exec chmod --reference /home/myubuntuuser/Desktop/test2/{} {} \;
Anda dapat menggunakan
getfacl
untuk mengambil daftar lengkap izin file, pemilik, grup, dan ACL tambahan (daftar kontrol akses).Jika Anda menyimpan output itu ke file (misalnya
acl.txt
), Anda dapat mengembalikan dari format ini dengansetfacl --restore acl.txt
. Jika Anda hanya ingin mengembalikan satu file, dan file itu memiliki nama file yang berbeda dengan aslinya, Anda akan ingin menggunakansetfacl --set-file acl.txt filename.txt
(di manafilename.txt
nama file baru).Langkah
Simpan izin asli ke
acl.txt
:Timpa izin (untuk demonstrasi; ini hanya agar Anda dapat melihatnya memulihkannya di langkah berikutnya berfungsi)
Gunakan
setfacl
untuk mengembalikan izin yang benar dariacl.txt
:Nama file diambil dari
# file:
komentar yang dihasilkan olehgetfacl
, jadi tidak perlu menentukannya di baris perintah.Jika Anda ingin mengembalikan izin tersebut ke file lain, Anda dapat menggunakan
--set-file
alih-alih--restore
seperti itu:Contoh
Jika Anda akhirnya menimpa izin pada beberapa file
/usr
, tetapi Anda tidak tahu file apa yang Anda timpa, Anda biasanya dapat memperbaikinya dengan mengembalikan dari sistem lain yang dikonfigurasi dengan cara yang sama.Izin cadangan dari sistem kerja (catatan:
getfacl
menghasilkan jalur relatif, jadi pastikan Andacd
ke lokasi yang konsisten di kedua mesin)Salin dump ACL ke sistem dengan izin yang rusak
Kembalikan dump ACL untuk menimpa izin yang rusak dengan izin dari mesin yang dikenal baik
sumber