GNU/Linux >> Belajar Linux >  >> Linux

Izin Linux:Pengantar chmod

[Ingin mencoba Red Hat Enterprise Linux? Unduh sekarang secara gratis.]

Jika Anda pernah menggunakan sistem Linux, Anda pasti pernah berurusan dengan file, dan itu berarti Anda mungkin menemukan pesan seperti di bawah ini:

localhost@user1$ cat /etc/sudoers
cat: /etc/sudoers: Permission denied

Atau, mirip dengan ini, pesan kesalahan seperti "Anda tidak memiliki izin untuk mengunggah file ke folder ini", yang mungkin mencegah Anda membaca, menulis, atau mengakses file tertentu. Dan, tentu saja, kesalahan ini mungkin membuat Anda bertanya-tanya—setidaknya pertama kali Anda mengalami masalah ini—mengapa Anda ditolak aksesnya.

Mari kita lihat izin file Linux dan cara untuk membatasinya, ditambah bermain dengan file sedikit. Saat Anda membuat daftar file di direktori tertentu di Linux, Anda mungkin pernah melihat r, w, dan x, dan bertanya-tanya apa arti huruf-huruf ini. Mereka memiliki signifikansi yang luar biasa dalam menentukan apa yang sebenarnya dapat dilakukan pengguna tertentu dengan sebuah file.

Mari kita lihat contohnya:

localhost@user1$ ls -ltr chmod_directory/
total 0
-rw-r--r--. 1 creator creator 0 Jul 29 21:55 I_Can_Write.txt
-rw-r--r--. 1 creator creator 0 Jul 29 21:55 I_Can_Execute.sh
-rw-r--r--. 1 creator creator 0 Jul 29 21:55 I_Can_Access.txt

Izin file default adalah rw-r--r-- (dari nilai umask (dibahas nanti dalam artikel)), seperti yang ditunjukkan pada contoh di atas.

Setiap izin memiliki nilai numerik yang ditetapkan untuknya:

  • r (baca) bernilai 4
  • w (tulis) bernilai 2
  • x (eksekusi) bernilai 1

Nilai-nilai ini adalah tambahan untuk setiap "triplet", yang berarti bahwa izin file rw- memiliki nilai 6 dan rwx memiliki nilai 7. Seperti dibahas di atas, file apa pun yang baru dibuat, nilai defaultnya adalah 644 (rw-r --r--), artinya pemilik file dapat membaca dan menulis, dan semua orang lain hanya dapat membaca file ini. Triplet pertama adalah izin untuk pemilik/pembuat file, yang kedua untuk izin grup, dan yang ketiga untuk orang lain (pengguna di luar pemilik/pembuat atau grup yang memiliki izin). Pengaturan ini masuk akal karena alasan yang jelas:Pemilik harus memiliki kontrol yang lebih tinggi atas konten file untuk membaca dan menulisnya. Orang lain mungkin ingin membaca isinya tetapi tidak mengubahnya. Tentu saja, Anda dapat mengubah pengaturan ini dengan chmod perintah, yang menjadi fokus artikel ini.

Jadi untuk memahami konsep ini dengan cara yang lebih sederhana, pikirkan izin file sebagai matriks 3x3, di mana pemilik, grup, dan lainnya masing-masing memiliki pengaturan r, w, dan x. Pada contoh di atas:

  • Pembuat file (pemilik/pengguna) memiliki izin baca dan tulis:-rw -r--r--.
  • Pembuat grup file (grup) memiliki izin baca:-rw-r-- r--.
  • Orang lain memiliki izin membaca yang diwakili oleh bit terakhir:-rw-r--r-- .

Sekarang, mari kita lihat nilai izin default untuk direktori. Katakanlah direktori chmod_directory dibuat dengan izin default 755. Tidak seperti file, direktori memiliki file di dalamnya. Agar siapa pun selain pemilik dapat 'cd ' ke dalam direktori, perlu izin eksekusi, yang pada gilirannya membuat direktori:

  • Dapat dibaca, ditulis, dan dieksekusi oleh pemiliknya (rwx adalah 7).
  • Dapat dibaca dan dijalankan oleh grup (r-x adalah 5).
  • Dapat dibaca dan dijalankan oleh orang lain (r-x adalah 5).

Catatan:Penunjukan r-x BUKAN berarti r dikurangi x, itu berarti membaca dan mengeksekusi tetapi tidak menulis. The - adalah pengganti untuk izin.

(Harap luangkan waktu sebentar untuk memikirkan mengapa ini adalah perilaku default.)

Oke, sekarang setelah Anda mempelajari dasar-dasar izin file dan direktori, mari kita lihat chmod perintah, yang membantu membuat perubahan izin untuk file dan direktori.

Seperti yang disebutkan di halaman manual:

This manual page documents the GNU version of chmod. chmod changes the file mode bits of each given file according to mode, which can be either a symbolic representation of changes to make, or an octal number representing the bit pattern for the new mode bits.

The format of a symbolic mode is [ugoa...][[+-=][perms...]...], where perms is either zero or more letters from the set rwxXst, or a single letter from the set ugo. Multiple symbolic modes can be given, separated by commas.

A combination of the letters ugoa controls which users' access to the file will be changed: the user who owns it (u), other users in the file's group (g), other users not in the file's group (o), or all users (a). If none of these are given, the effect is as if a were given, but bits that are set in the umask are not affected.

Menggunakan representasi oktal

Untuk mengubah izin file, Anda dapat menggunakan representasi oktal (numerik), atau representasi simbolis (huruf). Dalam representasi oktal, digit pertama adalah untuk pengguna, digit kedua untuk grup, dan digit ketiga untuk orang lain. Mari kita lihat dua contoh pengaturan izin dengan representasi oktal untuk memahami konsep ini.

Contoh 1 :Jika Anda ingin memberikan izin baca (4), tulis (2), dan jalankan (1) kepada pengguna dan grup, dan hanya izin baca (4) kepada orang lain, Anda dapat menggunakan:

localhost@user1$ chmod 774 <file-name>

Contoh 2 :Jika Anda ingin membatasi izin menulis untuk semua orang kecuali pemilik file, Anda dapat menggunakan:

localhost@user1$ chmod 744 <file-name>

Menggunakan representasi simbolik

Anda juga dapat mengubah izin menggunakan representasi simbolis daripada numerik. Representasi simbolik adalah memberikan izin kepada pengguna (u), grup (g), dan lainnya (o) menggunakan huruf (simbol) dan penunjukan huruf:r, w, dan x.

Mari kita lihat contoh-contoh ini lagi, tetapi menggunakan representasi simbolis.

Contoh 1 :Membaca, menulis, dan mengeksekusi untuk pengguna dan grup, ditambah hanya membaca untuk orang lain, memetakan sebagai:

localhost@user1$ chmod ug+rwx,o+r <filename>

Contoh 2 :Membaca, menulis, dan mengeksekusi untuk pengguna dan hanya membaca izin untuk grup dan peta lainnya sebagai:

localhost@user1$ chmod u+rwx,go+r <file-name>

Luar biasa, saya bangga dengan Anda semua:Anda sekarang telah menguasai konsep izin file. Tetapi saya akan memperingatkan Anda bahwa ada dua skenario berbahaya yang mungkin ingin Anda hindari, jadi jadikan ini sebagai praktik terbaik saat menggunakan chmod. Hindari penggunaan kasus batas, seperti chmod 777 <file-name> dan chmod 000 <filename> . Menggunakan chmod 777 <file-name> memberi semua orang izin rwx, dan umumnya bukan praktik yang baik untuk memberikan kekuatan penuh kepada semua pengguna dalam suatu sistem. Kasus kedua, saya akan meninggalkan kalian untuk mencari tahu.

Menggunakan umasks

Saya akan meninggalkan Anda dengan satu konsep lagi yang perlu Anda ketahui (umask) yang memutuskan izin default untuk sebuah file. Secara keseluruhan, nilai defaultnya adalah:

  • Umask:0022
  • Berkas:0666
  • Direktori:0777

Seperti yang mungkin Anda ingat, nilai izin file default adalah 0644, dan direktori default adalah 0755. Nilai umask default dikurangi dari nilai default file/direktori keseluruhan. Anda dapat mengatur nilai umask di /etc/profile atau di ~/.bashrc .

Menutup

Chmod adalah perintah Linux yang bagus untuk memanipulasi izin file dan direktori. Dengan konsep-konsep yang disebutkan dalam artikel ini, Anda dilengkapi dengan pengetahuan yang cukup untuk menangani izin di distro berbasis Linux.


Linux
  1. Dasar-dasar Izin File Linux

  2. Pengantar pemantauan akun pengguna Linux

  3. Linux chmod and chown – Cara Mengubah Izin dan Kepemilikan File di Linux

  1. Mengubah izin Linux

  2. Periksa izin file Linux dengan ls

  3. Izin File di Linux – Baca/Tulis/Jalankan

  1. Pengenalan perintah chmod Linux

  2. Izin File di Linux dengan Contoh

  3. Lembar contekan Izin File/Direktori Linux