Kamis, 28 November 2013

Linux File Permissions

Linux  dirancang  untuk lingkungan  multi-user(banyak  pengguna).  Dalam  lingkungan  yang  lebih  dari  satu pengguna, sangat penting untuk memilki sistem yang aman untuk menentukan file mana yang hanya bisa diakses oleh kita sendiri  dan file mana yang bisa diakses oleh pengguna lain.

Kepemilikan File
Tiap file di sistem linux kita, termasuk direktori dimiliki pengguna tertentu dan grup. Oleh karena itu hak akses file didefinisikan secara terpisah untuk user, group dan other.
User : pengguna yang menciptakan file tersebut akan menjadi pemiliknya
Group : Semua pengguna yang termasuk ke dalam kelompok yang memiliki file tersebut akan memiliki hak akses yang sama ke
fileOther : pengguna yang bukan pemilik file, bukan juga termasuk dalam kelompok.

Permission file
Ada tiga jnis izin akses di Linux yaitu :
1.      Read : pada file biasa, artinya file itu dapat dibuka dan dibaca. Kalau pada direktori artinya kita bisa lihat isi yang ada di direktori tersebut.
2.      Write : pada file basa artinya kita bisa modifikasi file / nulis data baru ke file. Kalau pada direktori artinya kita bisa menambah, menghapus dan mengubah nama file dalam direktori
3.      Execute : pada file biasa artinya kita bisa menjalankan file sebagai program atau shell script. Kalau pada direktori kita bisa mengakses file dalan direktori dan memasukkannya, dengan perintah cd.

Melihat Hak Akses
Kita bisa melihat hak akses dari file dengan cara mengetikkan perintah : ls –l.
Sekarang perhatikan baik-baik dikolom pertama
Karakter pertama menyatakan tipe file tersebut, menunjukkan :
d = directory
- = regular file/ file biasa
l = symbolic link
s = Unix domain socket
p = named pipe
c = character device file
b = block device file
Kalau 9 karakter berikutnya merupakan pernyataan perizinan, dibagi jadi 3 pengguna (user,  grup, other) dan tiap pengguna punya 3 karakter yaitu : rwx
r artinya read permission
w artinya write permission
x artinya execute permission
- artinya no permission, jadi dia ga punya hak akses
Mengatur hak akses
kita bisa mengatur hak akses dari file kita, yaitu dengan perintah chmod, ada dua mode yaitu
mode simbolik dan mode numerik.

Mode Simbolik
Mode simbolik cukup mudah diingat. Pertama,  memutuskan apakah mengatur hak akses bagi pengguna (u), kelompok (g), lainnya (o), atau ketiganya (a). Kemudian menambahkan izin (+), hapus (-), atau menghapus izin sebelumnya dan menambahkan yang baru (=). Selanjutnya mengatur izin read (r), write (w), atau execute (x).
Contoh :
1.      menambahkan hak akses execute pada group : chmod g+x contohfile
2.      menghapus hak akses execute pada user : chmod u-x contohfile
Mode Numerik
di mode numerik ini diwakili tiga digit nomor oktal.
4 = read (r)
2 = write (w)
1 = execute (x)
0 = tidak ada izin (-)
Nah untuk mendapatkan bit permission yang diinginkan, kita tinggal jumlahin aja angka yang sesuai dengan hak aksesnya. Misal untuk user mau izinnya jadi r-x : 4+0+1 =5, untuk grup sama other mau izinnya r-- : 4+0+0 = 4.
Referensi cepat untuk pengaturan hak akses file dalam mode numerik mungkin membantu :
0  ---
1  --x
2  -w-
3  -wx
4  r—
5  r-x
6  rw-
7  rwx

Mengubah kepemilikan file dan direktori
Pemilik file arau direktori dapat digganti menjadi milik user lain. Buat mengggantinya kita pake perintah chown.
chown pemilik_baru nama_file/direktori
Salah satu option yang ada di chown adalah –R yang fungsinya mengubah permission semua file yang ada dalam subdirektori dalam direktori yang sedang aktif.
Perintah chown harus dilakukan melalui root. User pengganti sudah harus ada dalam sistem, caranya ketik adduser <nama_user>.


Manajemen File dan Direktori

Manajemen File
1.    Membuat file barut
ouch <nama_file_baru>
2.    Menghapus file
rm <nama_file>
3.    Menyalin file
cp <file_yang_akan_disalin> <dir_tujuan>
4.    Mengganti nama / memindahkan file
memindahkan
mv <file_yang_akan_dipindah> <file_tujuan>
mengganti nama
mv nama_file_lama nama_file_baru
5.    Sorting
Menampilkan file yang diurutkan berdasarkan waktu (terbaru hingga terlama)
ls -lt
Menampilkan file berdasarkan ukuran file (besar-kecil)
ls –lS
Dengan tambahan –r dapat membalikkan urutan, misal dengan ls –lrS berarti 6. mengurutkan daftar file dari yang terlama hingga terbaru
6.    Menyalin satu atau banyak file atau direktori
cp
Ada beberapa pilihan option untuk perintah cp dan mv, yaitu :
-f atau --force : mencoba menghapus file walaupun file tidak dapat ditulis
-i atau --interactive : akan ada konfirmasi sebelum mencoba untuk mengganti file yang ada
-b atau –backup : membuat cadangan file dari file yang akan diganti
7.    Kompresi file
Untuk memperkecil ukuran file.
Kompresi dengan gzip
gzip <nama_file>
Dekompresi gzip
gzip -d <nama_file>.gz
Kompresi dengan bzip2
bzip2 <nama_file>
Dekompresi bzip2
bunzip2 <nama_file>.bz2

Manajemen Direktori
1.    Membuat direktori
mkdir <nama_direktori> 
2.    Membuat banyak direktori
mkdir nama_dir1 nama_dir2 nama_dir3
3.    Membuat direktori bersarang
mkdir –p nama_dir1/nama_dir2/nama_dir3
4.    Menghapus direktor
rmdir <nama_direktori>
5.    Memindahkan atau mengganti nama direktori
memindahkan
mv <dir_yang_akan_dipindah> <direkori_tujuan>
mengganti nama
mv nama_lama nama_baru
6.    Melihat daftar direktori
ls
7.    Menampilkan daftar direktori dengan format yang panjang
ls -al
8.    Mengecek lokasi direktori saat ini
pwd
9.    Pindah ke direktori lain
cd <dir_tujuan>
10.  Pindah ke direktori home
 cd ~
11.  Pindah satu direktori ke direktori teratas / kembali ke direktori sebelumnya
cd ..