Cara Menggunakan Perintah chmod di Linux

Kontrol siapa yang dapat mengakses file, mencari direktori, dan menjalankan skrip menggunakan perintah Linux chmod. Perintah ini mengubah izin file Linux, yang sekilas terlihat rumit tetapi sebenarnya cukup sederhana setelah Anda mengetahui cara kerjanya.

chmod Mengubah Izin File

Di Linux, siapa yang dapat melakukan apa pada file atau direktori dikendalikan melalui sekumpulan izin. Ada tiga set izin. Satu set untuk pemilik file, satu set untuk anggota grup file, dan satu set terakhir untuk semua orang.

Izin mengontrol tindakan yang dapat dilakukan pada file atau direktori. Mereka mengizinkan, atau mencegah, file dibaca, dimodifikasi atau, jika itu adalah skrip atau program, dijalankan. Untuk direktori, izin mengatur siapa yang dapat cdmasuk ke direktori dan siapa yang dapat membuat, atau mengubah file di dalam direktori.

Anda menggunakan  chmod perintah untuk mengatur setiap izin ini. Untuk melihat hak akses apa yang telah diatur pada file atau direktori, kita dapat menggunakan ls.

Melihat dan Memahami Izin File

Kita dapat menggunakan opsi -l(format panjang) untuk memiliki lsdaftar izin file untuk file dan direktori.

ls -l

Pada setiap baris, karakter pertama mengidentifikasi jenis entri yang didaftarkan. Jika itu adalah tanda hubung ( -) itu adalah file. Jika surat d itu adalah direktori.

Sembilan karakter berikutnya mewakili pengaturan untuk tiga set izin.

  • Tiga karakter pertama menunjukkan izin untuk pengguna yang memiliki file ( izin pengguna ).
  • Tiga karakter tengah menunjukkan izin untuk anggota grup file ( izin grup ).
  • Tiga karakter terakhir menunjukkan izin untuk siapa pun yang tidak termasuk dalam dua kategori pertama ( izin lain ).

Ada tiga karakter di setiap set izin. Karakter adalah indikator ada atau tidaknya salah satu izin. Mereka bisa berupa tanda hubung ( -) atau huruf. Jika karakter berupa tanda hubung, itu berarti izin tidak diberikan. Jika karakter adalah r, w, atau x, izin yang telah diberikan.

Huruf-huruf tersebut mewakili:

  • r : Izin baca. File dapat dibuka, dan isinya dapat dilihat.
  • w : Izin menulis. File dapat diedit, dimodifikasi, dan dihapus.
  • x : Jalankan izin. Jika file tersebut berupa script atau program, maka dapat dijalankan (dieksekusi).

Sebagai contoh:

  •  --- berarti tidak ada izin yang diberikan sama sekali.
  •  rwxberarti izin penuh telah diberikan. Indikator baca, tulis, dan eksekusi semuanya ada.

Di tangkapan layar kami, baris pertama dimulai dengan a d. Baris ini merujuk ke direktori yang disebut "arsip". Pemilik direktori adalah "dave", dan nama grup tempat direktori tersebut juga disebut "dave".

Tiga karakter berikutnya adalah izin pengguna untuk direktori ini. Ini menunjukkan bahwa pemilik memiliki izin penuh. Karakter r,, wdan xsemuanya ada. Ini berarti pengguna dave telah membaca, menulis dan menjalankan izin untuk direktori itu.

Set kedua dari tiga karakter adalah izin grup, ini r-x. Ini menunjukkan bahwa anggota grup dave telah membaca dan menjalankan izin untuk direktori ini. Itu berarti mereka dapat membuat daftar file dan isinya di direktori, dan mereka dapat cd(mengeksekusi) ke direktori itu. Mereka tidak memiliki izin menulis, jadi mereka tidak dapat membuat, mengedit, atau menghapus file.

Set terakhir dari tiga karakter juga  r-x. Izin ini berlaku untuk orang yang tidak diatur oleh dua kumpulan izin pertama. Orang-orang ini (disebut "orang lain") telah membaca dan menjalankan izin pada direktori ini.

Jadi, untuk meringkas, anggota grup dan lainnya telah membaca dan menjalankan izin. Pemiliknya, seorang pengguna bernama dave, juga memiliki izin menulis.

Untuk semua file lainnya (selain dari file script mh.sh) dave dan anggota grup dave telah membaca dan menulis properti pada file, dan yang lainnya hanya memiliki izin baca.

Untuk kasus khusus dari file skrip mh.sh, pemilik dave dan anggota grup telah membaca, menulis, dan menjalankan izin, dan yang lainnya hanya membaca dan menjalankan izin.

Memahami Sintaks Izin

Untuk menggunakan chmod untuk mengatur izin, kita perlu memberitahukannya:

  • Siapa: Untuk  siapa kami menetapkan izin.
  • Apa : Perubahan apa yang kita buat? Apakah kita menambah atau menghapus izin?
  • Yang mana : Izin mana yang kita atur?

Kami menggunakan indikator untuk mewakili nilai-nilai ini, dan membentuk "pernyataan izin" singkat seperti u+x, di mana "u" berarti "pengguna" (siapa), "+" berarti menambahkan (apa), dan "x" berarti izin eksekusi (yang) .

Nilai "siapa" yang dapat kita gunakan adalah:

  • u : Pengguna, artinya pemilik file.
  • g : Grup, artinya anggota grup tempat file tersebut berada.
  • o : Lainnya, artinya orang tidak diatur oleh hak udan gizin.
  • a : Semua, artinya semua hal di atas.

Jika tidak satu pun dari ini digunakan, chmodberperilaku seolah-olah " a" telah digunakan.

Nilai "apa" yang dapat kita gunakan adalah:

  • - : Tanda minus. Menghapus izin.
  • + : Tanda plus. Memberi izin. Izin ditambahkan ke izin yang ada. Jika Anda ingin memiliki izin ini dan hanya izin ini yang ditetapkan, gunakan =opsi yang dijelaskan di bawah ini.
  • = : Tanda sama dengan. Tetapkan izin dan hapus yang lain.

Nilai "yang" yang dapat kita gunakan adalah:

  • r : Izin baca.
  • w : Izin menulis.
  • x : Izin eksekusi.

Mengatur Dan Mengubah Izin

Katakanlah kita memiliki file di mana setiap orang memiliki izin penuh padanya.

ls -l file.txt_baru

Kami ingin pengguna memiliki izin baca dan tulis dan grup serta pengguna lain hanya memiliki izin baca. Kita dapat melakukannya dengan menggunakan perintah berikut:

chmod u = rw, og = r new_file.txt

Menggunakan operator “=” berarti kami menghapus semua izin yang ada dan kemudian menyetel izin yang ditentukan.

mari kita periksa izin baru pada file ini:

ls -l new_file.txt

Izin yang ada telah dihapus, dan izin baru telah ditetapkan, seperti yang kami harapkan.

Bagaimana menambahkan izin tanpa menghapus pengaturan izin yang ada? Kita juga bisa melakukannya dengan mudah.

Katakanlah kita memiliki file skrip yang telah selesai kita edit. Kami perlu membuatnya dapat dieksekusi untuk semua pengguna. Izinnya saat ini terlihat seperti ini:

ls -l new_script.sh

Kami dapat menambahkan izin eksekusi untuk semua orang dengan perintah berikut:

chmod a + x new_script.sh

Jika kita melihat pada izinnya, kita akan melihat bahwa izin eksekusi sekarang diberikan kepada semua orang, dan izin yang ada masih ada.

ls -l new_script.sh

Kita bisa mencapai hal yang sama tanpa "a" dalam pernyataan "a + x". Perintah berikut akan bekerja dengan baik.

chmod + x new_script.sh

Mengatur Izin untuk Beberapa File

Kami dapat menerapkan izin ke banyak file sekaligus.

Ini adalah file di direktori saat ini:

ls -l

Katakanlah kita ingin menghapus izin menulis untuk pengguna "lainnya" dari file yang memiliki ekstensi ".page". Kita bisa melakukan ini dengan perintah berikut:

chmod atau * .page

Mari kita periksa efek apa yang telah terjadi:

ls -l

Seperti yang bisa kita lihat, izin baca telah dihapus dari file ".page" untuk kategori pengguna "lainnya". Tidak ada file lain yang terpengaruh.

Jika kami ingin memasukkan file ke dalam subdirektori, kami dapat menggunakan opsi -R(rekursif).

chmod -R atau * .page

Singkatan Numerik

Cara lain untuk menggunakan chmodadalah memberikan izin yang ingin Anda berikan kepada pemilik, grup, dan orang lain sebagai nomor tiga digit. Digit paling kiri mewakili izin untuk pemiliknya. Angka tengah mewakili izin untuk anggota grup. Digit paling kanan mewakili izin untuk yang lain.

Digit yang dapat Anda gunakan dan mewakili apa yang tercantum di sini:

  • 0: (000) Tanpa izin.
  • 1: (001) Jalankan izin.
  • 2: (010) Izin menulis.
  • 3: (011) Menulis dan menjalankan izin.
  • 4: (100) Izin baca.
  • 5: (101) Baca dan jalankan izin.
  • 6: (110) Izin baca dan tulis.
  • 7: (111) Baca, tulis, dan jalankan izin.

Masing-masing dari tiga izin diwakili oleh salah satu bit dalam padanan biner dari angka desimal. Jadi 5, yaitu 101 dalam biner, berarti membaca dan mengeksekusi. 2, yang merupakan 010 dalam biner, berarti izin menulis.

Dengan menggunakan metode ini, Anda mengatur izin yang ingin Anda miliki; Anda tidak menambahkan izin ini ke izin yang sudah ada. Jadi jika izin baca dan tulis sudah ada, Anda harus menggunakan 7 (111) untuk menambahkan izin eksekusi. Menggunakan 1 (001) akan menghapus izin baca dan tulis dan menambahkan izin eksekusi.

Mari tambahkan kembali izin baca pada file ".page" untuk kategori pengguna lainnya. Kita harus mengatur hak akses pengguna dan grup juga, jadi kita perlu mengaturnya seperti apa adanya. Pengguna ini telah memiliki izin baca dan tulis, yaitu 6 (110). Kami ingin "orang lain" memiliki membaca dan izin, jadi mereka perlu diatur ke 4 (100).

Perintah berikut akan menyelesaikan ini:

chmod 664 *. halaman

Ini mengatur izin yang kami perlukan untuk pengguna, anggota grup, dan orang lain untuk apa yang kami butuhkan. Izin pengguna dan grup telah disetel ulang ke keadaan sebelumnya, dan izin baca lainnya telah dipulihkan.

ls -l

Opsi Lanjutan

Jika Anda membaca halaman manual untuk chmodAnda akan melihat ada beberapa opsi lanjutan terkait dengan bit SETUID dan SETGID, dan dengan penghapusan terbatas atau bit "lengket".

Untuk 99% kasus yang Anda perlukan chmod, opsi yang dijelaskan di sini akan membantu Anda.