Unix / Linux - Izin File / Mode Akses
Pada bab ini, kita akan membahas secara detail tentang izin file dan mode akses di Unix. Kepemilikan file adalah komponen penting dari Unix yang menyediakan metode aman untuk menyimpan file. Setiap file di Unix memiliki atribut berikut -
Owner permissions - Izin pemilik menentukan tindakan apa yang dapat dilakukan oleh pemilik file pada file tersebut.
Group permissions - Izin grup menentukan tindakan apa yang dapat dilakukan pengguna, yang merupakan anggota grup tempat file tersebut, dapat dilakukan pada file tersebut.
Other (world) permissions - Izin untuk orang lain menunjukkan tindakan apa yang dapat dilakukan semua pengguna lain pada file tersebut.
Indikator Izin
Saat menggunakan ls -l perintah, ini menampilkan berbagai informasi yang berkaitan dengan izin file sebagai berikut -
$ls -l /home/amrood
-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfile
drwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir
Di sini, kolom pertama menunjukkan mode akses yang berbeda, yaitu izin yang terkait dengan file atau direktori.
Izin dipecah menjadi tiga kelompok, dan setiap posisi dalam kelompok menunjukkan izin khusus, dalam urutan ini: baca (r), tulis (w), eksekusi (x) -
Tiga karakter pertama (2-4) mewakili izin untuk pemilik file. Sebagai contoh,-rwxr-xr-- menyatakan bahwa pemilik telah membaca (r), menulis (w) dan menjalankan (x) izin.
Grup kedua dari tiga karakter (5-7) terdiri dari hak akses untuk grup tempat file tersebut berada. Sebagai contoh,-rwxr-xr-- menyatakan bahwa grup memiliki izin baca (r) dan eksekusi (x), tetapi tidak ada izin tulis.
Kelompok terakhir dari tiga karakter (8-10) mewakili izin untuk orang lain. Sebagai contoh,-rwxr-xr-- mewakili bahwa ada read (r) hanya izin.
Mode Akses File
Izin file adalah baris pertahanan pertama dalam keamanan sistem Unix. Blok bangunan dasar dari izin Unix adalahread, write, dan execute izin, yang telah dijelaskan di bawah -
Baca
Memberi kemampuan untuk membaca, yaitu melihat konten file.
Menulis
Memberikan kemampuan untuk mengubah, atau menghapus konten file.
Menjalankan
Pengguna dengan izin eksekusi dapat menjalankan file sebagai program.
Mode Akses Direktori
Mode akses direktori terdaftar dan diatur dengan cara yang sama seperti file lainnya. Ada beberapa perbedaan yang perlu disebutkan -
Baca
Akses ke direktori berarti pengguna dapat membaca isinya. Pengguna dapat melihat filefilenames di dalam direktori.
Menulis
Akses berarti bahwa pengguna dapat menambah atau menghapus file dari direktori.
Menjalankan
Menjalankan direktori tidak terlalu masuk akal, jadi anggap ini sebagai izin lintas.
Seorang pengguna harus memiliki execute akses ke bin direktori untuk menjalankan file ls atau cd perintah.
Mengubah Izin
Untuk mengubah file atau izin direktori, Anda menggunakan file chmod(ubah mode) perintah. Ada dua cara untuk menggunakan chmod - mode simbolik dan mode absolut.
Menggunakan chmod dalam Mode Simbolik
Cara termudah bagi pemula untuk mengubah izin file atau direktori adalah dengan menggunakan mode simbolik. Dengan izin simbolis Anda bisa menambahkan, menghapus, atau menentukan set izin yang Anda inginkan dengan menggunakan operator di tabel berikut ini.
Sr.No. | Deskripsi & Operator Chmod |
---|---|
1 | + Menambahkan izin yang ditentukan ke file atau direktori. |
2 | - Menghapus izin yang ditentukan dari file atau direktori. |
3 | = Menetapkan izin yang ditentukan. |
Berikut contoh penggunaan testfile. Larils -1 pada testfile menunjukkan bahwa hak akses file adalah sebagai berikut -
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
Kemudian setiap contoh chmod perintah dari tabel sebelumnya dijalankan pada testfile, diikuti oleh ls –l, sehingga Anda dapat melihat perubahan izin -
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod u-x testfile
$ls -l testfile
-rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod g = rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
Inilah cara Anda dapat menggabungkan perintah ini dalam satu baris -
$chmod o+wx,u-x,g = rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
Menggunakan chmod dengan Izin Mutlak
Cara kedua untuk mengubah izin dengan perintah chmod adalah menggunakan angka untuk menentukan setiap set izin untuk file tersebut.
Setiap izin diberi nilai, seperti yang diperlihatkan tabel berikut, dan total setiap set izin memberikan nomor untuk set itu.
Jumlah | Representasi Izin Oktal | Ref |
---|---|---|
0 | Tidak ada izin | --- |
1 | Jalankan izin | --x |
2 | Izin menulis | -w- |
3 | Jalankan dan tulis izin: 1 (jalankan) + 2 (tulis) = 3 | -wx |
4 | Izin baca | r-- |
5 | Izin baca dan jalankan: 4 (baca) + 1 (eksekusi) = 5 | rx |
6 | Izin baca dan tulis: 4 (baca) + 2 (tulis) = 6 | rw- |
7 | Semua izin: 4 (baca) + 2 (tulis) + 1 (jalankan) = 7 | rwx |
Berikut adalah contoh menggunakan testfile. Larils -1 pada testfile menunjukkan bahwa hak akses file adalah sebagai berikut -
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
Kemudian setiap contoh chmod perintah dari tabel sebelumnya dijalankan pada testfile, diikuti oleh ls –l, sehingga Anda dapat melihat perubahan izin -
$ chmod 755 testfile
$ls -l testfile
-rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 743 testfile
$ls -l testfile
-rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 043 testfile
$ls -l testfile
----r---wx 1 amrood users 1024 Nov 2 00:10 testfile
Mengubah Pemilik dan Grup
Saat membuat akun di Unix, itu menetapkan owner ID dan a group IDuntuk setiap pengguna. Semua izin yang disebutkan di atas juga ditetapkan berdasarkan Pemilik dan Grup.
Tersedia dua perintah untuk mengubah pemilik dan grup file -
chown - Itu chown perintah singkatan "change owner" dan digunakan untuk mengubah pemilik file.
chgrp - Itu chgrp perintah singkatan "change group" dan digunakan untuk mengubah grup file.
Mengubah Kepemilikan
Itu chownperintah mengubah kepemilikan file. Sintaks dasarnya adalah sebagai berikut -
$ chown user filelist
Nilai pengguna dapat berupa name of a user pada sistem atau user id (uid) pengguna di sistem.
Contoh berikut akan membantu Anda memahami konsep -
$ chown amrood testfile
$
Mengubah pemilik file yang diberikan ke pengguna amrood.
NOTE - Pengguna super, root, memiliki kemampuan tidak terbatas untuk mengubah kepemilikan file apa pun, tetapi pengguna biasa hanya dapat mengubah kepemilikan file yang mereka miliki.
Mengubah Kepemilikan Grup
Itu chgrpperintah mengubah kepemilikan grup dari sebuah file. Sintaks dasarnya adalah sebagai berikut -
$ chgrp group filelist
Nilai grup bisa menjadi name of a group pada sistem atau the group ID (GID) dari grup di sistem.
Contoh berikut membantu Anda memahami konsep -
$ chgrp special testfile
$
Mengubah grup file yang diberikan menjadi special kelompok.
Izin File SUID dan SGID
Seringkali ketika sebuah perintah dijalankan, itu harus dijalankan dengan hak khusus untuk menyelesaikan tugasnya.
Sebagai contoh, ketika Anda mengubah kata sandi dengan ekstensi passwd perintah, kata sandi baru Anda disimpan dalam file /etc/shadow.
Sebagai pengguna biasa, Anda tidak punya read atau writeakses ke file ini untuk alasan keamanan, tetapi ketika Anda mengubah kata sandi, Anda harus memiliki izin menulis ke file ini. Artinya filepasswd Program harus memberi Anda izin tambahan sehingga Anda dapat menulis ke file /etc/shadow.
Izin tambahan diberikan ke program melalui mekanisme yang dikenal sebagai Set User ID (SUID) dan Set Group ID (SGID) bit.
Ketika Anda menjalankan program yang mengaktifkan bit SUID, Anda mewarisi izin dari pemilik program itu. Program yang tidak memiliki kumpulan bit SUID dijalankan dengan izin pengguna yang memulai program.
Ini juga terjadi dengan SGID. Biasanya, program dijalankan dengan izin grup Anda, tetapi grup Anda akan diubah hanya untuk program ini menjadi pemilik grup program.
Bit SUID dan SGID akan muncul sebagai huruf "s"jika izin tersedia. SUID tersebut"s" bit akan ditempatkan di bit izin tempat pemilik execute izin biasanya ada.
Misalnya, perintah -
$ ls -l /usr/bin/passwd
-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*
$
Menunjukkan bahwa bit SUID disetel dan perintah tersebut dimiliki oleh root. Huruf kapitalS dalam posisi eksekusi, bukan huruf kecil s menunjukkan bahwa bit eksekusi tidak disetel.
Jika bit lengket diaktifkan pada direktori, file hanya dapat dihapus jika Anda adalah salah satu pengguna berikut -
- Pemilik direktori tempel
- Pemilik file sedang dihapus
- Pengguna super, root
Untuk mengatur bit SUID dan SGID untuk direktori manapun coba perintah berikut -
$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname
$