Perintah Chmod di Linux/Unix dengan Contoh
Perintah chmod
di Linux digunakan untuk mengubah izin akses file dan direktori. Chmod adalah singkatan dari “change mode”. Perintah ini tidak dapat mengubah izin tautan simbolik. Bahkan, ia mengabaikan tautan simbolik yang ditemukan dalam penjelajahan direktori rekursif.
Dalam sistem file Linux, setiap file terkait dengan pemilik tertentu dan memiliki izin akses untuk pengguna yang berbeda. Kelas pengguna mungkin meliputi:
- Pemilik
- Anggota grup
- Lainnya (Semua orang)
Jenis izin file di Linux adalah sebagai berikut:
- Read (r)
- Write (w)
- Execute (x)
Sejarah Singkat Chmod
Pertama kali, perintah chmod
diwakili dalam AT&T UNIX versi 1 dengan panggilan sistem chmod
. Daftar kontrol akses dimasukkan dalam beberapa sistem file sebagai tambahan untuk mode yang paling umum untuk meningkatkan fleksibilitas karena sistem tumbuh dalam jenis dan jumlah pengguna.
Versi chmod
yang diatur dalam GNU coreutils ditentukan oleh Jim Meyering dan David MacKenzie. Perintah ini hadir sebagai paket terpisah untuk Microsoft Windows sebagai bagian dari koleksi port native Win32 dari utilitas dasar GNU Unix-like. Juga, perintah chmod
telah dikirim ke IBM i OS.
Mari kita lihat bagaimana cara mengubah izin file menggunakan perintah chmod
.
Sintaks:
Sintaks dasar dari perintah chmod
adalah sebagai berikut:
phpSalin kodechmod <options> <permissions> <file name>
Opsi yang umumnya diterapkan adalah:
-R
: Untuk rekursif, yaitu, menambahkan objek ke subdirektori.-V
: Untuk verbose, menampilkan objek yang dimodifikasi (objek yang tidak dimodifikasi tidak ditampilkan).
Objek target dipengaruhi jika tautan simbolik disebutkan. Mode file terkait dengan tautan simbolik itu sendiri biasanya tidak digunakan.
Komponen Utama dari Izin Chmod:
Misalnya, rwxr-x---
Semua kelompok tiga karakter menentukan izin untuk semua kelas:
rwx
: Tiga karakter paling kiri menentukan izin untuk pemilik file (yaitu, kelas User).r-x
: Tiga karakter tengah menentukan izin untuk grup yang memiliki file (yaitu, kelas Group).---
: Tiga karakter paling kanan menentukan izin untuk kelas Other. Pengguna yang bukan pemilik file dan anggota grup tidak dapat mengakses file.
Opsi:
Perintah chmod
mendukung opsi baris perintah berikut:
-c, --changes
: Mirip dengan opsi verbose, tetapi bedanya dilaporkan jika ada perubahan yang dibuat.-f, --silent, --quiet
: Digunakan untuk menyembunyikan pesan kesalahan.-v, --verbose
: Digunakan untuk menampilkan diagnostik untuk setiap file yang diproses.--no-preserve-root
: Digunakan untuk tidak memperlakukan simbol backslash (‘/’), terutama (default).--preserve-root
: Jika opsi ini digunakan, ia akan gagal beroperasi secara rekursif pada backslash (‘/’).--reference=RFILE
: Digunakan untuk menentukan mode RFILE sebagai alternatif nilai MODE.-R, --recursive
: Digunakan untuk mengubah file dan direktori secara rekursif.--help
: Digunakan untuk menampilkan manual bantuan yang berisi deskripsi singkat tentang penggunaan dan opsi dukungan.--version
: Digunakan untuk menampilkan informasi versi.
Sintaks Izin File
Jika Anda adalah pengguna baru, Anda mungkin bingung dengan berbagai jenis huruf yang digunakan untuk mengatur izin file. Jadi, sebelum melanjutkan lebih jauh dengan perintah chmod
, mari kita pahami sintaks izin file.
Untuk mengatur izin file atau direktori, kita harus menentukan hal-hal berikut:
- Siapa: Siapa kita. (user)
- Apa: Perubahan apa yang akan kita lakukan (seperti menambahkan atau menghapus izin)?
- Yang mana: Izin yang mana?
Pernyataan izin diwakili dalam indikator seperti u+x, u-x
. Di mana ‘u’ berarti ‘user,’ ‘+’ berarti menambahkan, ‘-‘ berarti menghapus, ‘x’ berarti dapat dieksekusi (which).
Nilai pengguna dapat berupa:
u
: pemilik fileg
: anggota grupo
: lain-laina
: semua
Jenis izin dapat berupa r
, w
, dan x
.
Mengatur dan Memperbarui Izin
Untuk mengatur izin file, jalankan pernyataan izin dengan perintah chmod
. Misalnya, kita ingin mengatur izin baca dan tulis untuk semua pengguna dan grup dari file Demo.txt
. Kita harus mengirimkan pernyataan izin “u=rw,go=rw Demo.txt” dengan perintah chmod
. Untuk menampilkan izin file, jalankan perintah di bawah ini:
bashSalin kodels -l Demo.txt
Perintah di atas akan menampilkan izin file saat ini dari file Demo.txt
.
Untuk mengubah izin, jalankan perintah di bawah ini:
bashSalin kodechmod u=rw,go=rw Demo.txt
Pertimbangkan output di bawah ini:
Perintah chmod
telah mengubah izin akses file Demo.txt
.
Mengatur Izin untuk Beberapa File
Kita dapat mengatur izin untuk beberapa file sekaligus menggunakan perintah chmod
. Untuk mengubah izin file beberapa file, tentukan pola file dengan perintah chmod
. Misalnya, jika kita ingin mengatur izin baca dan tulis untuk semua file teks, tentukan pola *.txt
dengan perintah chmod
.
Untuk melihat izin semua file teks dari direktori kerja saat ini, jalankan perintah di bawah ini:
bashSalin kodels -l *.txt
Ini akan menampilkan semua file teks dengan mode izin mereka. Pertimbangkan output di bawah ini:
Dari output di atas, banyak file hanya memiliki izin baca untuk pengguna lain.
Untuk mengatur izin baca dan tulis untuk pengguna lain, jalankan perintah di bawah ini:
bashSalin kodechmod o+w *.txt
Ini akan mengatur izin baca dan tulis untuk pengguna lain dari file teks. Pertimbangkan output di bawah ini:
Shorthand Numerik
Kita dapat menggunakan nilai numerik sebagai pengganti huruf untuk menentukan izin. Nilai tiga digit digunakan untuk menentukan izin. Digit paling kiri mewakili pemilik (u), dan digit tengah mewakili anggota grup (g). Digit paling kanan mewakili orang lain (o).
Tabel berikut mewakili digit dan izin mereka:
Digit | Izin |
---|---|
000 | Tidak ada izin |
001 | Izin eksekusi |
010 | Izin tulis |
011 | Izin tulis dan eksekusi |
100 | Izin baca |
101 | Izin baca dan eksekusi |
110 | Izin baca dan tulis |
111 | Izin baca, tulis, dan eksekusi |
Mode Simbolik
Perintah chmod
juga menerima notasi simbolik yang lebih halus, yang memungkinkan mengubah mode spesifik. Mode simbolik terdiri dari tiga elemen, yang digabungkan untuk membentuk string teks tunggal:
cssSalin kode$ chmod [references] [operator] [modes] file...
Program chmod
menerapkan operator untuk menentukan bagaimana mode file harus diatur. Operator berikut disetujui:
Operator | Deskripsi |
---|---|
+ | Menambahkan mode yang dijelaskan ke kelas yang dijelaskan. |
– | Menghapus mode yang dijelaskan dari kelas yang dijelaskan. |
= | Menyatakan bahwa mode yang dijelaskan harus menjadi mode yang sama untuk kelas yang dijelaskan. |
Mode mewakili izin yang akan dihapus atau diberikan dari kelas yang dijelaskan. Ada tiga mode umum yang terkait dengan izin umum:
Nama | Mode | Deskripsi |
---|---|---|
read | r | Membaca file atau daftar isi direktori. |
write | w | Menulis ke direktori atau file. |
execute | x | Melintasi pohon direktori atau mengeksekusi file. |
special execute | X | Bukan izin tetapi bisa digunakan sebagai pengganti x . Menggunakan izin eksekusi untuk direktori terlepas dari izin saat ini dan menggunakan izin eksekusi untuk file yang setidaknya memiliki satu bit izin eksekusi. Ini berguna jika digunakan dengan operator “+” dan tanpa menetapkan izin eksekusi yang akan terjadi jika kita hanya menggunakan chmod -R a+rx . , sedangkan kita dapat menerapkan chmod -R a+rx . dengan x juga. |
Modifikasi ganda dapat dijelaskan dengan memisahkan beberapa mode simbolik bersama dengan koma. Perintah chmod
akan memeriksa umask jika pengguna tidak ditentukan.
Mode Khusus
Perintah chmod
juga dapat mengubah mode khusus dan izin tambahan dari direktori atau file. Mode simbolik menerapkan ‘s’ untuk menunjukkan mode setgid dan setuid dan ‘t’ untuk menunjukkan mode sticky. Mode hanya digunakan untuk kelas yang benar, terlepas dari apakah kelas lain disebutkan atau tidak.
Hampir semua sistem operasi secara numerik mendukung spesifikasi mode khusus, terutama dalam oktal, tetapi beberapa tidak. Hanya mode simbolik yang dapat diterapkan ke sistem ini.
Beberapa Contoh Baris Perintah:
Perintah | Deskripsi |
---|---|
chmod a+r publicComments.txt | Menambahkan izin baca untuk setiap kelas (yaitu, Grup, Pemilik, dan Lainnya). |
chmod a-x publicComments.txt | Menghapus izin eksekusi untuk setiap kelas. |
chmod a+rx viewer.sh | Menambahkan izin eksekusi dan baca untuk setiap kelas. |
chmod u=rw, g=r, o=internalPlan.txt | Menetapkan izin tulis dan baca untuk pengguna, izin baca untuk Grup, dan menolak akses untuk Lainnya. |
chmod -R u+w, go-w docs | Menambahkan izin tulis ke direktori docs dan semua isinya untuk pemilik dan menghapus izin tulis untuk orang lain dan grup. |
chmod ug=rw groupAgreements.txt | Menetapkan izin tulis dan baca untuk Grup dan pengguna. |
chmod 664 global.txt | Menetapkan izin tulis dan baca untuk Grup dan pengguna dan memberikan izin baca kepada Lainnya. |
chmod 744 Show_myCV.sh | Menetapkan izin eksekusi, tulis, dan baca untuk pengguna dan memberikan izin baca untuk Grup dan Lainnya. |
ref: [1]