Chmod mengizinkan izin baca dan tulis untuk direktori

62

Saya telah membuat direktori di root. Saya mencari chmodperintah untuk memungkinkan semua pengguna membaca dan menulis izin ke direktori tertentu. Saya telah melakukan chmod 775untuk file tetapi saya perlu ini untuk direktori. Ini termasuk izin pada semua file dan sub direktori.

chrissygormley
sumber

Jawaban:

34

0775jarang benar untuk suatu file. Berikut ini akan menambahkan izin yang diinginkan sesuai dengan jenis yang sesuai, tanpa mengganggu izin lain yang ada:

find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

Lihat halaman manual untuk menemukan untuk membantu menguraikan itu.

Ignacio Vazquez-Abrams
sumber
48

Bagi semua pengguna untuk memiliki akses baca dan tulis, itu akan 0777sedikit berbahaya, terutama jika Anda menjalankan server web. Seperti @unwind berkata:

chmod -R 0777 /mydirectory Akan memungkinkan semua pengguna membaca dan menulis akses ke semua file dan folder dalam direktori itu

Tergantung pada tujuan Anda, Anda mungkin ingin membaca tentang bit sticky, yang memungkinkan semua pengguna untuk membuat file baru, tetapi tidak untuk menghapus atau mengedit file lain di direktori:

chmod +t /mydirectory

Juga, jika Anda tidak tahu man chmodakan memunculkan halaman manual untuk chmodperintah, yang Anda dapat mencari teks "rekursif" dengan mengetik/recursive


sumber
15

Itu bukan cara model perlindungan Unix bekerja, Anda tidak dapat mengatur izin secara rekursif. Anda perlu mengaturnya di setiap direktori, sepanjang "turun".

Tentu saja Anda dapat melakukan pengaturan secara rekursif, tetapi itu hanya berarti "melewati dan mengatur izin ini pada semua file dan folder di bawah", yang bukan bagaimana saya memahami pertanyaan Anda.

Untuk melakukannya, gunakan opsi -R untuk chmod:

$ chmod -R 0755 /my-cool-directory
beristirahat
sumber
@wwind - Maksud saya setiap file dan sub direktori dari direktori yang saya chmod telah baca dan tulis izinnya untuk semua. Apakah itu yang dilakukan perintah ini? Terima kasih
1
Ketika saya meletakkan -r sebelum 0755 saya mendapatkan 0755 - tidak ada file atau direktori seperti itu .. meletakkan -r setelah menyelesaikan masalah saya.
Tim Mottram
"lakukan". lol. bagus.
ytpillai