GNU/Linux >> Belajar Linux >  >> Cent OS

Centos – Ubah Semua Izin Folder Dengan 1 Perintah?

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 bahwa X 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.
Terkait:Bisakah saya menghapus folder C:ProgramDataPackage Cache?

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 Anda chmod ,
    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.

Cent OS
  1. Centos – Ganti Nama Semua File Dengan Nama Tertentu?

  2. CentOS / RHEL 7 :Cara mengubah runlevel (target) dengan systemd

  3. Chmod 777 ke folder dan semua isinya

  1. Manajemen Paket CentOS 8 dengan DNF di Baris Perintah

  2. Perintah DD Linux - 15 Contoh dengan Semua Opsi

  3. Linux – Ubah Izin Folder?

  1. Daftar Semua Paket yang Terinstal dengan yum di CentOS 7

  2. Cara Menggunakan Perintah chmod (Ubah Mode) di Linux

  3. Masalah Izin dengan Laravel di CentOS