Cara Mengubah Pemilik Direktori

14

EDIT : Masalahnya adalah Apple menggunakan izin untuk menandai cadangan dan mencegah Anda memodifikasinya (mungkin fitur keamanan). Dengan menggunakan chmod -RN <dir>saya menghapus data ACL dari semua folder dengan data penting dan yang memungkinkan saya untuk menjadikan diri saya pemilik dan menerapkan izin yang sesuai.

Pertanyaan awal
Saya memiliki cadangan yang sangat besar (> 700GB) yang sekarang memiliki izin yang salah (UID saya berubah saat instalasi bersih, cerita panjang) dan saya perlu mengubahnya. Opsi yang memakan waktu adalah secara manual melalui setiap folder dan mengubah izin tetapi itu akan memakan waktu lama.

Saya ingin menggunakan chownuntuk menjadikan diri saya pemilik semua data penting saya dan kemudian menggunakan chmod 700semua folder itu untuk memberikan rwxizin hanya kepada saya.

Solusi yang ideal adalah beberapa metode menggunakan finduntuk secara rekursif mencari folder yang cocok dengan regex (yang sekarang adalah saya .*/[DCV].*|Pictures|M[ou].*) dan kemudian membuat UID saya pemilik dan mengatur izin ke 700.

Bagian penting yang tidak dapat saya pahami:
Namun, ketika saya mencoba lari chown Me DirectoryNamesaya mengerti chown: DirectoryName: Operation not permitted.

Semua yang saya temukan terkait dengan mengubah izin file dan bukan direktori. Mungkin saya melihat ini dengan cara yang salah?
Sesuatu memberi tahu saya bahwa tidak ada cara untuk memberikan UID saya rwxdan ---kepada orang lain.

Bagaimana saya bisa mencapai ini? Saya menjalankan Mac OS X 10.10.3.

Saya tahu bahwa ini adalah forum UNIX / Linux (dan saya sedang menjalankan Mac) tetapi pertanyaan ini adalah lebih banyak tentang menggunakan shell, chown, chmod, dan hak akses dan solusi setiap diposting di sini akan berlaku untuk setiap OS berbasis UNIX. Akan lebih baik jika solusi yang diposting akan membuat backup saya yang lebih lama muncul kembali di Time Machine.

Terima kasih untuk semua yang segera menjawab, tetapi chownsepertinya tidak bekerja pada direktori karena suatu alasan. Apakah fakta bahwa ini adalah .sparsebundlegambar disk pada drive jaringan yang relevan? Saya berasumsi itu akan sama dengan pada drive eksternal.

Arc676
sumber
Jenis drive jaringan apa? Jika NFS, ada peluang bagus diekspor dengan root_squashdiaktifkan, sehingga Anda tidak akan dapat melakukan operasi root saja seperti chowndari klien.
Toby Speight
Ini adalah HDD di dalam Apple Time Capsule. Pada dasarnya ini adalah disk yang dilindungi kata sandi di dalam stasiun pangkalan WiFi. Satu-satunya perbedaan adalah bahwa HDD terhubung ke komputer Anda melalui ethernet. Sebenarnya ada port USB tapi saya belum pernah menggunakannya.
Arc676
Kalau tidak, standar find . -user $other_uid -print0 | sudo xargs chown $USERharus bekerja.
Toby Speight
Sistem file jaringan apa? df -hT <dirname>harus memberitahumu.
Toby Speight
@TobySpeight df -hT <dir>memberikan tidak ada output untuk) direktori root dari jaringan HDD b) disk image di dalam jaringan HDD c) setiap folder di HDD jaringan. Mungkin perilaku yang Anda maksudkan diimplementasikan secara berbeda pada Mac dan Linux?
Arc676

Jawaban:

23

Saya mungkin salah paham. Tetapi Anda dapat secara rekursif menggunakan chmod dan chown misalnya.

chown -R username:username /path/directory

Untuk secara rekursif menerapkan izin 700 Anda dapat menggunakan:

chmod -r 700 /path/directory

Tentu saja di atas adalah untuk Linux jadi tidak yakin apakah mac osx sama.

EDIT: Ya maaf lupa menyebutkan Anda perlu menjadi root untuk chown sesuatu, saya hanya berasumsi Anda tahu ini ... buruk saya.

dakka
sumber
1
Mac OS menggunakan sintaks yang sama. Untuk menjalankan perintah sebagai root, cara termudah pada Mac adalah dengan awalan sudo, jadi sudo chmod(Anda akan diminta kata sandi dengan akses Adminstrator).
mjturner
2

coba sebagai root

 find wherever -type d -name ... -exec chown Me {} \;

dimana

  • -type d hanya berlaku untuk dir
  • -name ... regexp Anda
  • -exec chown Me {} \; gunakan chown pada find dir.

Anda harus menjadi root untuk chown.

Archemar
sumber