GNU/Linux >> Belajar Linux >  >> Linux

Apa Artinya chmod 777?

Anda mencoba memperbaiki masalah izin dengan server web Anda dan menemukan informasi di Internet, yang mengatakan bahwa Anda perlu chmod 777 secara rekursif direktori web. Sebelum melakukannya, pastikan Anda memahami apa yang dimaksud dengan chmod -R 777 lakukan, dan mengapa Anda tidak boleh menyetel izin ke 777.

Artikel ini menjelaskan model izin Linux dasar dan apa arti angka yang sesuai dengan izin tersebut.

Memahami Izin Berkas Linux #

Di Linux, akses ke file dikendalikan oleh sistem operasi menggunakan izin file, atribut, dan kepemilikan. Memahami model izin sistem file Linux memungkinkan Anda membatasi akses ke file dan direktori hanya untuk pengguna dan proses yang berwenang dan membuat sistem Anda lebih aman.

Setiap file dimiliki oleh pengguna dan grup tertentu dan ditetapkan dengan hak akses izin untuk tiga kelas pengguna yang berbeda:

  • Pemilik file.
  • Anggota grup.
  • Lainnya (semua orang).

Ada tiga jenis izin file yang berlaku untuk setiap kelas pengguna dan memungkinkan Anda untuk menentukan pengguna mana yang diizinkan untuk membaca file, menulis ke file, atau mengeksekusi file. Atribut izin yang sama berlaku untuk file dan direktori dengan arti yang berbeda:

  • Izin membaca.
    • File dapat dibaca. Misalnya, ketika izin baca disetel, pengguna dapat membuka file dalam editor teks.
    • Isi direktori dapat dilihat. Pengguna dapat membuat daftar file di dalam direktori dengan ls perintah.
  • Izin menulis.
    • File dapat diubah atau dimodifikasi.
    • Isi direktori dapat diubah. Pengguna dapat membuat file baru, menghapus file yang ada, memindahkan file, mengganti nama file..dll.
  • Izin eksekusi.
    • File dapat dieksekusi.
    • Direktori dapat dimasukkan menggunakan cd perintah.

Izin file dapat dilihat menggunakan ls memerintah. Ini contohnya:

ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
| |  |  | |      |       |
| |  |  | |      |       +-----------> 7. Group
| |  |  | |      +-------------------> 6. Owner
| |  |  | +--------------------------> 5. Alternate Access Method
| |  |  +----------------------------> 4. Others Permissions
| |  +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type

Karakter pertama menunjukkan jenis file. Ini bisa berupa file biasa (- ), direktori (d ), tautan simbolis(l ), atau jenis file khusus lainnya.

Sembilan karakter berikutnya mewakili hak akses file, tiga kembar tiga masing-masing tiga karakter. Triplet pertama menunjukkan izin pemilik, yang kedua izin grup, dan triplet terakhir menunjukkan izin orang lain.

Nomor izin #

Izin file dapat direpresentasikan dalam format numerik atau simbolis. Dalam artikel ini, kita akan fokus pada format numerik.

Nomor izin dapat terdiri dari tiga atau empat digit, mulai dari 0 hingga 7.

Ketika 3 digit angka digunakan, digit pertama mewakili izin dari pemilik file, yang kedua adalah grup file dan yang terakhir semua pengguna lain.

Izin menulis, membaca, dan mengeksekusi memiliki nilai angka berikut:

  • r (baca) =4
  • w (tulis) =2
  • x (eksekusi) =1
  • tidak ada izin =0

Digit izin dari kelas pengguna tertentu adalah jumlah nilai izin untuk kelas tersebut.

Setiap digit nomor izin dapat berupa jumlah 4, 2, 1, dan 0:

  • 0 (0+0+0) – Tidak ada izin.
  • 1 (0+0+1) – Hanya jalankan izin.
  • 2 (0+2+0) – Hanya izin menulis.
  • 3 (0+2+1) – Menulis dan menjalankan izin.
  • 4 (4+0+0) – Hanya izin baca.
  • 5 (4+0+1) – Membaca dan menjalankan izin.
  • 6 (4+2+0) – Izin baca dan tulis.
  • 7 (4+2+1) – Membaca, menulis, dan menjalankan izin.

Misalnya, jika nomor izin disetel ke 750, artinya pemilik file telah membaca, menulis, dan menjalankan izin, grup file telah membaca dan menjalankan izin, dan pengguna lain tidak memiliki izin:

  • Pemilik:rwx=4+2+1=7
  • Grup:r-x=4+0+1=5
  • Lainnya:r-x=0+0+0=0

Bila 4 digit angka yang digunakan, digit pertama memiliki arti sebagai berikut:

  • setuid=4
  • setgid=2
  • lengket=1
  • tidak ada perubahan =0

Tiga digit berikutnya memiliki arti yang sama seperti ketika menggunakan 3 digit angka. Jika digit pertama adalah 0 dapat dihilangkan, dan mode dapat diwakili dengan 3 digit. Mode numerik 0755 sama dengan 755 .

Untuk melihat izin file dalam notasi numerik (oktal), gunakan stat perintah:

stat -c "%a" filename
644

Jangan Pernah Gunakan chmod 777 #

Menyetel izin 777 ke file atau direktori berarti file atau direktori akan dapat dibaca, ditulis, dan dieksekusi oleh semua pengguna dan dapat menimbulkan risiko keamanan yang besar.

Misalnya, jika Anda mengubah izin semua file dan subdirektori secara rekursif di bawah /var/www direktori ke 777 , setiap pengguna pada sistem akan dapat membuat, menghapus, atau memodifikasi file dalam direktori tersebut.

Jika Anda mengalami masalah izin dengan server web Anda, alih-alih menyetel izin secara rekursif ke 777 , ubah kepemilikan file menjadi pengguna yang menjalankan aplikasi dan setel izin file ke 644 dan izin direktori ke 755 .

Kepemilikan file dapat diubah menggunakan chown perintah dan izin dengan chmod perintah.

Katakanlah Anda memiliki aplikasi PHP di server Anda yang berjalan sebagai pengguna "linuxize". Untuk menyetel izin yang benar, Anda akan menjalankan:

chown -R linuxize: /var/wwwfind /var/www -type d -exec chmod 755 {} \;find /var/www -type f -exec chmod 644 {} \;

Hanya root, pemilik file, atau pengguna dengan hak sudo yang dapat mengubah izin file. Berhati-hatilah saat menggunakan chmod , terutama saat mengubah izin secara rekursif.

Kesimpulan #

Jika Anda mengelola sistem Linux, penting untuk mengetahui cara kerja izin Linux.

Anda tidak boleh menyetel 777 (rwxrwxrwx ) izin file dan izin direktori. 777 berarti siapa pun dapat melakukan apa saja dengan file tersebut.

Jangan ragu untuk meninggalkan komentar jika Anda memiliki pertanyaan.


Linux
  1. Apa Arti Atribut 's' Dalam Izin File ??

  2. Bagaimana jika [[ $? -ne 0 ]]; berarti dalam .ksh

  3. Apa yang dimaksud dengan #define X X?

  1. Apa Artinya “–” (tanda hubung ganda)?

  2. Apa artinya membunuh -3?

  3. Apa artinya \b dalam pola grep?

  1. Apa Artinya `:-` Dalam Skrip Shell?

  2. Apa Artinya Dalam Keluaran Dari Ps?

  3. Apa Arti `chown Root.root $file`?