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
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
):
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
Untuk mengubah semua file 644 (-rw-r--r--
):
find /opt/lampp/htdocs -type f -exec chmod 644 {} \;
Jika anda ingin mengatur hak akses pada semua file ke a+r
, dan semua direktori untuk a+x
, dan lakukan itu secara rekursif melalui lengkapi subdirektori pohon, menggunakan:
chmod -R a+rX *
X
(yang adalah ibukota X
, tidak kecil x
!) diabaikan untuk file (kecuali mereka adalah eksekusi untuk seseorang yang sudah) tapi digunakan untuk direktori.
Anda dapat menggunakan -R
dengan chmod
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:
sudo chmod 755 -R /opt/lampp/htdocs
Yang benar rekursif perintah ini:
sudo chmod 755 -R /opt/lampp/htdocs
-R
: mengubah setiap sub folder termasuk folder saat ini
chmod 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 menetapkan umask 022
.
Anda mungkin ingin mempertimbangkan jawaban ini diberikan oleh nik pada superuser dan gunakan "satu chmod" untuk semua file/folder seperti ini:
chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
Berikut ini's cara lain untuk mengatur direktori untuk 775 dan file untuk 664.
find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)
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:
find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)
Traverse the filesystem just once, listing setuid files and direc‐
tories into /root/suid.txt and large files into /root/big.txt.
Cheers
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
find /opt/lampp/htdocs -type d -exec chmod 711 {} \;
Dan untuk semua gambar, JavaScript, CSS, HTML...nah, anda tidak't mengeksekusi mereka. Jadi gunakan
chmod 644 img/* js/* html/*
Tetapi untuk semua kode logika (misalnya kode PHP), anda harus mengatur hak akses sehingga pengguna bisa't melihat bahwa kode:
chmod 600 file
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
<?php
umask(0022);
// other code
?>
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 022
Sample umask Values and File Creation Permissions
If umask value set to User permission Group permission Others permission
000 all all all
007 all all none
027 all read / execute none
Dan 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 adalah menemukan
file dan menerapkan chmod
seperti menemukan (seperti yang disarankan oleh @WombleGoneBad).
find /opt/lampp/htdocs -type d -exec chmod 755 {} \;
Solusi kedua adalah untuk menghasilkan daftar semua file dengan menemukan
perintah dan menyediakan daftar ini untuk chmod
perintah (seperti yang disarankan oleh @lamgesh).
chmod 755 $(find /path/to/base/dir -type d)
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. The tipe-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.