Lebih
Bagaimana saya mengubah hak akses untuk folder dan semua subfolder dan file dalam satu langkah di Linux?
Saya ingin mengubah hak akses dari folder dan sub folder dan file dalam satu langkah (perintah) di Linux.
Saya sudah mencoba perintah di bawah ini tapi itu hanya bekerja untuk folder yang disebutkan:
chmod 775 /opt/lampp/htdocs
Apakah ada cara untuk mengatur chmod 755
untuk /opt/lampp/htdocs
dan semua isinya termasuk subfolder dan file?
Juga, di masa depan, jika saya membuat folder baru atau file di dalam htdocs
, bagaimana dapat izin dari yang secara otomatis akan diatur ke 755
?
Saya telah melihat di link ini juga:
http://stackoverflow.com/questions/3740187/how-to-set-default-chmod-in-linux-terminal
1701
16
Lain jawaban yang benar, bahwa
chmod -R 755
akan mengatur hak akses ini untuk semua file dan subfolder yang ada di pohon. Tapi mengapa di bumi akan anda ingin? Itu mungkin masuk akal untuk direktori, tapi kenapa mengatur bit eksekusi pada semua file?Saya menduga apa yang anda benar-benar ingin lakukan adalah mengatur direktori ke 755 dan meninggalkan file sendiri atau mengatur mereka ke 644. Untuk ini, anda dapat menggunakan
menemukan
perintah. Misalnya:Untuk mengubah semua folder menjadi 755 (
drwxr-xr-x
):Untuk mengubah semua file 644 (
-rw-r--r--
):Periksa opsi-R
chmod -R <permissionsettings> <dirname>
Di masa depan, anda dapat menghemat banyak waktu dengan memeriksa halaman pertama:
Jadi dalam hal ini:
Jika anda ingin mengatur hak akses pada semua file ke
a+r
, dan semua direktori untuka+x
, dan lakukan itu secara rekursif melalui lengkapi subdirektori pohon, menggunakan:X
(yang adalah ibukotaX
, tidak kecilx
!) diabaikan untuk file (kecuali mereka adalah eksekusi untuk seseorang yang sudah) tapi digunakan untuk direktori.Anda dapat menggunakan
-R
denganchmod
untuk rekursif traversal dari semua file dan subfolder.Anda mungkin perlu sudo seperti itu tergantung pada LAMPU yang diinstal oleh pengguna saat ini atau yang lain:
Untuk mengatur semua subfolder (secara rekursif) menggunakan -R
Yang benar rekursif perintah ini:
-R
: mengubah setiap sub folder termasuk folder saat inichmod 755 -R /opt/lampp/htdocs
akan rekursif mengatur perizinan. Ada's tidak ada cara untuk mengatur hak akses untuk file-file secara otomatis hanya dalam direktori ini yang dibuat setelah anda menetapkan izin, tapi anda bisa mengubah seluruh sistem default file permissions dengan dengan menetapkanumask 022
.Anda mungkin ingin mempertimbangkan jawaban ini diberikan oleh nik pada superuser dan gunakan "satu chmod" untuk semua file/folder seperti ini:
Berikut ini's cara lain untuk mengatur direktori untuk 775 dan file untuk 664.
Ini mungkin terlihat panjang, tapi itu's cukup keren untuk tiga alasan:
manusia
, halaman (lihat di bawah).Perhatikan bahwa saya tidak dikonfirmasi perbedaan kinerja (jika ada) antara larutan ini dan yang hanya menggunakan dua menemukan perintah (seperti dalam Peter Mortensen's solusi). Namun, melihat contoh yang sama di manual adalah mendorong.
Contoh dari
pria menemukan
halaman:Cheers
Gunakan:
Namun, hati-hati dengan itu. Itu benar-benar dapat menyakiti anda jika anda mengubah hak akses dari file-file yang salah/folder.
chmod -R 755 directory_name
bekerja, tapi bagaimana anda akan membuat file baru untuk 755 juga? File's izin menjadi izin default.Anda ingin memastikan bahwa sesuai file dan direktori chmod-ed/izin bagi orang-orang yang tepat. Untuk semua direktori yang anda inginkan
Dan untuk semua gambar, JavaScript, CSS, HTML...nah, anda tidak't mengeksekusi mereka. Jadi gunakan
Tetapi untuk semua kode logika (misalnya kode PHP), anda harus mengatur hak akses sehingga pengguna bisa't melihat bahwa kode:
Untuk Mac OS X 10.7 (Lion), adalah:
Dan ya, seperti semua yang lain mengatakan, berhati-hati ketika melakukan hal ini.
Saya pikir Adam bertanya bagaimana mengubah nilai umask untuk semua proses yang mengikat untuk beroperasi pada
/opt/lampp/htdocs
direktori.Pengguna file-modus pembuatan masker (umask) digunakan untuk menentukan file permission untuk file yang baru dibuat. Hal ini dapat digunakan untuk mengontrol default file permission untuk file baru.
jadi jika anda akan menggunakan beberapa jenis program ftp untuk meng-upload file ke/opt/lampp/htdocs` yang anda butuhkan untuk mengkonfigurasi server ftp anda untuk menggunakan umask yang anda inginkan.
Jika file / direktori yang akan dibuat misalnya dengan php, anda perlu memodifikasi kode php
jika anda akan membuat file / folder dari bash sesi, anda dapat mengatur nilai umask di shell anda profil ~/.bashrc Atau anda dapat mengatur umask di
/etc/bashrc
atau/etc/profile
file untuk semua pengguna. tambahkan baris berikut ke file: umask 022Dan untuk mengubah hak akses untuk yang sudah dibuat file, anda dapat menggunakan cari. Semoga ini bisa membantu.
Ada dua jawaban untuk menemukan file dan menerapkan
chmod
untuk mereka. Pertama adalahmenemukan
file dan menerapkanchmod
seperti menemukan (seperti yang disarankan oleh @WombleGoneBad).Solusi kedua adalah untuk menghasilkan daftar semua file dengan
menemukan
perintah dan menyediakan daftar ini untukchmod
perintah (seperti yang disarankan oleh @lamgesh).Kedua versi ini bekerja bagus selama jumlah file yang dikembalikan oleh
menemukan
perintah lebih kecil. Solusi kedua tampak hebat untuk mata dan lebih mudah dibaca daripada yang pertama. Jika ada sejumlah besar file, solusi kedua kembali kesalahan :daftar Argumen terlalu lama.
Jadi saran saya adalah
chmod -R 755 /opt/lampp/htdocs
jika anda ingin mengubah hak akses dari semua file dan direktori sekaligus.menemukan /opt/lampp/htdocs -type d -exec chmod 755 {} \;
jika jumlah file yang anda gunakan adalah sangat besar. Thetipe-x
pilihan pencarian untuk menemukan jenis file saja, di mana d adalah digunakan untuk mencari direktori, f untuk file dan l untuk link.chmod 755 $(find /path/ke/tempat/dir -type d)
jika tidakIt's sangat sederhana.
Di Terminal pergi ke file manager. contoh:
sudo nemo
. Pergi/opt/
lalu klik Properties → Izin. dan kemudian lain-Lain. Akhirnya, perubahan untuk membuat dan menghapus file dan file akses untuk membaca dan menulis dan klik pada tombol apply... Dan bekerja.