Semua file dan direktori di Linux memiliki seperangkat izin akses standar. Izin akses ini mengontrol siapa yang dapat mengakses file apa, dan memberikan tingkat keamanan dasar ke file dan direktori dalam suatu sistem.
Izin Melihat
Untuk melihat izin file dan direktori, gunakan ls -l atau ls –n perintah.
# ls -l file -rw-r--r-- 1 root root 0 Nov 19 23:49 file
Bidang informasi pertama yang ditampilkan oleh perintah ls -l adalah jenis file. Jenis file biasanya menentukan apakah itu file atau direktori. Sebuah file diwakili oleh tanda hubung (-). Direktori diwakili oleh huruf d.
Bidang yang tersisa mewakili grup izin:pemilik, grup, dan lainnya .
Grup Izin
Ada tiga grup izin:
- Pemilik
- Grup
- Lainnya
Tabel menjelaskan grup izin dan cakupannya:
Izin | Deskripsi |
---|---|
Pemilik | Izin yang digunakan oleh pemilik file atau direktori yang ditetapkan |
Grup | Izin yang digunakan oleh anggota grup yang memiliki file atau direktori |
Lainnya | Izin yang digunakan oleh semua pengguna selain pemilik file, dan anggota grup yang memiliki file atau direktori |
Pengaturan Izin
– Setiap grup izin memiliki tiga izin, yang disebut set izin.
– Setiap set terdiri dari baca , tulis , dan jalankan izin.
– Setiap file atau direktori memiliki tiga set izin untuk tiga jenis grup izin.
– Set izin pertama mewakili izin pemilik, set kedua mewakili izin grup, dan set terakhir mewakili izin lainnya.
– Izin baca, tulis, dan eksekusi diwakili oleh karakter r , dengan , dan x , masing-masing.
– Kehadiran salah satu karakter ini, seperti r, menunjukkan bahwa izin tertentu diberikan.
– Tanda hubung (– ) simbol di tempat karakter dalam set izin menunjukkan bahwa izin tertentu ditolak.
– Linux memberikan izin awal secara otomatis ketika file atau direktori baru dibuat.
Izin | Akses untuk file | Akses untuk sebuah direktori |
---|---|---|
Baca (r) | Anda dapat menampilkan isi file dan menyalin file. | Anda dapat membuat daftar isi direktori dengan perintah ls. |
Tulis (w) | Anda dapat mengubah isi file. | Anda dapat mengubah isi direktori, misalnya dengan menghapus file. Anda juga harus memiliki izin eksekusi agar ini terjadi. |
Jalankan (x) | Anda dapat mengeksekusi file jika file tersebut dapat dieksekusi. Anda dapat menjalankan skrip shell jika Anda juga telah membaca dan menjalankan izin. | Anda dapat menggunakan perintah cd untuk mengakses direktori. Jika Anda juga memiliki akses baca, Anda dapat menjalankan perintah ls -l pada direktori untuk membuat daftar konten. Jika Anda tidak memiliki akses baca, Anda dapat menjalankan perintah ls asalkan Anda mengetahui nama filenya. |
Kepemilikan File
Setiap file dimiliki oleh pengguna tertentu (atau UID) dan grup tertentu (atau GID). chown perintah dapat digunakan untuk mengubah hanya pengguna, atau pengguna dan grup file. Berikut adalah contoh mengubah pemilik file test menjadi user dan groupnya menjadi user.
# ls -l test -rw-r--r-- 1 root root 0 Nov 20 00:43 test
# chown user:user test
# ls -l test -rw-r--r-- 1 user user 0 Nov 20 00:43 test
Format dasar untuk perintah chown adalah sebagai berikut:
# chown user:group filename
titik (.) dapat digunakan sebagai pengganti titik dua (:) karakter pemisah. Juga, nama pengguna atau grup dapat dihilangkan. Jika nama pengguna dihilangkan (tetapi karakter pemisah ada), maka perintah chown berperilaku seperti chgrp perintah, dan hanya kepemilikan grup yang diubah. Jika nama grup dihilangkan (tetapi karakter pemisah ada, maka grup akan diatur ke grup login dari pengguna yang ditentukan. Jika nama grup dan karakter pemisah dihilangkan, maka hanya nama pengguna yang diubah. Misalnya , untuk mengubah hanya pemilik, Anda dapat menjalankan yang berikut:
# chown user filename
Perintah alternatif untuk mengubah hanya grup file adalah perintah chgrp. Misalnya:
# chgrp group filename
Perintah chgrp biasanya digunakan oleh pengguna biasa untuk mengubah kepemilikan grup file mereka. Perintah chown biasanya hanya digunakan oleh pengguna root.
Kepemilikan Grup Default
Setiap pengguna dapat menjadi anggota dari banyak grup (tercantum dalam file /etc/group di bawah beberapa grup). Hanya satu grup yang akan menjadi grup utama pengguna (tercantum dalam entri pengguna di /etc/password). Saat pengguna membuat file, secara default file akan dimiliki oleh grup utama pengguna. Jika mereka ingin file dimiliki oleh salah satu grup mereka yang lain, mereka harus menggunakan chgrp perintah untuk mengubah keanggotaan grup. Contoh :
$ id uid=1001(user) gid=1001(user) groups=1001(user),10(wheel)
$ touch file
$ ls -lrt file -rw-rw-r-- 1 user user 0 Nov 20 00:52 file
Seperti yang ditunjukkan di atas, file (file) yang baru dibuat secara otomatis mendapatkan grup sebagai “pengguna”.
Izin File dan Direktori
Di bawah ini adalah contoh keluaran dari ls -l memerintah; Anda dapat melihat dari karakter pertama setiap baris bahwa dir1 dan dir2 adalah direktori (ditunjukkan dengan d ) dan bahwa file1 dan file2 adalah file biasa (ditunjukkan dengan – ).
$ ls -l total 0 drwxrwxr-x 2 user user 6 Nov 20 00:55 dir1 drwxrwxr-x 2 user user 6 Nov 20 00:55 dir2 -rw-rw-r-- 1 user user 0 Nov 20 00:55 file1 -rw-rw-r-- 1 user user 0 Nov 20 00:55 file2
Sembilan karakter berikutnya menunjukkan izin file untuk pengguna, grup, dan lainnya (atau semua orang) seperti yang ditunjukkan di bawah ini, dengan tanda kurung ditambahkan untuk kejelasan:
-(rw-)(rw-)(r--) 1 user user 0 Nov 20 00:55 file1
Sekarang pemilik memiliki izin baca dan tulis (rw-), grup memiliki izin baca dan tulis (rw-), dan semua orang hanya memiliki izin baca (r–). Ini disebut representasi simbolik karena huruf seperti r, w, dan x, digunakan untuk menunjukkan izin.
Izin juga dapat direpresentasikan secara numerik:
r = 4; w = 2; x = 1
Tambahkan setiap bagian sehingga izin dari meta file (dari contoh di atas) menjadi 664. Berikut adalah cara lain untuk melihat bagaimana kita sampai ke nomor itu:
-(rw-)(rw-)(r--) -(42-)(42-)(4--) 664
Menambahkan angka di setiap bagian menghasilkan izin 664.
Mengubah Izin File
Perintah chmod digunakan untuk mengubah hak akses suatu file. Ini dapat digunakan untuk menambah atau menghapus izin secara simbolis. Misalnya, untuk menambahkan izin eksekusi untuk pemilik file yang akan Anda jalankan:
$ chmod u+x file_name
Atau, untuk menambahkan izin baca dan tulis untuk grup yang memiliki file, Anda dapat menjalankan:
$ chmod g+rw file_name
Alih-alih menambahkan izin, sintaks simbolik chmod juga dapat digunakan untuk mengurangi atau mengatur ke beberapa nilai absolut seperti yang ditunjukkan dalam contoh ini:
$ chmod o-w file_name $ chmod u=rwx,g=rx,o= file_name
Perintah chmod juga dapat secara eksplisit mengatur izin menggunakan representasi numerik. Misalnya, untuk mengatur izin pada file ke rwxrwxr–, Anda akan menjalankan:
$ chmod 774 file_name
Selain izin baca, tulis, dan eksekusi standar, chmod juga dapat mengatur izin khusus. Ini adalah bit setuid, bit setgid, dan bit sticky. Contoh berikut menunjukkan pengaturan masing-masing izin khusus ini bersama dengan deskripsi singkat tentang efek izin tersebut.
$ chmod u+s file_name
Menambahkan setuid bit sehingga, jika dapat dieksekusi, file ini akan dieksekusi dengan izin pemiliknya.
$ chmod g+s file_name
Menambahkan setgid bit sehingga, jika dapat dieksekusi, file ini akan dieksekusi dengan izin grupnya. Jika ini diatur pada direktori, semua file yang dibuat dalam direktori akan memiliki grup yang sama dengan direktori.
$ chmod o+t directory_name
Menambahkan bit lengket sehingga pengguna hanya dapat menghapus file dari direktori yang mereka buat ini.