Sudo (SuperUser DO)

oleh : Tedi Heriyanto (tedi_h@gmx.net)

4 Januari 2002




Instalasi dan Build


Software sudo dapat diperoleh di www.courtesan.com/sudo. Pada saat tulisan ini dibuat versi terbarunya adalah 1.6.3p7.


Setelah anda berhasil mengambil software tersebut, anda harus membongkarnya :


$ tar xvzf sudo-1.6.3p7.tar.gz


kemudian akan tercipta sebuah direktori bernama sudo-1.6.3p7. Pindahlah ke direktori tersebut :


$ cd sudo-1.6.3p7


Lalu selanjutnya yang perlu kita lakukan adalah melakukan configure dan membuild program sudo.


Berikut ini adalah langkah-langkah yang perlu dilakukan :


./configure --with-all-insults --enable-log-host


Perintah di atas akan mengkonfigurasi sudo anda dengan :


--with-all-insults include all the sudo insult sets

--enable-log-host Log the hostname in the log file


Anda dapat melihat option configure yang lain dengan cara memberikan perintah :


$ ./configure --help


Kemudian anda dapat membuild sudo dengan memberikan perintah :


$ make


Berikut ini adalah cuplikan proses make tersebut :


gcc -c -I. -I. -g -O2 -D_PATH_SUDOERS=\"/etc/sudoers\" -D_PATH_SUDOERS_TMP=\"/etc/sudoers.tmp\" -DSUDOERS_UID=0 -DSUDOERS_GID=0 -DSUDOERS_MODE=0440 check.c

...

gcc -o visudo visudo.o fileops.o sudo.tab.o lex.yy.o alloc.o defaults.on


Jika anda ingin menginstalasinya ke sistem anda, dapat dilakukan dengan cara :


su

Password:


[root@stealth sudo-1.6.3p7]# make install

/bin/sh ./mkinstalldirs /usr/local/bin /usr/local/sbin /etc /usr/local/man/man8 /usr/local/man/man5

/bin/sh ./install-sh -c -o 0 -g 0 -m 4111 -s sudo /usr/local/bin/sudo

/bin/sh ./install-sh -c -o 0 -g 0 -m 0111 -s visudo /usr/local/sbin/visudo

/bin/sh ./install-sh -c -o 0 -g 0 -m 0444 ./sudo.man /usr/local/man/man8/sudo.8

/bin/sh ./install-sh -c -o 0 -g 0 -m 0444 ./visudo.man /usr/local/man/man8/visudo.8

/bin/sh ./install-sh -c -o 0 -g 0 -m 0444 ./sudoers.man /usr/local/man/man5/sudoers.5


Perintah di atas akan menginstalasikan software sudo anda ke direktori /usr/local. Untuk merubahnya pada saat melakukan configure, anda harus memberikan option --prefix=/direktori_yang_anda_inginkan.


Konfigurasi


Konfigurasi untuk sudo disimpan dalam sebuah file /etc/sudoers. Untuk dapat melakukan konfigurasi file ini, anda harus memiliki akses root dan menjalankan program visudo.


File /etc/sudoers dapat dibagi menjadi dua buah bagian : bagian alias dan bagian privilege. Bagian alias dipakai untuk kemudahan saja. Sedangkan bagian privilege digunakan untuk memberikan ijin.


Alias Type

Alias Syntax

Keterangan

Host_Alias

HOSTALIAS=

Daftar nama host, alamat IP, network/netmask, dan/atau netgroup.

Runas_Alias

RUNASALIAS=

Daftar user, group, dan/atau netgroup.

Cmnd_Alias

CMNDALIAS=

Daftar perintah atau direktori. Harus diberikan secara absolut. Ketika sebuah perintah diberikan, argumen dan flag-nya dapat pula disertakan. Ketika sebuah direktori dispesifikasikan, ia menyertakan semua perintah dalam direktori tersebut.

User_Alias

USERALIAS=

Daftar user, group, dan/atau netgroup.


Bentuk umum entri dalam file /etc/sudoers secara sederhana adalah sebagai berikut :


access_group host_type=[(runas_type, runas_type,...)] cmnd_type


Berikut ini adalah sebuah contoh file /etc/sudoers :


# sudoers file.

#

# This file MUST be edited with the 'visudo' command as root.

#

# See the sudoers man page for the details on how to write

# a sudoers file.


# Host alias specification


# User alias specification

User_Alias USERS = john,doe


# Runas aliases specification

Runas_Alias ADMIN = root


# Cmnd alias specification

Cmnd_Alias HALT = /sbin/halt, /sbin/shutdown -h *

Cmnd_Alias REBOOT = /sbin/reboot, /sbin/init 6, /sbin/shutdown -r *


# User privilege specification

root ALL=(ALL) ALL

USERS ALL=(ADMIN) HALT, REBOOT


User_Alias


Bagian ini hanya menetapkan nama alias untuk user-user yang akan diberikan privilege. User_Alias membutuhkan kata kunci User_Alias. Dalam contoh di atas, john dan doe masuk ke dalam alias USERS. Nama alias boleh apa saja, kecuali ALL yang merupakan kata kunci reserved.


Runas_Alias


Pada contoh di atas, ada satu contoh alias runas yang membutuhkan keyword Runas_Alias. Ia menspesifikasikan daftar user, dalam hal ini adalah root.


Command Alias


Alias-alias ini digunakan untuk menspesifikasikan daftar perintah-perintah dan membutuhkan kata kunci Cmnd_Alias. Dalam contoh di atas, alias HALT dan REBOOT akan terekspansi ke perintah /sbin/halt dan /sbin/reboot.


Spesifikasi Privilege


Bagian ini menentukan siapa yang memperoleh privilege. Dalam contoh di atas, root dapat menjalankan sembarang perintah sebagai sembarang user pada host sembarang. Sedangkan USERS dapat menjalankan perintah REBOOT dan HALT hanya bila mereka sebagai root.


Daftar Pustaka