My Little Daemon™

Simple, FreeBSD, SelinganJanuary 17, 2008 6:52 pm
Ketika login ke sistem FreeBSD, adakalanya kita perlu berganti user untuk melakukan suatu aktivitas yang membutuhkan hak akses lebih tinggi atau sebaliknya, menurunkan hak akses user login karena sudah tidak membutuhkan suatu hak akses tertentu. Untuk hal ini kita bisa menggunakan perintah su [switch user]. Yang perlu diingat ketika berpindah user, hak akses berikutnya yang terbawa adalah user akhir, namun direktori kerja/aktif tetap berada pada direktori kerja user sebelum switch. Tentu saja pastikan dulu paket sudo sudah terinstall di sistem FreeBSD kita.
 
$ pwd
/usr/home/handaru
$ su sakti
otp-md5 496 ko0807 ext
Password:
$ pwd
/usr/home/handaru
 
Untuk keluar dari user login terakhir, kembali ke user login semula, bisa digunakan perintah exit.
 
Dan…jika kita bermaksud naik ke level hak akses root [super user], kita bisa memasukkan user login kita ke group wheel :
 
# edit /etc/group
 
Record teratas berikut yang perlu di-edit :
 
wheel:*:0:root,handaru 
 
Baiklah, untuk memakainya kita bisa bisa dengan perintah su saja atau su root :
 
$ su root
Password:
komkecil# exit
exit
$ su
Password:
komkecil# pwd
/usr/home/handaru
 
Keberadaan su root [super user] ini sangat bermanfaat terutama jika kita me-remote server FreeBSD kita via SSH yang konfigurasi defaultnya di /etc/ssh/sshd_config adalah #PermitRootLogin no. Kita bisa login dengan user standar, lalu su aja, maka hak akses root berada dalam di ujung jari.
 
FreeBSD…tentu saja fleksibel.
 
Dedicated for Light Intermutimedia
Perusahaan Software Pulsa
 
Middle, FreeBSD 3:42 pm

Tabel proses adalah sebuah struktur data atribut-atribut yang berkenaan dengan proses-proses yang sedang diberjalan. Atribut-atribut itu meliputi PID, tipe terminal, status, waktu dan perintahnya itu sendiri. Untuk menampilkan proses-proses yang sedang berjalan, dapat digunakan perintah ps. Karena UNIX [baca FreeBSD] adalah sistem operasi multi user yang konsisten dalam memberlakukan hak ases atas suatu resource sistem oleh seorang user, maka proses-proses yang bisa  dijalankan oleh masing-masing user juga berbeda. Berikut untuk user standar :

$ ps
  PID  TT  STAT      TIME COMMAND
  406  p0  Ss     0:00.02 -sh (sh)
  408  p0  R+     0:00.00 ps

Bandingkan dengan jika kita login dengan root :

# ps
  PID  TT  STAT      TIME COMMAND
  539  v0  Ss+    0:00.01 /usr/libexec/getty Pc ttyv0
  540  v1  Ss+    0:00.01 /usr/libexec/getty Pc ttyv1
  541  v2  Ss+    0:00.01 /usr/libexec/getty Pc ttyv2
  542  v3  Ss+    0:00.01 /usr/libexec/getty Pc ttyv3
  543  v4  Ss+    0:00.01 /usr/libexec/getty Pc ttyv4
  544  v5  Ss+    0:00.01 /usr/libexec/getty Pc ttyv5
  545  v6  Ss+    0:00.01 /usr/libexec/getty Pc ttyv6
  546  v7  Ss+    0:00.01 /usr/libexec/getty Pc ttyv7
  534 con- S      0:00.00 sh /etc/rc autoboot
  535 con- S      0:00.00 logger -p daemon.notice -t fsck
  537 con- S      0:00.00 sh /etc/rc autoboot
  549  p0  S      0:00.02 su
  550  p0  S      0:00.04 _su (csh)
  553  p0  R+     0:00.00 ps

Baiklah kita mulai dengan menjelaskan atribut dan record di atas. PID boleh dianggap sebagai indeks dari proses-proses yang berjalan [baca pula keterangan perihal PID DI SINI]. TT adalah tipe terminal yang digunakan untuk mengeksekusi. v0 artinya virtual console mesin FreeBSD nomor yang pertama, v1 adalah virtual console kedua dan seterusnya. Suatu proses jika tak menemukan console terminal yang bisa digunakannya, dia menggunakan con-. p0 adalah pseudo terminal pertama. Pseudo terminal biasanya digunakan untuk menyiapkan terminal bagi X Windows system atau untuk switch user [su]. Untuk status akan kita bahas pada kesempatan lain ketika kita mulai membuat program aplikasi sendiri dimana untuk berjalannya dia membutuhkan alokasi proses.

Berikutnya, untuk menampilkan semua proses yang berjalan di sistem, termasuk proses yang tak memiliki controlling terminal, bisa digunakan opsi -x. Untuk menampilkan semua proses oleh semua user, dapat diberikan opsi -a. Dan untuk menampilkannya dalam format panjang, opsi -l bisa ditambahkan.

# ps -axl
  UID   PID  PPID CPU PRI NI   VSZ   RSS MWCHAN STAT  TT       TIME COMMAND
    0     0     0   0  12  0     0     0 -      WLs   ??    0:00.00 [swapper]
    0     1     0   0   8  0   772   416 wait   ILs   ??    0:00.02 /sbin/init
    0     2     0   0  -8  0     0     8 -      DL    ??    0:00.12 [g_event]
    0     3     0   0  -8  0     0     8 -      DL    ??    0:00.15 [g_up]
    0     4     0   0  -8  0     0     8 -      DL    ??    0:00.20 [g_down]
    0     5     0   0   8  0     0     8 -      DL    ??    0:00.00 [thread tas
    0     6     0   0   8  0     0     8 -      DL    ??    0:00.00 [acpi_task_
    0     7     0   0   8  0     0     8 -      DL    ??    0:00.00 [acpi_task_
    0     8     0   0   8  0     0     8 -      DL    ??    0:00.00 [acpi_task_
    0     9     0   0   8  0     0     8 -      DL    ??    0:00.00 [kqueue tas
    0    10     0   0 -16  0     0     8 audit_ DL    ??    0:00.00 [audit_work
    0    11     0  48 171  0     0     8 -      RL    ??   37:29.75 [idle]
    0    12     0   0 -32  0     0     8 -      WL    ??    0:02.18 [swi4: cloc
    0    13     0   0 -36  0     0     8 -      WL    ??    0:00.00 [swi3: vm]
    0    14     0   0 -44  0     0     8 -      WL    ??    0:00.04 [swi1: net]
    0    15     0   0 -16  0     0     8 -      DL    ??    0:00.11 [yarrow]
    0    16     0   0 -28  0     0     8 -      WL    ??    0:00.00 [swi5: +]
    0    17     0   0 -40  0     0     8 -      WL    ??    0:00.00 [swi2: camb
    0    18     0   0 -24  0     0     8 -      WL    ??    0:00.00 [swi6: task
    0    19     0   0 -24  0     0     8 -      WL    ??    0:00.00 [swi6: Gian
    0    20     0   0 -52  0     0     8 -      WL    ??    0:00.00 [irq9: acpi
    0    21     0   0 -80  0     0     8 -      WL    ??    0:00.00 [irq16: cbb
    0    22     0   0 -16  0     0     8 cbb cv DL    ??    0:00.00 [cbb0]
    0    23     0   0 -16  0     0     8 cbb cv DL    ??    0:00.00 [cbb1]
    0    24     0   0 -64  0     0     8 -      WL    ??    0:00.00 [irq17: uhc
    0    25     0   0   8  0     0     8 usbevt DL    ??    0:00.00 [usb0]
    0    26     0   0   8  0     0     8 usbtsk DL    ??    0:00.00 [usbtask]
    0    27     0   0 -64  0     0     8 -      WL    ??    0:00.00 [irq18: uhc
    0    28     0   0   8  0     0     8 usbevt DL    ??    0:00.00 [usb1]
    0    29     0   0 -64  0     0     8 -      WL    ??    0:00.00 [irq19: ehc
    0    30     0   0   8  0     0     8 usbevt DL    ??    0:00.00 [usb2]
    0    31     0   0 -68  0     0     8 -      WL    ??    0:00.04 [irq20: fxp
    0    32     0   0 -64  0     0     8 -      WL    ??    0:00.05 [irq14: ata
    0    33     0   0 -64  0     0     8 -      WL    ??    0:00.00 [irq15: ata
    0    34     0   0   8  0     0     8 usbevt DL    ??    0:00.00 [usb3]
    0    35     0   0 -64  0     0     8 -      WL    ??    0:00.00 [irq23: uhc
    0    36     0   0   8  0     0     8 usbevt DL    ??    0:00.00 [usb4]
    0    37     0   0   0  0     0     8 tzpoll DL    ??    0:00.19 [acpi_therm
    0    38     0   0   0  0     0     8 coolin DL    ??    0:00.00 [acpi_cooli
    0    39     0   0  -8  0     0     8 -      DL    ??    0:00.01 [fdc0]
    0    40     0   0 -48  0     0     8 -      WL    ??    0:00.00 [swi0: sio]
    0    41     0   0 -60  0     0     8 -      WL    ??    0:00.00 [irq7: ppc0
    0    42     0   0 -60  0     0     8 -      WL    ??    0:00.00 [irq1: atkb
    0    43     0   0 -16  0     0     8 psleep DL    ??    0:00.00 [pagedaemon
    0    44     0   0  20  0     0     8 psleep DL    ??    0:00.00 [vmdaemon]
    0    45     0   0 171  0     0     8 pgzero DL    ??    0:00.28 [pagezero]
    0    46     0   0 -16  0     0     8 psleep DL    ??    0:00.02 [bufdaemon]
    0    47     0   0  20  0     0     8 syncer DL    ??    0:00.10 [syncer]
    0    48     0   0  -4  0     0     8 vlruwt DL    ??    0:00.01 [vnlru]
    0    49     0   0 -16  0     0     8 sdflus DL    ??    0:00.02 [softdepflu
    0    50     0   0  12  0     0     8 -      DL    ??    0:00.18 [schedcpu]
    0   141     1 172  20  0  1252   728 pause  Is    ??    0:00.00 adjkerntz -
    0   253     1 172 117  0   516   376 select Is    ??    0:00.00 /sbin/devd
    0   282     1   0  96  0  1376  1028 select Ss    ??    0:00.03 /usr/sbin/s
    0   355     1   0  96  0  1288   824 select Ss    ??    0:00.01 /usr/sbin/u
    0   396     1   0  96  0  3524  2668 select Is    ??    0:00.01 /usr/sbin/s
    0   402   396   5   4  0  6276  3272 sbwait Is    ??    0:00.09 sshd: handa
 1001   405   402   1  96  0  6260  3256 select S     ??    0:00.09 sshd: handa
    0   409     1   0  96  0  3504  3048 select Ss    ??    0:00.09 sendmail: a
   25   413     1   0  20  0  3384  2808 pause  Is    ??    0:00.01 sendmail: Q
    0   429     1   0   8  0  1388  1100 nanslp Ss    ??    0:00.02 /usr/sbin/c
   88   548   472   0  20  0 57300 26132 kserel S     ??    0:02.08 /usr/local/
    0   539     1  77   5  0  1344   952 ttyin  Is+   v0    0:00.01 /usr/libexe
    0   540     1  77   5  0  1344   952 ttyin  Is+   v1    0:00.01 /usr/libexe
    0   541     1  77   5  0  1344   952 ttyin  Is+   v2    0:00.01 /usr/libexe
    0   542     1  77   5  0  1344   952 ttyin  Is+   v3    0:00.01 /usr/libexe
    0   543     1  77   5  0  1344   952 ttyin  Is+   v4    0:00.01 /usr/libexe
    0   544     1  77   5  0  1344   952 ttyin  Is+   v5    0:00.01 /usr/libexe
    0   545     1  77   5  0  1344   952 ttyin  Is+   v6    0:00.01 /usr/libexe
    0   546     1  77   5  0  1344   952 ttyin  Is+   v7    0:00.01 /usr/libexe
   88   472     1  77   8  0  1728  1376 wait   I    con-   0:00.02 /bin/sh /us
 1001   406   405   0   8  0  1756  1372 wait   Is    p0    0:00.02 -sh (sh)
    0   549   406   0   8  0  1776  1404 wait   I     p0    0:00.02 su
    0   550   549   0  20  0  4668  2936 pause  S     p0    0:00.05 _su (csh)
    0   648   550   0  96  0  1480   968 -      R+    p0    0:00.00 ps -axl

Untuk opsi perintah ps yang lain, monggo di-man ps. Terakhir untuk kali ini, jika Anda ingin menghentikan suatu proses, maka Anda bisa melakukan dengan perintah kill diikuti dengan PID proses tersebut. 

FreeBSD…feel free.

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa