Di dalam direktori aplikasi web saya, bagaimana saya bisa mengubah semua izin folder saya menjadi rwxr-xr-x
(755)? Dan bagaimana saya bisa mengubah semua izin file ke rw-r--r--
(644)? Saya ingin mengubah semua folder dan file termasuk sub-sub file dan folder.
Saya tahu perintah berikut akan mengubah semua file dan folder, tetapi saya ingin membedakan antara file dan folder.
chmod -R 755 ./my_web_app_project
Jawaban yang Diterima:
Salah satu cara untuk melakukan apa yang Anda inginkan dengan satu find
perintahnya adalah
find my_web_app_project '(' -type f -exec chmod 644 {} ';' ')' -o '(' -type d -exec chmod 755 {} ';' ')'
-o
berarti ATAU.
Perintah ini memproses semua objek di pohon proyek
yang bertipe “file” atau ketik "direktori",
dan jalankan perintah yang berbeda berdasarkan jenis setiap objek.
Anda dapat membuatnya sedikit lebih efisien
dengan mengganti titik koma (';'
) dengan tanda plus (+
);
ini memberitahu find
untuk menjalankan chmod 644
sekali, dengan semua nama file biasa sebagai argumen,
dan untuk menjalankan chmod 755
sekali, dengan semua nama direktori sebagai argumen.
Omong-omong, Anda tidak perlu mengatakan ./
untuk apa pun selain menjalankan program di direktori saat ini
(walaupun terkadang berguna
untuk memanipulasi file yang namanya dimulai dengan beberapa karakter khusus).
Saya ingin tahu seperti apa izin Anda sekarang
(sebelum menjalankan chmod
di seluruh pohon rekursif ).
File biasanya tidak mengaktifkan bit izin eksekusinya
kecuali jika file tersebut benar-benar program yang dapat dieksekusi,
atau Anda tidak sengaja melakukan sesuatu seperti chmod -R 755
.
Direktori umumnya tidak menonaktifkan bit izin eksekusinya
kecuali jika Anda telah melakukan sesuatu yang fatal seperti chmod -R 644
.
Jika izin Anda sangat kacau
karena Anda telah melakukan chmod -R
yang keliru dengan mode numerik,
abaikan bagian ini
dan tetap gunakan perintah di awal jawaban ini.
Namun, jika izin Anda umumnya waras,
dan Anda hanya ingin menerapkan standar
izin baca/tulis untuk pengguna,
dan izin baca-saja untuk semua orang (grup dan dunia ),
bisa kok
chmod -R +rX,u+w,go-w my_web_app_project
di mana
+rX
artinya+r,+X
(perhatikan bahwaX
dikapitalisasi — ini penting).+r
berarti mengatur izin baca untuk pengguna, grup, dan lainnya.+X
berarti mengatur izin eksekusi untuk pengguna, grup, dan lainnya jika saat ini disetel untuk salah satu dari mereka atau jika objeknya adalah direktori .
u+w
berarti mengatur izin menulis untuk pengguna.go-w
artinya matikan izin menulis untuk grup dan lainnya.
Ringkasan beberapa poin penting:
- Tentu saja Anda bisa
chmod
hanya hal-hal yang Anda miliki
(kecuali Anda memiliki hak istimewa) dan bukan hanya-baca.
Jika ada hal-hal di direktori Anda yang tidak dapat Andachmod
,
salah satu dari perintah ini akan menyebabkan kesalahan. find
perintah tidak akan melakukan apa pun pada hal
yang bukan direktori atau file (mis., bernama pipa).find
perintah dengan-exec chmod 755 {} +
mungkin gagal
jika Anda belum memiliki izin membaca dan menjalankan semua folder
di bawah direktori tingkat atas Anda.chmod -R +rX,u+w,go-w
perintah akan- setel semua direktori ke mode 755,
- abaikan tautan simbolik,
- untuk semua jenis file lainnya (termasuk, misalnya, pipa bernama):
- setel ke 755 jika sudah memiliki setidaknya satu
x
sedikit; jika tidak, - setel ke 644.
- setel ke 755 jika sudah memiliki setidaknya satu