Cara Menggunakan Perintah chmod di Linux
Diterbitkan: 2022-10-25 Kontrol siapa yang dapat mengakses file, mencari direktori, dan menjalankan skrip menggunakan perintah chmod
Linux. Perintah ini memodifikasi izin file Linux, yang terlihat rumit pada pandangan pertama tetapi sebenarnya cukup sederhana setelah Anda tahu cara kerjanya.
chmod Memodifikasi Izin File
Di Linux, siapa yang dapat melakukan apa ke file atau direktori dikendalikan melalui set izin. Ada tiga set izin. Satu set untuk pemilik file, set lain untuk anggota grup file, dan set terakhir untuk semua orang.
Izin mengontrol tindakan yang dapat dilakukan pada file atau direktori. Mereka mengizinkan, atau mencegah, file untuk dibaca, dimodifikasi atau, jika itu adalah skrip atau program, dieksekusi. Untuk direktori, izin mengatur siapa yang dapat melakukan cd
ke direktori dan siapa yang dapat membuat, atau memodifikasi file di dalam direktori.
Anda menggunakan perintah chmod
untuk mengatur setiap izin ini. Untuk melihat izin apa yang telah ditetapkan pada file atau direktori, kita dapat menggunakan ls
.
Melihat dan Memahami Izin File
Kita dapat menggunakan opsi -l
(format panjang) agar ls
mencantumkan izin file untuk file dan direktori.
ls -l
Pada setiap baris, karakter pertama mengidentifikasi jenis entri yang terdaftar. Jika itu adalah tanda hubung ( -
) itu adalah file. Jika huruf 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 lainnya ).
Ada tiga karakter di setiap set izin. Karakter adalah indikator untuk ada atau tidak adanya salah satu izin. Mereka adalah tanda hubung ( -
) atau huruf. Jika karakternya adalah tanda hubung, itu berarti izin tidak diberikan. Jika karakternya adalah r
, w
, atau x
, izin itu telah diberikan.
Huruf-huruf tersebut mewakili:
- r : Izin baca. File dapat dibuka, dan kontennya 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. -
rwx
berarti izin penuh telah diberikan. Indikator baca, tulis, dan eksekusi semuanya ada.
Di tangkapan layar kami, baris pertama dimulai dengan 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
, w
, dan x
semuanya ada. Ini berarti dave pengguna telah membaca, menulis, dan menjalankan izin untuk direktori itu.
Set kedua dari tiga karakter adalah izin grup, ini adalah rx
. 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
(eksekusi) ke dalam direktori itu. Mereka tidak memiliki izin menulis, sehingga mereka tidak dapat membuat, mengedit, atau menghapus file.
Set terakhir dari tiga karakter juga rx
. Izin ini berlaku untuk orang yang tidak diatur oleh dua set izin pertama. Orang-orang ini (disebut "orang lain") telah membaca dan menjalankan izin pada direktori ini.
Jadi, untuk meringkas, anggota grup dan orang lain telah membaca dan menjalankan izin. Pemiliknya, seorang pengguna bernama dave, juga memiliki izin menulis.
Untuk semua file lain (selain dari file skrip mh.sh) dave dan anggota grup dave memiliki properti baca dan tulis 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 mengeksekusi izin, dan yang lainnya hanya membaca dan mengeksekusi izin.
Memahami Sintaks Izin
Untuk menggunakan chmod
untuk mengatur izin, kita perlu memberitahunya:
- Siapa: Untuk siapa kami menetapkan izin.
- What : Perubahan apa yang kita buat? Apakah kami menambahkan atau menghapus izin?
- Yang : Izin mana yang kami atur?
Kami menggunakan indikator untuk mewakili nilai-nilai ini, dan membentuk "pernyataan izin" singkat seperti u+x
, di mana "u" berarti "pengguna" (siapa), "+" berarti tambah (apa), dan "x" berarti izin eksekusi (yang).
Nilai "siapa" yang dapat kita gunakan adalah:
- u : User, artinya pemilik file.
- g : Grup, artinya anggota grup tempat file tersebut berada.
- o : Lainnya, artinya orang yang tidak diatur oleh izin
u
dang
. - a : Semua, artinya semua di atas.
Jika tidak satu pun dari ini digunakan, chmod
berperilaku seolah-olah " a
" telah digunakan.
Nilai “apa” yang dapat kita gunakan adalah:
- – : Tanda minus. Menghapus izin.
- + : Tanda tambah. Memberikan izin. Izin ditambahkan ke izin yang ada. Jika Anda ingin memiliki izin ini dan hanya izin ini yang disetel, gunakan opsi
=
, yang dijelaskan di bawah. - = : 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 Memodifikasi Izin
Katakanlah kita memiliki file di mana setiap orang memiliki izin penuh padanya.
ls -l new_ file.txt
Kami ingin pengguna dave 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 file_baru.txt
Menggunakan operator "=" berarti kami menghapus semua izin yang ada dan kemudian mengatur yang ditentukan.
mari kita periksa izin baru pada file ini:
ls -l file_baru.txt
Izin yang ada telah dihapus, dan izin baru telah ditetapkan, seperti yang kami harapkan.
Bagaimana dengan menambahkan izin tanpa menghapus pengaturan izin yang ada? Kita juga bisa melakukannya dengan mudah.
Misalkan kita memiliki file script yang sudah selesai kita edit. Kita 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 izin, kita akan melihat bahwa izin eksekusi sekarang diberikan kepada semua orang, dan izin yang ada masih berlaku.
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 Banyak File
Kami dapat menerapkan izin ke beberapa file sekaligus.
Ini adalah file di direktori saat ini:
ls -l
Katakanlah kita ingin menghapus izin baca untuk pengguna "lain" dari file yang memiliki ekstensi ".page". Kita dapat melakukannya 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 kita ingin memasukkan file dalam subdirektori, kita bisa menggunakan opsi -R
(rekursif).
chmod -R atau *.page
Singkatan Numerik
Cara lain untuk menggunakan chmod
adalah dengan memberikan izin yang ingin Anda berikan kepada pemilik, grup, dan lainnya sebagai nomor tiga digit. Digit paling kiri mewakili izin untuk pemilik. Digit tengah mewakili izin untuk anggota grup. Digit paling kanan mewakili izin untuk yang lain.
Digit yang dapat Anda gunakan dan apa yang diwakilinya tercantum di sini:
- 0: (000) Tidak ada izin.
- 1: (001) Jalankan izin.
- 2: (010) Izin menulis.
- 3: (011) Tulis dan jalankan izin.
- 4: (100) Izin baca.
- 5: (101) Baca dan jalankan izin.
- 6: (110) Izin baca dan tulis.
- 7: (111) Membaca, menulis, dan menjalankan izin.
Masing-masing dari tiga izin diwakili oleh salah satu bit dalam ekuivalen biner dari angka desimal. Jadi 5, yaitu 101 dalam biner, berarti membaca dan mengeksekusi. 2, yaitu 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 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 tambahkan izin eksekusi.
Mari tambahkan izin baca kembali pada file “.page” untuk kategori pengguna lainnya. Kita harus mengatur izin pengguna dan grup juga, jadi kita perlu mengaturnya seperti yang sudah ada. Pengguna ini sudah memiliki izin baca dan tulis, yaitu 6 (110). Kami ingin "orang lain" untuk membaca dan izin, sehingga mereka perlu diatur ke 4 (100).
Perintah berikut akan menyelesaikan ini:
chmod 664 *.halaman
Ini menetapkan izin yang kami perlukan untuk pengguna, anggota grup, dan lainnya ke apa yang kami butuhkan. Pengguna dan anggota grup memiliki izin yang disetel ulang ke yang sudah ada, dan yang lain memiliki izin baca yang dipulihkan.
ls -l
Opsi Lanjutan
Jika Anda membaca halaman manual untuk chmod
, Anda akan melihat ada beberapa opsi lanjutan yang terkait dengan bit SETUID dan SETGID, dan penghapusan terbatas atau bit "lengket".
Untuk 99% kasus yang Anda perlukan chmod
, opsi yang dijelaskan di sini akan membantu Anda.
Perintah Linux | ||
File | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · ketik · ganti nama · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konversi · rclone · rusak · srm | |
Proses | alias · layar · atas · bagus · renice · kemajuan · strace · systemd · tmux · chsh · sejarah · di · batch · gratis · yang · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · batas waktu · dinding · ya · bunuh · tidur · sudo · su · waktu · groupadd · usermod · grup · lshw · shutdown · reboot · hentikan · matikan · passwd · lscpu · crontab · tanggal · bg · fg | |
Jaringan | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · gali · jari · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
TERKAIT: Laptop Linux Terbaik untuk Pengembang dan Penggemar