Loading..
Sponsored By :GoogleAdsense.

Monday, August 2, 2010

Hak akses di linux

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 :
Pemilik/Owner u
Grup/Group g
Global/World o
Semua diatas a
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

0 Comments:

Post a Comment

leave comment for this article...

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 
Photobucket