Posted by : Unknown Selasa, 30 Juni 2015



Izin Akses Unix
1. Jenis Pemakai
Pada sistem UNIX dikenal dua jenis pemakai yaitu:
·         Pemakai biasa adalah pemakai yang di beri ijin untuk menggunakan sistem dan beberapa fasilitas lain dalam Unix dengan batas – batas perijinan tertentu. Dengan demikian pemakai biasa tidak dapat secara bebas keluar masuk  direktori lain atau tidak dapat secara bebas menggunakan file – file di dalam sistem.
·         Super user adalah pemakai yang memiliki hak istimewa di dalam sistem Unix karena memiliki kemampuan yang tidak di batasi oleh perijinan yang diterapkan pada sistem. Super user dapat keluar masuk direktori atau menggunakan file secara bebas. Pada umumnya super user dimiliki oleh administrator sistem. Administrator sistem adalah pemakai yang bertanggung jawab untuk mengelola sistem.

2. Izin Mengakses pada File dan Direktori

Unix membagi 3 kelas yang berhak mengakses sebuah file :
·         Owner adalah pemakai yang menciptakan file
·         Group adalah kelompok dari sejumlah pemakai (setiap pemakai mempunyai group misalnya sejumlah orang yang terlibat dalam sebuah proyek mempunyai group yang sama dan berhak mengakses suatu file dengan hak akses yang sama).
·         Other adalah pemakai diluar owner dan group. 

UNIX juga memberikan 3 jenis model akses terhadap sebuah file, yaitu:
·         Read adalah izin untuk membaca file atau nama file yang ada pada sebuah direktori.
·         Write adalah izin untuk memodifikasi, menciptakan atau menghapus entri di direktori.
·         Execute adalah izin untuk mengeksekusi file (file executable seperti who, cal, atau file shell script).
Tanda yang digunakan untuk mengakses file adalah :
r           = Hak read
w         = Hak write
x          = Hak execute
-           = Tidak ada izin
r           w         x         r          w        x         r          w        x
Owner                         Group                          Other


Contoh :
·         r w x r w x - - xØ
Menyatakan bahwa owner dan group mempunyai izin read, write dan execute, tetapi other hanya memiliki izin execute
·          r w x - - - - - -Ø
Menyatakan bahwa owner mempunyai izin read, write dan execute, tetapi group dan other sama sekali tidak memiliki akses file.
3. Mengubah Model Akses dan Kepemilikan File
Perintah yang berkaitan dengan model akses dan kepemilikan file atau direktori yaitu:
– chmod (change mode)
– chown (change owner)
– chgrp (change group)
a)      Format perintah chmod
Struktur dasar dari perintah chmod adalah :
chmod [OPTION] [--recursive] [--changes] [--silent] [--quiet] [--verbose] [--help] [--version] mode file
OPTION:
-c, -changes                 : Verbose, menampilkan hanya file-file yang memiliki hak akses yang berubah.
-f, -silent, -quiet          : Tidak menampilkan pesan kesalahan mengenai file-file yang hak aksesnya tidak dapat diubah.
-v, -verbose                 : Menampilkan penjelasan perubahan hak akses.
-R, -recursive              : Secara rekursif merubah hak akses direktori dan isinya.
-help                            : Menampilkan cara penggunaan program.
-version                       : Menampilkan informasi versi program.
Perintah chmod merubah hak akses file menurut mode. Mode disini dapat berupa sebuah simbol atau angka oktal yang mewakili pola bit untuk membuat perubahan hak akses yang baru. Chmod tidak akan merubah hak akases dari symbolic link; sistem call chmod tidak dapat mengubah hak akses file-file tersebut.
§  Penggunaan Mode Simbol
Struktur dasar perintah untuk penggunaan mode simbol adalah sebagai berikut :
‘[ugoa...][[+-=][rwxXstugo...]...][,...]’

Keterangan :
u : Pemilik (user)
g : Group
o : Other
a : Seluruh user
+ : Tanda ini menyebab sebuah hak akses tersebut ditambahkan ke sebuah file.
-  : Tanda ini menyebabkan hak akses dihapus.
= : Tanda ini menyebabkan hanya hak akses itu saja yang dimiliki oleh file yang bersangkutan.
r : Hak akses untuk baca.
w : Hak akses tulis.
x : Hak akses eksekusi.
X : Mengeksekusi hanya bila file adalah sebuah direktori atau sudah memiliki hak akses eksekusi untuk beberapa user.
s : Mengeset ID user atau ID group pada saat eksekusi.
t : Menyimpan teks program pada swap device.

Karakter r diwakili bilangan 4
Karakter w diwakili bilangan 2
Karakter x diwakili bilangan 1
Tanpa izin akses diwakili oleh bilangan 0

Contoh: $ chmod 700 nama_file [4(r)+2(w)+1(x)=7]
Jika ingin memberi akses read, write, execute pada user dan tanpa izin akses pada group dan other.

Untuk mengubah kepemilikan sebuah file kita bisa mempergunakan perintah chown yang memiliki format yang sama dengan perintah chmod. Bedanya yang kita ubah adalah kepemilikan sebuah file. Sintak yang digunakan adalah:
chown <users><objek yang ingin diubah>
Misalnya kita ingin mengubah kepemilikan folder windowshare diatas, dari root kepada user dengan login linuz, maka kita tinggal melakukan perintah:
# chown linuz /home/windowshare
Untuk mengubah group pemilik sebuah file kita bisa mempergunakan perintah chgrp yang juga memiliki format yang sama dengan perintah chown. Bedanya yang kita ubah adalah group pemiliknya. Misalkan kita ingin mengubah group pemilik folder windowshare diatas, dari users kepada group linuzgroup, kita tinggal melakukan perintah:
#chgrp linuzgroup /home/windowshare
5. Link antar File
·         Symlink
Symlink adalah file khusus yang berisi path absolut atau relatif. Saat sebuah path hendak diresolusi (yaitu, ditelusuri elemen-elemennya dari teratas hingga terbawah untuk menemukan file/direktori), jika elemen path mengandung symlink maka ini akan dapat "membelokkan" atau mengubah proses pencarian.
Contoh: jika /home/steven adalah sebuah direktori, /home/steven/tmp adalah sebuah symlink yang berisi path "/tmp" (path absolut) maka ketika /home/steven/tmp diresolusi, hasilnya adalah /tmp. Dan ketika /home/steven/tmp/f1.txt diresolusi, hasilnya adalah /tmp/f1.txt.
$ cd /tmp

$ echo "ini file /tmp/f1.txt" > f1.txt; # membuat file contoh

$ cd /home/steven

$ ln -s /tmptmp; # membuatsymlinkke /tmp

$ ls -l tmp
lrwxrwxrwx 1 stevensteven 4 2008-06-28 15:23 tmp -> /tmp

$ ls -l /home/steven/tmp/1.txt; # akanmerujukke /tmp/f1.txt
-rw-r--r-- 1 stevensteven 2 2008-06-28 15:26 tmp3/f1.txt

Contoh lain, jika /home/steven/bin adalah sebuah symlink ke "../scripts" (path relatif) maka ketika /home/steven/bin/script1 diresolusi akan menjadi /home/steven/scripts/script1.
Catatan: seperti bisa dilihat pada contoh di atas, perintah ls menampilkan symlink beserta isi/targetnya dengan notasi tanda panah ->.
Saya yakin konsep symlink ini tidak terlalu sulit untuk dimengerti. Bagi pemakai Windows, symlink ini mirip seperti file shortcut (*.LNK), walau kelakuannya tidak persis sama (namun NTFS di Vista memiliki symlink yang lebih mirip Unix).


Membaca/tulis path yang mengandung symlink
Jika sebuah symlink dibaca, maka yang terbaca adalah file hasil resolusi.Mengikuti contoh di atas:
$ cat /home/steven/tmp/1.txt
ini file /tmp/f1.txt
$ cat /tmp/1.txt
ini file /tmp/f1.txt

Demikian juga jika kita hendak mengedit atau menulisi sebuah symlink:
$ echo "file initelahberubahisinya" >/home/steven/tmp/1.txt
$ cat /home/steven/tmp/f1.txt
File ini telah berubah isinya
$ cat /tmp/f1.txt
File ini telah berubah isinya
Dalam membaca/tulis file, permission yang akan dipakai pun adalah permission dari target symlink (file aslinya), bukan permission dari symlink itu sendiri. Malah, permission sebuah symlink (yang ditampilkan dengan perintah ls -l) itu tidak memiliki kegunaan apa-apa karena pengecekan permission selalu dilakukan pada target symlink. Hanya ownership symlink saja yang memiliki arti.
$ cd /tmp
$ ln -s /etc/passwd p; # membuatsymlinkke file password sistem
$ echo "tambah 1 baris ah" >> p
bash: p: Permission denied
Perintah terakhir  gagal karena meskipun symlink p dibuat oleh kita, namun target symlink /etc/passwd adalah  milik root dan tidak dapat sembarangan ditulisi user biasa.
Jika symlink terhapus, file utamanya tentu saja tidak ikut terhapus.
$ rm p
$ ls -l /etc/passwd; # file password sistemmasihada
-rw-r--r-- 1 root root 4700 2008-06-23 13:47 /etc/passwd
Membuat symlink
Seperti telah dituliskan di contoh paling awal, untuk membuat sebuah symlink, digunakan perintah ln dengan opsi -s. Sintaksnya adalah:
$ ln -s TARGET SYMLINK
Dengan kata lain, target disebutkan terlebih dulu. Contoh penggunaan symlink bisa dilihat pada beberapa contoh di atas.
Di bahasa-bahasa pemrograman juga terdapat fungsi untuk membuat symlink misalnya symlink() di PHP dan Perl.

·         Hard Link

Berbeda dengan symlink, hard link lebih jarang digunakan olehpemakai awam, tapi sebetulnya semua file di file system Unix adalah hard link.
Saat sebuah file system diformat/diciptakan, file system dibagi menjadi beberapa daerah. Sebagian kecil daerah (mis: 1%) yaitu daerah yang menyimpan informasi tentang file (meta data file, seperti ukuran, permission, tipe file, dsb) dalam bentuk tabel inode. Setiap inode menyimpan informasi tentang satu file, termasuk pointer keblok data file. Mayoritas daerah (mis: 99%) berisi blok-blok data untuk menyimpan isi file itu sendiri. Inode tidak mengandung informasi nama file.
Kita dapat menciptakan nama file yang merujuk pada (hard link) inode tertentu (mis: pada gambar, file1.txt merujuk ke inode #1 sementara file3.txt merujuk ke inode #3). Kita dapat menambahkan nama file lain (yang bisa berada di direktori lain) yang merujuk pada inode yang sama (dalam gambar, file2.txt merujuk pula ke inode #1). Dengan demikian, kedua nama file itu merupakan hard link ke inode yang sama, ke file yang sama. File1.txt, file2.txt, file3.txt dan semua file lain yang ada semua merupakan hardlink, tapi dalam kasus ini file1.txt dan file2.txt akan identik isinya karena merujuk ke file yang sama.
Inode menyimpan juga jumlah link yang sedang merujuk ke dirinya. Ini bisa dilihat misalnya dengan perintah ls.Contoh:
$ cd /usr/bin
$ ls -l perl*
-rwxr-xr-x 2 root root 1212352 2008-05-08 20:51 perl
-rwxr-xr-x 2 root root 1212352 2008-05-08 20:51 perl5.10.0
-rwxr-xr-x 1 root root   38086 2008-05-08 20:50 perlbug
-rwxr-xr-x 1 root root     224 2008-05-08 19:15 perldoc
...
Perhatikankolomkedua, yaitu angka 2 dan 1. Ini menunjukkan bahwa perl dan perl5.10.0 itu memiliki 2 hard link ke dirinya. Dan karena kedua file ini ukuran, tanggal, dan ownernya sama, maka ada kemungkinan merujuk ke inode yang sama (nomor inode defaultnya tidak diperlihatkan oleh perintah ls, namun jika ingin melihatnya anda dapat menggunakan opsi -i):
$ ls -li
  541472 -rwxr-xr-x 2 root root 1212352 2008-05-08 20:51 perl
  541472 -rwxr-xr-x 2 root root 1212352 2008-05-08 20:51 perl5.10.0
  541452 -rwxr-xr-x 1 root root   38086 2008-05-08 20:50 perlbug
26411884 -rwxr-xr-x 1 root root     224 2008-05-08 19:15 perldoc
Berbeda dengan symlink pula, dalam konteks hardlink kedudukan masing-masing link sejajar, sementara di symlink kedudukannya berbeda: yang satua dalah "file aslinya", sementara yang satu merupakan "link" atau "bayangan"-nya. Di hard link, semua sama-sama merupakan link ke inode.

Membuat hard link

Untuk membuat hard link, Anda menggunakan perintah ln juga, tapi tanpa opsi -s. Misalnya:
$ echo "Inifileku" > file1.txt
$ ln file1.txt file2.txt
$ cat file2.txt
Inifileku
Berbeda dengan symlink, saat membuat hard link, sebuah file harus ada dulu (karena nomor inodenya harus diketahui). Sehingga, hard link disebut juga link yang pengecekannya "compile-time", bukan "run-time" seperti symlink. Tida ada istilah broken link pada hard link (kecuali jika terjadi  kerusakan file system tentunya).

Menghapus hard link

Menghapus hardlink tidak ada bedanya dengan menghapus file biasa. Pada penghapusan, yang terjadi adalah pemutusan link antara nama file dengan inode ybs (sehingga proses penghapusan di Unix disebut juga "unlink"). Blok data file dan entri inode tidak akan benar-benar dibebaskan (dinyatakan "free") sampai jumlah linknya mencapai nol. Mari kita lihat proses reference counting:
$ ls -l file{1,2}.txt
-rw-r--r-- 2 stevensteven 8 2008-06-28 18:44 file1.txt
-rw-r--r-- 2 stevensteven 8 2008-06-28 18:44 file2.txt
$ rm file1.txt
-rw-r--r-- 1 stevensteven 8 2008-06-28 18:44 file2.txt
Saat sebuah file dihapus, jumlah linknya berkurang  menjadi 1. Tapi karena masih ada link, blok data file tidak akan benar-benar dihapus. Barulah ketika file1.txt dihapus pula, file menjadi unreachable karena tidak ada link yang merujuknya. Entri inode dan blok data dapat dinyatakan bebas untuk dipakai file lain.

Kegunaan hard link

Sama seperti symlink, hard link juga mengizinkan kita membuat file yang muncul di beberapa tempat dengan beberapa nama sekaligus. Namun penggunaan hard link lebih jarang. Salah satu contoh:
Kelakuan berbeda bergantung  nama. Sebuah program dapa t memilih untuk berkelakuan berbeda jika dipanggil dengan nama berbeda.
ls -l /usr/bin/sudo{,edit}
-rwsr-xr-x  2 root   root           91700 2006-04-15 14:39 sudo
-rwsr-xr-x  2 root   root           91700 2006-04-15 14:39 sudoedit
Jika dipanggil sebagai sudo, maka program ini akan mengeksekusi program. Jika dipanggil sebagai sudoedit maka program ini memanggil editor untuk mengedit /etc/sudoers. Sebetulnya programnya hanya satu.
Contoh program lain yang memiliki dua nama tapi sebetulnya hard link ke file yang sama: unzip dan zipinfo, if up, dan if down, bzip2 dan bunzip2.
Sebetulnya alias nama ini bisa pula dilakukan dengan symlink, mis:
/usr/bin/unzip -> /usr/bin/zip
Namun umumnya untuk skenario seperti ini, hard link yang lebih banyak digunakan. Karena jika menggunakan symlink, bisa saja jika kita mengkopi atau memindahkan file, yang terkopi hanyalah symlinknya saja dan symlink menjadi patah, tidak dapat dipakai.
6. Editor Vi
Editor Vi (vee eye, dibaca vi ai) adalah editor berbasis layar yang digunakan oleh banyak pemakai UNIX. Editor ini pertama kali dikembangkan oleh William (Bill) Joy sewaktu ia menjadi graduate student di University of California at Berkeley pada tahun 1976.
Editor Vi memiliki banyak fasilitas yang sangat membantu para programer, namun para pemakai pemula menghindari Vi karena mereka menganggap editor ini sangat sulit dan membingungkan. Bab ini dimaksudkan untuk memperkenalkan pemakai pemula terhadap editor Vi.
·         Memulai dan Mengakhiri Vi
Editor Vi memungkinkan pemakai membuat berkas baru atau mengedit berkas yang telah ada. Untuk memulai Vi dari shell berikan perintah tedi:tedi$ vi. Bila berhasil, maka kemudian akan muncul
~
~ VIM - Vi IMproved
~
~ version 5.4
~ by Bram Moolenaar et al.
~
~ Vim is freely distributable
~ type :help uganda if you like Vim
~
~ type :q to exit
~ type :help or for on-line help
~ type :help version5 for version info
Layar tersebut menandakan bahwa Vi telah siap digunakan.
Anda dapat memulai editor Vi tanpa memasukkan nama berkas, tetapi bila anda ingin menyimpan hasil kerja anda, anda perlu memberitahu Vi nama berkas anda untuk menyimpannya.
Untuk mengedit berkas yang telah ada, perintah yang diberikan adalah "vi namaberkas". Di bagian kiri layar akan tampak tilde (~). Di bagian bawah layar, akan terlihat nama berkas yang sedang anda edit, serta ukuran berkasnya, seperti tampak pada cuplikan berikut ini :
"filename" 21 lines, 385 characters
Untuk mengakhiri Vi, tekan lalu ketikkan :q
Bila berhasil maka anda akan kembali ke shell.
Navigasi Arah dalam Vi
Untuk memindahkan kursor dalam editor Vi, dapat anda gunakan tombol-tombol sebagai berikut :
            k
h                     l
            j
Petunjuk :
Tombol h ada di kiri, untuk bergerak ke kiri.
Tombol l ada di kanan dan untuk bergerak ke kanan.
Tombol j mirip panah ke bawah
Dalam versi Vi yang baru, fungsi-fungsi tersebut dapat pula dilakukan dengan menggunakan tombol arah yang terdapat pada keyboard.
Selain itu terdapat pula beberapa perintah untuk pergerakan kursor yang lain yaitu :
^g : untuk berpindah ke baris tertentu.
^F : berpindah satu layar penuh ke bawah.
^B : berpindah satu layar penuh ke atas.
^D : berpindah setengah layar ke bawah.
^U : berpindah setengah layar ke atas.
^w : berpindah satu kata ke depan.
^b : berpindah satu kata ke belakang.
Tanda ^ adalah tanda tombol Ctrl, ^F artinya anda harus menekan tombol Ctrl bersamaan dengan tombol kunci F.
·         Mengedit Teks
Untuk memasukkan teks berikan perintah i (insert) dengan terlebih dulu beralih ke mode perintah (tekan ESC). Di bagian bawah layar akan muncul pesan sebagai berikut :
~
--INSERT—
Hal ini menandakan bahwa Vi telah siap menerima teks yang akan anda masukkan. Anda lalu dapat memasukkan teks yang anda inginkan. Dengan perintah i maka teks yang akan dimasukkan ditambahkan sebelum posisi kursor saat ini. Selain itu terdapat pula perintah a yang akan menambah teks setelah posisi kursor saat ini. Dua buah perintah berikutnya yang dapat juga digunakan untuk memasukkan teks adalah perintah o dan O. Perintah odigunakan untuk membuka newline setelah baris saat ini dan menambah teks, sementara perintah O akan membuka newline sebelum baris saat ini dan menambah teks.
·         Menghapus Teks
Ada kalanya dalam melakukan pengeditan, kita menginginkan untuk menghapus suatu teks. Dalam Vi penghapusan teks dapat dilakukan dengan beberapa cara di antaranya adalah :
Menghapus karakter satu per satu
Menghapus satu buah baris
Untuk dapat menghapus karakter satu per satu dapat dilakukan di dalam command mode dengan menekan tombol lalu menekan tombol x pada saat kursor berada pada karakter yang ingin dihapus
Menaruh Teks (Put)
Bila anda ingin menaruh teks dapat dilakukan dengan cara terlebih dulu menghapus teks tersebut, lalu menaruhnya kembali dengan perintah put, yaitu dengan cara menekan tombol p.
Perhatikan cuplikan teks berikut ini :
2 ini dua
1 ini satu
4 ini empat
3 ini tiga

Teks tersebut berada dalam keadaan yang tidak berurutan, kita ingin mengurutkan teks tersebut, langkah-langkahnya adalah sebagai berikut :
- Berpindahlah ke mode perintah dengan menekan tombol
- Hapuslah baris yang berisi teks 2 dengan perintah dd
- Tempatkan kursor di baris berisi teks 1
- Tekan tombol p (put). Hasilnya adalah sebagai berikut :
·         Karakter-karakter khusus
^ : awal baris (pada awal ekspresi pencarian)
. : mencocokkan dengan karakter tunggal
* : mencocokkan dengan kosong atau lebih karakter sebelumnya
$ :akhir baris (pada akhir ekspresi pencarian)
[ :memulai suatu himpunan ekspresi cocok atau tidak cocok. Sebagai contoh : /kak[iae] akan cocok dengan : kaki kaka kake.ditaruh dalam ekspresi yang diescape dengan backslash untuk mencari akhir atau        awal sebuah kata. Contoh : / hanya mencari kata de, tetapi bukan kata-kata seperti : deh dan dessy.
Ø  :lihat karakter
Pencarian karakter mencari karakter yang dimasukkan setelah perintah.Perintah f dan F mencari karakter hanya pada baris saat ini.f mencari secara forward sementara F mencari secara backward dan kursor akan berpindah ke karakter yang ditemukan. Perintah t dan T mencari karakter hanya pada baris saat ini, namun untuk perintah t kursor berpindah ke posisi sebelum karakter, sementara T mencari secara backward hingga posisi setelah karakter.
Kedua set perintah ini dapat diulangi dengan menggunakan perintah ; atau ,. Perintah ; mengulangi perintah pencarian karakter terakhir dalam arah yang sama, sementara , mengulangi perintah pencarian dalam arah yang berlawanan.

·         Konfigurasi Editor Vi
Anda dapat mengkonfigurasi editor Vi anda pada saat ia memulai. Terdapat beberapa pilihan yang dapat diset dengan menggunakan perintah :set pada mode edit. Berikut ini adalah beberapa buah pilihan yang tersedia (dapat anda peroleh dengan mengetikkan :set all kemudian tekan Enter dalam mode perintah)
Beberapa pilihan ini memiliki nilai yang dapat diset dengan tanda "=" di dalamnya, sementara yang lain berupa set atau not set (pilihan ini merupakan pilihan yang disebut Boolean dan memiliki "no" di depannya untuk menandakan bahwa mereka tidak diset).
Penjelasan beberapa perintah di atas akan diberikan di bawah ini, dengan sebuah singkatan. Sebagai contoh, perintah set autoindent, anda dapat menulis : :set autoindent or :set ai. Untuk meng-unset-nya, anda dapat mengetikkan :set noautoindent or :set noai.

- Copyright © MyBlog -SOFTSKILL- Powered by MYBLOG - Designed by Parista Dwi Putra -