Hak akses adalah bagian penting lainnya dari aspek multiuser dari sebuah sistem berkas. Dengan hak akses, Anda dapat mengganti siapa saja yang dapat membaca, menulis, dan mengeksekusi berkas-berkas.
Informasi hak akses disimpan sebagai empat digit oktal, dengan setiap digitnya menentukan sekumpulan hak akses. Terdapat hak akses pemilik, hak akses grup, dan hak akses global. Digit oktal keempat digunakan untuk menyimpan informasi khusus seperti set user ID, set group ID, dan sticky bit. Nilai oktal yang ditentukan pada mode hak akses adalah (mereka juga memiliki huruf yang diasosiasikan dengan mereka yang ditampilkan oleh program-program seperti ls dan bisa digunakan oleh chmod):
Tabel 9-1. Nilai Oktal Hak Akses
Jenis Hak Akses | Nilai Octal | Nilai Huruf |
“sticky” bit | 1 | t |
set user ID | 4 | s |
set group ID | 2 | s |
read/baca | 4 | r |
write/tulis | 2 | w |
execute/eksekusi | 1 | x |
Anda menambahkan nilai oktal untuk setiap hak akses grup. Sebagai contoh, jika Anda ingin agar hak akses grup menjadi “read” dan “write”, Anda akan menggunakan “6” pada bagian grup dari informasi hak akses.
Hak akses default
bash adalah:
% ls -l /bin/bash
-rwxr-xr-x 1 root bin 477692 Mar 21 19:57 /bin/bash |
Tanda minus pertama akan digantikan dengan “d” jika merupakan sebuah direktori. Ketiga kelompok hak akses ditampilkan berikutnya (pemilik, grup, dan global). Kita melihat bahwa pemilik memiliki hak akses baca, tulis, dan eksekusi (
rwx). Grup hanya memiliki akses baca dan eksekusi (
r-x). Dan sisanya memiliki hanya baca dan eksekusi (
r-x).
Bagaimana kita menentukan hak akses pada berkas lain untuk mengandaikan milik
bash? Pertama, mari kita buat berkas contoh dengan nama example:
% touch /tmp/example
% ls -l /tmp/example
-rw-rw-r--- 1 david users 0 Apr 19 11:21 /tmp/example |
Kita akan menggunakan
chmod(1) (yang berarti “change mode (ganti mode)”) untuk menentukan hak akses untuk berkas example. Tambahkan angka oktal untuk hak akses yang Anda inginkan. Agar pemilik memiliki hak akses untuk baca, tulis, dan eksekusi, kita harus memberikan nilai
7. Baca dan eksekusi berarti
5. Jalankan bersamaan dan berikan pada
chmod seperti ini:
% chmod 755 /tmp/example
% ls -l /tmp/example
-rwxr-xr-x 1 david users 0 Apr 19 11:21 /tmp/example |
Sekarang Anda mungkin berpikir, “Kenapa tidak membuat sebuah berkas dengan hak akses tersebut di awal?” Jawabannya sederhana.
bash menyertakan sebuah built-in kecil yang disebut
umask. Ini disertakan pada sebagian besar shell Unix juga, dan mengontrol hak akses berkas yang diberikan pada berkas ketika diciptakan pertama kali. Kita membahas built-in
bash sampai beberapa tingkat pada
Bagian 8.3.1.
umask membutuhkan waktu agar terbiasa. Ia bekerja serupa dengan
chmod, hanya berkebalikan. Anda menentukan nilai oktal yang tidak Anda inginkan untuk ditampilkan ketika membuat berkas baru. Nilai default umask adalah
0022.
% umask
0022
% umask 0077
% touch tempfile
% ls -l tempfile
-rw-------- 1 david users 0 Apr 19 11:21 tempfile |
Lihat halaman manual untuk informasi lebih lanjut tentang
bash.
Untuk menentukan hak akses khusus dengan
chmod, tambahkan angka secara bersamaan dan letakkan pada kolom pertama. Sebagai contoh, untuk membuat set user ID dan set group ID, kita menggunakan 6 sebagai kolom pertama:
% chmod 6755 /tmp/example
% ls -l /tmp/example
-rwsr-sr-x 1 david users 0 Apr 19 11:21 /tmp/example |
Jika nilai oktal membingungkan Anda, Anda bisa menggunakan huruf dengan
chmod. Hak akses grup direpresentasikan sebagai :
Untuk melakukan hal-hal diatas, kita harus menggunakan beberapa perintah baris:
% chmod a+rx /tmp/example
% chmod u+w /tmp/example
% chmod ug+s /tmp/example |
Beberapa orang memilih menggunakan huruf dibandingkan angka. Keduanya akan menghasilkan hak akses yang sama.
Format oktal terkadang lebih cepat, dan yang paling sering Anda jumpai ada skrip shell. Meski demikian seringkali format huruf lebih hebat. Sebagai contoh, tidak ada cara mudah untuk mengganti hak akses satu grup dan dilain waktu juga menjaga grup lain pada berkas dan direktori ketika menggunakan format oktal. Hal ini sangatlah mudah dengan menggunakan huruf.
% ls -l /tmp/
-rwxr-xr-x 1 alan users 0 Apr 19 11:21 /tmp/example0
-rwxr-x--- 1 alan users 0 Apr 19 11:21 /tmp/example1
----r-xr-x 1 alan users 0 Apr 19 11:21 /tmp/example2
% chmod g-rwx /tmp/example?
-rwx---r-x 1 alan users 0 Apr 19 11:21 /tmp/example0
-rwx------ 1 alan users 0 Apr 19 11:21 /tmp/example1
-------r-x 1 alan users 0 Apr 19 11:21 /tmp/example2 |
Kita menyebutkan hak akses set user ID dan set group ID pada beberapa tempat diatas. Anda mungkin bertanya-tanya apa ini sebenarnya. Pada kondisi normal ketika Anda menjalankan sebuah program, program akan dijalankan dibawah account pengguna Anda. Sehingga memiliki semua hak akses yang Anda miliki. Hal yang sama berlaku juga untuk grup. Ketika Anda menjalankan sebuah program program akan dieksekusi dibawah grup aktual Anda. Dengan hak akses set user ID permissions, Anda bisa memaksa program untuk selalu berjalan dengan pemilik program (seperti “root”). Set group ID juga sama, tetapi untuk grup.
Hati-hati dengan ini, program dengan set user ID dan set group ID dapat membuka lubang keamanan besar pada sistem Anda. JIka Anda sering memberikan set user ID pada program yang dimiliki oleh
root, Anda mengijinkan semua orang untuk menjalankan program tersebut dan menjalankannya sebagai
root. Karena
root tidak memiliki batasan pada sistem, Anda bisa melihat bagaimana hal ini akan menimbulkan masalah keamanan yang sangat besar. Secara singkat, bukanlah ide yang jelek untuk memberikan hak akses set user ID dan set group ID, tetapi gunakan akal sehat.*slackware.linux.or.id
Also Like : Komputer
0 Comments:
Post a Comment
leave comment for this article...