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
$