Thursday, 27 August 2015

Prosesses, Sudo, dan Permission

Setiap kali kita menjalankan RPi akan terjadi banyak proses, dan setiap proses berdiri sendiri-sendiri, dan diperlakukan berbeda-beda pada task atau service. Kita coba melihat semua proses dengan perintah ps:

pi@raspberrypi ~/fol1 $ ps -aux
warning: bad ps syntax, perhaps a bogus '-'?
See http://gitorious.org/procps/procps/blobs/master/Documentation/FAQ
USER  PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2   2148  1312 ?        Ss   07:28   0:01 init [2]
root         2  0.0  0.0      0     0 ?        S    07:28   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    07:28   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   07:28   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    07:28   0:00 [rcu_preempt]
root         8  0.0  0.0      0     0 ?        S    07:28   0:00 [rcu_sched]
root         9  0.0  0.0      0     0 ?        S    07:28   0:00 [rcu_bh]
root        10  0.0  0.0      0     0 ?        S<   07:28   0:00 [khelper]
root        11  0.0  0.0      0     0 ?        S    07:28   0:00 [kdevtmpfs]
root        12  0.0  0.0      0     0 ?        S<   07:28   0:00 [netns]
root        13  0.0  0.0      0     0 ?        S<   07:28   0:00 [perf]
root        14  0.0  0.0      0     0 ?        S    07:28   0:00 [khungtaskd]
root        15  0.0  0.0      0     0 ?        S<   07:28   0:00 [writeback]
root        16  0.0  0.0      0     0 ?        S<   07:28   0:00 [crypto]
root        17  0.0  0.0      0     0 ?        S<   07:28   0:00 [bioset]
root        18  0.0  0.0      0     0 ?        S<   07:28   0:00 [kblockd]
root        19  0.0  0.0      0     0 ?        S    07:28   0:01 [kworker/0:1]
root        20  0.0  0.0      0     0 ?        S<   07:28   0:00 [rpciod]
root        21  0.0  0.0      0     0 ?        S    07:28   0:00 [kswapd0]
root        22  0.0  0.0      0     0 ?        S    07:28   0:00 [fsnotify_mark]
root        23  0.0  0.0      0     0 ?        S<   07:28   0:00 [nfsiod]
root        29  0.0  0.0      0     0 ?        S<   07:28   0:00 [kthrotld]
root        30  0.0  0.0      0     0 ?        S<   07:28   0:00 [VCHIQ-0]
root        31  0.0  0.0      0     0 ?        S<   07:28   0:00 [VCHIQr-0]
root        32  0.0  0.0      0     0 ?        S<   07:28   0:00 [VCHIQs-0]
root        33  0.0  0.0      0     0 ?        S<   07:28   0:00 [iscsi_eh]
root        34  0.0  0.0      0     0 ?        S<   07:28   0:00 [dwc_otg]
root        35  0.0  0.0      0     0 ?        S<   07:28   0:00 [DWC Notificati
root        36  0.0  0.0      0     0 ?        S    07:28   0:00 [kworker/u2:1]
root        37  0.0  0.0      0     0 ?        S    07:28   0:00 [VCHIQka-0]
root        38  0.0  0.0      0     0 ?        S    07:28   0:00 [mmcqd/0]
root        39  0.0  0.0      0     0 ?        S<   07:28   0:00 [SMIO]
root        40  0.0  0.0      0     0 ?        S<   07:28   0:00 [deferwq]
root        41  0.0  0.0      0     0 ?        S    07:28   0:00 [kworker/u2:2]
root        42  0.0  0.0      0     0 ?        S    07:28   0:00 [kworker/0:2]
root        43  0.0  0.0      0     0 ?        S    07:28   0:00 [jbd2/mmcblk0p2
root        44  0.0  0.0      0     0 ?        S<   07:28   0:00 [ext4-rsv-conve
root       159  0.0  0.4   2888  2164 ?        Ss   07:28   0:00 udevd --daemon
root       305  0.0  0.4   2884  1940 ?        S    07:28   0:00 udevd --daemon
root       306  0.0  0.4   2884  1928 ?        S    07:28   0:00 udevd --daemon
root      1559  0.0  0.2   1752  1112 ?        S    07:29   0:00 /usr/sbin/ifplu
root      1562  0.0  0.2   1752  1184 ?        S    07:29   0:02 /usr/sbin/ifplu
root      1988  0.0  0.0      0     0 ?        S<   07:29   0:00 [cfg80211]
root      2061  0.0  0.5  27976  2520 ?        Sl   07:29   0:00 /usr/sbin/rsysl
root      2120  0.0  0.3   3800  1740 ?        Ss   07:29   0:00 /usr/sbin/cron
102       2128  0.0  0.3   3180  1640 ?        Ss   07:29   0:00 /usr/bin/dbus-d
avahi     2165  0.0  0.5   3484  2636 ?        S    07:29   0:00 avahi-daemon: r
avahi     2166  0.0  0.3   3384  1496 ?        S    07:29   0:00 avahi-daemon: c
ntp       2214  0.0  0.8   5600  3924 ?        Ss   07:29   0:00 /usr/sbin/ntpd
root      2251  0.0  0.6   6220  2928 ?        Ss   07:29   0:00 /usr/sbin/sshd
nobody    2279  0.0  0.3   2020  1400 ?        Ss   07:29   0:00 /usr/sbin/thd -
root      2331  0.0  0.3   2100  1436 ?        Ss   07:29   0:00 /sbin/dhcpcd
root      2341  0.0  0.3   3748  1596 tty1     Ss+  07:29   0:00 /sbin/getty --n
root      2342  0.0  0.3   3748  1640 tty2     Ss+  07:29   0:00 /sbin/getty 384
root      2343  0.0  0.3   3748  1640 tty3     Ss+  07:29   0:00 /sbin/getty 384
root      2344  0.0  0.3   3748  1744 tty4     Ss+  07:29   0:00 /sbin/getty 384
root      2345  0.0  0.3   3748  1640 tty5     Ss+  07:29   0:00 /sbin/getty 384
root      2346  0.0  0.3   3748  1640 tty6     Ss+  07:29   0:00 /sbin/getty 384
root      2347  0.0  0.3   2068  1584 ?        Ss+  07:29   0:00 /sbin/getty -L
root      2348  0.0  1.0   9344  4540 ?        Ss   07:30   0:00 sshd: pi [priv]
pi        2352  0.0  0.8   9344  3588 ?        S    07:30   0:00 sshd: pi@pts/0
pi        2353  0.0  1.0   6240  4540 pts/0    Ss   07:30   0:01 -bash
pi        2381  0.0  0.4   4460  2108 pts/0    R+   08:11   0:00 ps -aux
pi@raspberrypi ~/fol1 $

Atau dengan perintah ps -aux|less (gunakan tombol 'q' untuk keluar).

Dan kadang-kadang kita ingin mematikan suatu proses dari suatu program yang tidak ada respon, kita gunakan perintah 'kill' + PID

pi@raspberrypi ~ $ kill 17

Dengan perintah 'kill 17' maka proses bioset yang ber'id' PID 17 akan diberhentikan (ini hanya contoh, jangan lakukan bila tidak tahu apa yang dikerjakan, efek dari 'kill' (bila terjadi sesuatu yang tidak diinginkan) bisa diatasi dengan mem-boot ulang RPi). Perintah 'kill' hanya memberhentikan suatu proses saja, tidak menghapus atau mengubah dari setting.

Sudo adalah perintah yang mengizinkan siapa saja menjadi super user, ini dikarenakan linux merupakan operating system yang dapat digunakan oleh banyak orang, dengan aturan setiap orang dapat membuat, mengubah dan menghapus file-file mereka sendiri di tempat masing-masing di filesystem.  Sedangkan user 'root' adalah super user yang dapat setiap file di filesystem. Jadi bila kita sedang latihan jangan gunakan user root.

Kita pengguna RPi, menggunakan user 'pi', jadi kita tidak akan banyak merusakan data dengan ataupun tidak sengaja. Tetapi tetap 'sudo' adalah perintah yang relatif berbahaya. Bila kita melakukan sesuatu yang membuat RPi tidak bekerja seperti seharusnya, kita bisa membuatnya lagi dengan mengkopi SD card imagenya.

Sudo diperlukan untuk installing software, interaktif dengan hardware secara langsung, atau mengubah konfigurasi system, dan lain-lain yang sifatnya system administratif.

Permission pada sebuah file bisa dipisahkan dengan kategori pengguna dan  group. Permission pada file dapat kita lihat dengan perintah ls -l.



Kita ambil contoh direktori yang pertama adalah 'Desktop'

Untuk mengubah permission kita bisa mengunakan perintah 'chmod', untuk parameternya:


u
user
g
group
o
Yang lain tidak masuk group
a
semua
r
Read (baca)
w
Write (tulis)
x
Execute (menjalankan)
+
Penambahan permission
-
Pengurangan permission

Sebagai contoh:

  1. pi@raspberrypi ~ $ touch filepermission.txt
  2. pi@raspberrypi ~ $ ls -l
  3. total 48
  4. drwxr-xr-x 2 pi pi 4096 May  7 06:32 Desktop
  5. drwxr-xr-x 2 pi pi 4096 Aug 26 15:38 dir1
  6. -rw-r--r-- 1 pi pi  167 Aug 26 15:39 dir1.tar.gz
  7. drwxr-xr-x 2 pi pi 4096 Jul  3 21:16 Docs
  8. drwxr-xr-x 3 pi pi 4096 Aug 23 10:16 Documents
  9. drwx------ 2 pi pi 4096 May  7 06:56 Downloads
  10. -rw-r--r-- 1 pi pi    0 Aug 27 09:40 filepermission.txt
  11. drwxr-xr-x 2 pi pi 4096 Aug 27 07:32 fol1
  12. -rw-r--r-- 1 pi pi   88 Aug 26 15:53 hello.txt
  13. -rw-r--r-- 1 pi pi   88 Aug 26 15:54 hi.txt
  14. drwxrwxr-x 2 pi pi 4096 Jan 27  2015 python_games
  15. drwxr-xr-x 2 pi pi 4096 Aug 23 10:16 Scratch
  16. -rwxr-xr-x 1 pi pi   61 Aug 23 10:38 vnc.sh
  17. pi@raspberrypi ~ $


Diatas kita menbuat sebuah file txt kosong (baris no 10), dan kita lihat file yang kita buat memiliki permission -rw-r--r--, artinya untuk user memiliki permission read dan write, untuk group hanya read, dan untuk semua orang hanya read. Dan sekarang kita akan ubah group permission juga dapat write.
  1. pi@raspberrypi ~ $ chmod g+w filepermission.txt 
  2. pi@raspberrypi ~ $ ls -l 
  3. total 48 
  4. drwxr-xr-x 2 pi pi 4096 May 7 06:32 Desktop 
  5. drwxr-xr-x 2 pi pi 4096 Aug 26 15:38 dir1 
  6. -rw-r--r-- 1 pi pi 167 Aug 26 15:39 dir1.tar.gz 
  7. drwxr-xr-x 2 pi pi 4096 Jul 3 21:16 Docs 
  8. drwxr-xr-x 3 pi pi 4096 Aug 23 10:16 Documents 
  9. drwx------ 2 pi pi 4096 May 7 06:56 Downloads 
  10. -rw-rw-r-- 1 pi pi 0 Aug 27 09:40 filepermission.txt 
  11. drwxr-xr-x 2 pi pi 4096 Aug 27 07:32 fol1 
  12. -rw-r--r-- 1 pi pi 88 Aug 26 15:53 hello.txt 
  13. -rw-r--r-- 1 pi pi 88 Aug 26 15:54 hi.txt 
  14. drwxrwxr-x 2 pi pi 4096 Jan 27 2015 python_games 
  15. drwxr-xr-x 2 pi pi 4096 Aug 23 10:16 Scratch 
  16. -rwxr-xr-x 1 pi pi 61 Aug 23 10:38 vnc.sh 
  17. pi@raspberrypi ~ $
Pada perintan 'chmod g+w filepermission.txt', 
'g' adalah group
'+' adalah penambahan permission
'w' adalah write
Sekarang group untuk write filepermission mendapatkan izin.

  1. pi@raspberrypi ~ $ chmod g-w filepermission.txt 
  2. pi@raspberrypi ~ $ chmod u-r filepermission.txt 
  3. pi@raspberrypi ~ $ chmod g+w,o+w filepermission.txt 
  4. pi@raspberrypi ~ $ ls -l 
  5. total 48 
  6. drwxr-xr-x 2 pi pi 4096 May 7 06:32 Desktop 
  7. drwxr-xr-x 2 pi pi 4096 Aug 26 15:38 dir1 
  8. -rw-r--r-- 1 pi pi 167 Aug 26 15:39 dir1.tar.gz 
  9. drwxr-xr-x 2 pi pi 4096 Jul 3 21:16 Docs 
  10. drwxr-xr-x 3 pi pi 4096 Aug 23 10:16 Documents 
  11. drwx------ 2 pi pi 4096 May 7 06:56 Downloads 
  12. --w-rw-rw- 1 pi pi 0 Aug 27 09:40 filepermission.txt 
  13. drwxr-xr-x 2 pi pi 4096 Aug 27 07:32 fol1 
  14. -rw-r--r-- 1 pi pi 88 Aug 26 15:53 hello.txt 
  15. -rw-r--r-- 1 pi pi 88 Aug 26 15:54 hi.txt 
  16. drwxrwxr-x 2 pi pi 4096 Jan 27 2015 python_games 
  17. drwxr-xr-x 2 pi pi 4096 Aug 23 10:16 Scratch 
  18. -rwxr-xr-x 1 pi pi 61 Aug 23 10:38 vnc.sh 
  19. pi@raspberrypi ~ $ chmod u+r,g+w,o+w filepermission.txt 
  20. pi@raspberrypi ~ $ ls -l 
  21. total 48 
  22. drwxr-xr-x 2 pi pi 4096 May 7 06:32 Desktop 
  23. drwxr-xr-x 2 pi pi 4096 Aug 26 15:38 dir1 
  24. -rw-r--r-- 1 pi pi 167 Aug 26 15:39 dir1.tar.gz 
  25. drwxr-xr-x 2 pi pi 4096 Jul 3 21:16 Docs 
  26. drwxr-xr-x 3 pi pi 4096 Aug 23 10:16 Documents 
  27. drwx------ 2 pi pi 4096 May 7 06:56 Downloads 
  28. -rw-rw-rw- 1 pi pi 0 Aug 27 09:40 filepermission.txt 
  29. drwxr-xr-x 2 pi pi 4096 Aug 27 07:32 fol1 
  30. -rw-r--r-- 1 pi pi 88 Aug 26 15:53 hello.txt 
  31. -rw-r--r-- 1 pi pi 88 Aug 26 15:54 hi.txt 
  32. drwxrwxr-x 2 pi pi 4096 Jan 27 2015 python_games 
  33. drwxr-xr-x 2 pi pi 4096 Aug 23 10:16 Scratch 
  34. -rwxr-xr-x 1 pi pi 61 Aug 23 10:38 vnc.sh 
  35. pi@raspberrypi ~ $

No comments:

Post a Comment