chown mengubah izin secara rekursif

34

Saya menjalankan perintah chown di direktori:

chown -R user:user {.,}*

Ini {.,}*digunakan dengan mvdan cpuntuk menyertakan file tersembunyi dan yang terdaftar. Sekarang perintah ini masuk dan mengubah dua file di direktori saya, tetapi saya harus memecahnya untuk berhenti sejak itu berjalan. Sekarang saya khawatir itu sudah hilang dan mengubah izin pada file dan folder lain, karena itu tidak berakhir.

nicoX
sumber

Jawaban:

46

Dengan menggunakan {.,}*, Anda memasukkan keduanya ./dan ../. Seiring dengan -Ropsi, chownpanggilan Anda akan menelusuri seluruh sistem file Anda (dan yang lainnya, mungkin dipasang), melalui ../. Dengan perintah lain, kesalahan kecil ini bisa sangat mematikan, tapi percayalah, Anda bukan yang pertama, dan Anda tidak akan menjadi yang terakhir ...

Karena operasi ini cukup berat, chownpanggilan Anda digantung beberapa saat, karena banyak file yang harus diproses. Saya sarankan Anda kembali ke direktori tempat Anda menelepon, dan kembali secara progresif /untuk melihat perubahan apa yang dilakukan. Anda mungkin dapat menerapkan perbaikan cepat dengan melakukan:

chown root:root /* # Set ownership to root for all directories in /.
chown you:yourgroup /home/you -R # Take your home back.

Di Ubuntu, /homedirektori diberikan kepada pengguna (admin / sudo) pertama yang terdaftar di sistem. Jika Anda satu-satunya pengguna, Anda mungkin ingin melakukannya:

chown you:yourgroup /home -R

Namun, sederhana chmod 755pada /homecukup, bahkan jika itu milik root.

Memiliki pandangan cepat langsung /(termasuk izin root itu sendiri, ls -ld /) juga akan menjadi tempat yang bagus untuk memulai. Saya sarankan Anda memastikan itu /milik root, dengan set 755 izin.

Jika dulu Anda chownmengatur kepemilikan yang sangat spesifik (pengguna selain Anda atau root, grup langka, ...), Anda mungkin ingin menggunakannya finduntuk mencari chownfile-file yang baru.

find / -user {username}
find / -group {groupname}

Sayangnya, tidak ada hal seperti undoapa yang Anda lakukan. Linux tidak secara alami melacak operasi "biasa" ini.

Untuk informasi lebih lanjut tentang apa yang ingin Anda capai, lihat pertanyaan SuperUser ini .

John WH Smith
sumber
Direktori root saya sepertinya bagus. Dimiliki oleh root.
nicoX
Anda pasti telah membunuh chowntepat waktu, tetapi terus memeriksa, pergi dari direktori tempat Anda mengeksekusi chown, ke root.
John WH Smith
Apakah masalah di sini bahwa saya menggunakan flag -R? Dan bagaimana Anda bisa mengubah pemilik dalam satu perintah untuk file yang tersembunyi dan yang terdaftar.
nicoX
2
Lihat tautan yang saya tambahkan di akhir jawaban saya. Masalahnya -Radalah, karena Anda secara rekursif ..juga berhasil, yang akhirnya membawa Anda untuk mengubah seluruh pohon file dari /deep/directory/where/you/chownedmenjadi /.
John WH Smith