Yum Remove

CentOS & RedHat Linux menggunakan yum sebagai perintah untuk mengatur instalasi paket (package management tool). Saya baru tahu dari Wikipedia kalau yum itu sendiri adalah singkatan dari “Yellowdog Updater, Modified”. Sintaks pemakaiannya mirip dengan apt-get-nya Debian/Ubuntu Linux. Misalnya untuk menginstal paket dari repositori, saya bisa menggunakan perintah yum install, Misalnya saya ingin memasang paket Apache web server (httpd) :

[root@web01 ~]# yum install httpd
Loaded plugins: fastestmirror
Determining fastest mirrors
CDROM                                                                                                                                        | 4.0 kB     00:00 ... 
CDROM/primary_db                                                                                                                             | 4.4 MB     00:00 ... 
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.15-29.el6.centos will be installed
--> Processing Dependency: httpd-tools = 2.2.15-29.el6.centos for package: httpd-2.2.15-29.el6.centos.x86_64
--> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-29.el6.centos.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.2.15-29.el6.centos.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.15-29.el6.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.15-29.el6.centos.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.3.9-5.el6_2 will be installed
---> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be installed
---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed
---> Package httpd-tools.x86_64 0:2.2.15-29.el6.centos will be installed
---> Package mailcap.noarch 0:2.1.31-2.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================
 Package                                  Arch                              Version                                          Repository                        Size
====================================================================================================================================================================
Installing:
 httpd                                    x86_64                            2.2.15-29.el6.centos                             CDROM                            821 k
Installing for dependencies:
 apr                                      x86_64                            1.3.9-5.el6_2                                    CDROM                            123 k
 apr-util                                 x86_64                            1.3.9-3.el6_0.1                                  CDROM                             87 k
 apr-util-ldap                            x86_64                            1.3.9-3.el6_0.1                                  CDROM                             15 k
 httpd-tools                              x86_64                            2.2.15-29.el6.centos                             CDROM                             73 k
 mailcap                                  noarch                            2.1.31-2.el6                                     CDROM                             27 k

Transaction Summary
====================================================================================================================================================================
Install       6 Package(s)

Total download size: 1.1 M
Installed size: 3.6 M
Is this ok [y/N]: y
Downloading Packages:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                27 MB/s | 1.1 MB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : apr-1.3.9-5.el6_2.x86_64                                                                                                                         1/6 
  Installing : apr-util-1.3.9-3.el6_0.1.x86_64                                                                                                                  2/6 
  Installing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                                                                                                             3/6 
  Installing : httpd-tools-2.2.15-29.el6.centos.x86_64                                                                                                          4/6 
  Installing : mailcap-2.1.31-2.el6.noarch                                                                                                                      5/6 
  Installing : httpd-2.2.15-29.el6.centos.x86_64                                                                                                                6/6 
  Verifying  : httpd-2.2.15-29.el6.centos.x86_64                                                                                                                1/6 
  Verifying  : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                                                                                                             2/6 
  Verifying  : httpd-tools-2.2.15-29.el6.centos.x86_64                                                                                                          3/6 
  Verifying  : apr-1.3.9-5.el6_2.x86_64                                                                                                                         4/6 
  Verifying  : mailcap-2.1.31-2.el6.noarch                                                                                                                      5/6 
  Verifying  : apr-util-1.3.9-3.el6_0.1.x86_64                                                                                                                  6/6 

Installed:
  httpd.x86_64 0:2.2.15-29.el6.centos                                                                                                                               

Dependency Installed:
  apr.x86_64 0:1.3.9-5.el6_2        apr-util.x86_64 0:1.3.9-3.el6_0.1     apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1     httpd-tools.x86_64 0:2.2.15-29.el6.centos    
  mailcap.noarch 0:2.1.31-2.el6    

Complete!
[root@web01 ~]#

Dari contoh di atas, terlihat bahwa yum tidak hanya memasang paket httpd, yum juga memasang beberapa paket lain yang diperlukan oleh httpd (dependencies packages). Dalam contoh tadi ada 5 paket tambahan yang ikut terpasang secara otomatis.

Nah lucunya saat saya ingin membuang paket httpd, paket-paket lain tadi tidak ikut terbuang. Misalnya dengan yum remove berikut ini :

[root@web01 ~]# yum install httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
CDROM                                                                                                                                                                                                                  | 4.0 kB     00:00 ... 
Setting up Install Process
Package httpd-2.2.15-29.el6.centos.x86_64 already installed and latest version
Nothing to do
[root@web01 ~]# vi /etc/yum.conf 
[root@web01 ~]# yum remove httpd
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.15-29.el6.centos will be erased
--> Finished Dependency Resolution
CDROM                                                                                                                                                                                                                  | 4.0 kB     00:00 ... 

Dependencies Resolved

==============================================================================================================================================================================================================================================
 Package                                              Arch                                                  Version                                                               Repository                                             Size
==============================================================================================================================================================================================================================================
Removing:
 httpd                                                x86_64                                                2.2.15-29.el6.centos                                                  @CDROM                                                2.9 M

Transaction Summary
==============================================================================================================================================================================================================================================
Remove        1 Package(s)

Installed size: 2.9 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : httpd-2.2.15-29.el6.centos.x86_64                                                                                                                                                                                          1/1 
  Verifying  : httpd-2.2.15-29.el6.centos.x86_64                                                                                                                                                                                          1/1 

Removed:
  httpd.x86_64 0:2.2.15-29.el6.centos                                                                                                                                                                                                         

Complete!
[root@web01 ~]#

yum hanya membuang paket httpd saja. Ada 5 paket lain yang tadi ikut terinstal tidak terbuang juga.

[root@web01 ~]# rpm -qa | egrep "apr|httpd|mailcap"
apr-util-1.3.9-3.el6_0.1.x86_64
httpd-tools-2.2.15-29.el6.centos.x86_64
apr-1.3.9-5.el6_2.x86_64
apr-util-ldap-1.3.9-3.el6_0.1.x86_64
mailcap-2.1.31-2.el6.noarch
[root@web01 ~]#

Di Debian, ada opsi untuk menggunakan apt-get autoremove untuk menghapus sisa paket dependensi yang sudah tidak dipakai. Saya juga baru tahu ternyata ada opsi untuk mengatur yum supaya menghapus semua paket dependensinya. Opsi ini perlu diaktifkan dulu di dalam berkas /etc/yum.conf seperti ini :

[root@web01 ~]# echo "clean_requirements_on_remove=1" >> /etc/yum.conf

Opsi clean_requirements_on_remove akan membuat yum membersihkan setiap paket dependensinya. Setelah penambahan opsi tersebut, contohnya seperti berikut ini :

[root@web01 ~]# yum remove httpd
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.15-29.el6.centos will be erased
--> Finished Dependency Resolution
--> Finding unneeded leftover dependencies
---> Marking httpd-tools to be removed - no longer needed by httpd
---> Marking apr-util-ldap to be removed - no longer needed by httpd
---> Marking mailcap to be removed - no longer needed by httpd
---> Marking apr-util to be removed - no longer needed by httpd-tools
---> Marking apr to be removed - no longer needed by httpd-tools
Found and removing 5 unneeded dependencies
--> Running transaction check
---> Package apr.x86_64 0:1.3.9-5.el6_2 will be erased
---> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be erased
---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be erased
---> Package httpd-tools.x86_64 0:2.2.15-29.el6.centos will be erased
---> Package mailcap.noarch 0:2.1.31-2.el6 will be erased
--> Finished Dependency Resolution
CDROM                                                                                                                                                                                                                  | 4.0 kB     00:00 ... 

Dependencies Resolved

==============================================================================================================================================================================================================================================
 Package                                                    Arch                                                Version                                                             Repository                                           Size
==============================================================================================================================================================================================================================================
Removing:
 httpd                                                      x86_64                                              2.2.15-29.el6.centos                                                @CDROM                                              2.9 M
Removing for dependencies:
 apr                                                        x86_64                                              1.3.9-5.el6_2                                                       @CDROM                                              296 k
 apr-util                                                   x86_64                                              1.3.9-3.el6_0.1                                                     @CDROM                                              198 k
 apr-util-ldap                                              x86_64                                              1.3.9-3.el6_0.1                                                     @CDROM                                              9.3 k
 httpd-tools                                                x86_64                                              2.2.15-29.el6.centos                                                @CDROM                                              137 k
 mailcap                                                    noarch                                              2.1.31-2.el6                                                        @CDROM                                               52 k

Transaction Summary
==============================================================================================================================================================================================================================================
Remove        6 Package(s)

Installed size: 3.6 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : httpd-2.2.15-29.el6.centos.x86_64                                                                                                                                                                                          1/6 
  Erasing    : httpd-tools-2.2.15-29.el6.centos.x86_64                                                                                                                                                                                    2/6 
  Erasing    : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                                                                                                                                                                                       3/6 
  Erasing    : mailcap-2.1.31-2.el6.noarch                                                                                                                                                                                                4/6 
  Erasing    : apr-util-1.3.9-3.el6_0.1.x86_64                                                                                                                                                                                            5/6 
  Erasing    : apr-1.3.9-5.el6_2.x86_64                                                                                                                                                                                                   6/6 
  Verifying  : httpd-2.2.15-29.el6.centos.x86_64                                                                                                                                                                                          1/6 
  Verifying  : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                                                                                                                                                                                       2/6 
  Verifying  : httpd-tools-2.2.15-29.el6.centos.x86_64                                                                                                                                                                                    3/6 
  Verifying  : apr-1.3.9-5.el6_2.x86_64                                                                                                                                                                                                   4/6 
  Verifying  : mailcap-2.1.31-2.el6.noarch                                                                                                                                                                                                5/6 
  Verifying  : apr-util-1.3.9-3.el6_0.1.x86_64                                                                                                                                                                                            6/6 

Removed:
  httpd.x86_64 0:2.2.15-29.el6.centos                                                                                                                                                                                                         

Dependency Removed:
  apr.x86_64 0:1.3.9-5.el6_2              apr-util.x86_64 0:1.3.9-3.el6_0.1              apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1              httpd-tools.x86_64 0:2.2.15-29.el6.centos              mailcap.noarch 0:2.1.31-2.el6             

Complete!
[root@web01 ~]#

Dengan begitu sekarang tidak ada lagi paket dependensi yang tertinggal :

[root@web01 ~]# rpm -qa | egrep "apr|httpd|mailcap"
[root@web01 ~]#

Repositori Lokal DVD RHEL

Tiap kali menggunakan Ubuntu atau Debian, saya selalu menggunakan repositori online saat perlu memasang paket/aplikasi tertentu (software). Perintah apt-get atau aptitude akan otomatis mengunduh instaler paket dari repositori di Internet. Memang perlu koneksi internet tiap kali akan memasang paket. Dulu saat saya masih kesulitan mendapat akses internet, saya mengoleksi banyak CD/DVD repositori Ubuntu. Kalau tidak salah ingat dulu Ubuntu 7.04 punya 5 atau 6 CD repositori. Debian lebih fantastis lagi, jumlah CD repositorinya sampai puluhan. DVD Debian terbaru versi 7.4.0 jumlahnya sampai 9 buah. Sangat tidak praktis mengoleksi semua DVD repositori tadi. Menggunakan media CD/DVD tentu rentan hilang, rusak tidak bisa terbaca, dan repot karena harus menggonta-ganti CD/DVD saat memasang paket tertentu. Memang masih bisa diakali dengan menyimpan ISO image dari CD/DVD tadi, tapi ini juga tidak praktis karena membutuhkan ruang yang cukup besar dalam harddisk.

Dulu saya pernah tulis cara menjadikan DVD Ubuntu Linux sebagai sumber repositori lokal. Tadi saya kembali ingat hal ini saat menginstal Red Hat Linux. Tidak seperti Debian atau Ubuntu, Red Hat Enterprise Linux (RHEL) menyediakan online repositori hanya bagi pengguna yang membeli lisensinya. Namun demikian saya masih tetap bisa menggunakan DVD instalasi sebagai repositori lokal. Saya tidak tahu persisnya, aplikasi apa yang tidak tersedia dalam DVD & hanya bisa didapat dari online repositori resminya RHEL.

Tulisan ini akan jadi catatan saya untuk menjadikan DVD instalasi RHEL 6.4 sebagai repositori lokal.

Tadi saya menginstal virtual mesin dengan hostname redhat6, mesin ini menggunakan RHEL 6.4

[root@redhat6 ~]# uname -a
Linux redhat6 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@redhat6 ~]# 
[root@redhat6 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.4 (Santiago)
[root@redhat6 ~]#

Tanpa repositori lokal saya tidak bisa memasang paket nmap. Saat mencoba mencari paket nmap saya mendapati error seperti ini :

[root@redhat6 yum.repos.d]# yum search nmap
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Warning: No matches found for: nmap
No Matches found
[root@redhat6 yum.repos.d]#

RHEL menempatkan konfigurasi repositori dalam direktori /etc/yum.repos.d :

[root@redhat6 ~]# cd /etc/yum.repos.d/
[root@redhat6 yum.repos.d]# ls
rhel-source.repo
[root@redhat6 yum.repos.d]#

Ada 1 berkas konfigurasi bawaan proses instalasi OS seperti berikut ini :

[root@redhat6 yum.repos.d]# cat rhel-source.repo 
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@redhat6 yum.repos.d]#

Karena saya ingin menjadikan DVD instalasi RHEL sebagai repositori lokal, tentu langkah pertama adalah mengakses DVDnya terlebih dulu. Saya mount DVD RHEL 6.4 ke direktori /mnt:

[root@redhat6 yum.repos.d]# mount -o loop /dev/cdrom /mnt
[root@redhat6 yum.repos.d]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_redhat6-lv_root
                      5.5G  931M  4.3G  18% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             485M   33M  427M   8% /boot
/dev/sr0              3.5G  3.5G     0 100% /mnt
[root@redhat6 yum.repos.d]#

Langkah selanjutnya saya buat berkas konfigurasi baru, saya pilih nama iso-rhel6.repo. Tiap berkas konfigurasi repositori boleh menggunakan nama apa saja asalkan diakhiri dengan *.repo.

[root@redhat6 yum.repos.d]# vi iso-rhel6.repo 
[ISO_RHEL64]
name=ISO RHEL64_x86_64
baseurl=file:///mnt
enabled=1 
gpgcheck=0
[root@redhat6 yum.repos.d]#

Isi berkasnya paling tidak harus terdiri dari id, name & baseurl. ID dituliskan dalam tanda kurung kotak [ISO_RHEL64]. Sejauh yang saya tahu tidak ada aturan khusus untuk memilih ID repo tadi. Pada contoh di atas, baseurl saya arahkan untuk mengakses direktori /mnt (mountpoint DVD). Selanjutnya saya tinggal jalankan 2 perintah seperti berikut ini :

[root@redhat6 yum.repos.d]# yum clean all
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: ISO_RHEL64
Cleaning up Everything
[root@redhat6 yum.repos.d]# yum repolist
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
ISO_RHEL64                                                                                                                                                | 3.9 kB     00:00 ... 
ISO_RHEL64/primary_db                                                                                                                                     | 3.1 MB     00:00 ... 
repo id                                                                           repo name                                                                                status
ISO_RHEL64                                                                        ISO RHEL64_x86_64                                                                        3,648
repolist: 3,648
[root@redhat6 yum.repos.d]#

Setelah sistem selesai membuat repositori lokal, saya bisa memeriksanya dengan perintah yum repolist seperti contoh berikut ini :

[root@redhat6 yum.repos.d]# yum repolist
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repo id                                                                           repo name                                                                                status
ISO_RHEL64                                                                        ISO RHEL64_x86_64                                                                        3,648
repolist: 3,648
[root@redhat6 yum.repos.d]#

Artinya sekarang sistem sudah punya repositori lokal dengan nama “ISO RHEL64_x86_64”. Untungnya paket nmap tersedia dalam DVD ini :

[root@redhat6 yum.repos.d]# yum search nmap
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
=============================================================================== N/S Matched: nmap ===============================================================================
nmap.x86_64 : Network exploration tool and security scanner

  Name and summary matches only, use "search all" for everything.
[root@redhat6 yum.repos.d]#

Dengan begitu saya tinggal menggunakan perintah yum install untuk memasang nmap, yum akan mengambil berkas sumber nmap dari DVD bukan dari Internet :

[root@redhat6 yum.repos.d]# yum install nmap
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package nmap.x86_64 2:5.51-2.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================================================================
 Package                               Arch                                    Version                                         Repository                                   Size
=================================================================================================================================================================================
Installing:
 nmap                                  x86_64                                  2:5.51-2.el6                                    ISO_RHEL64                                  2.8 M

Transaction Summary
=================================================================================================================================================================================
Install       1 Package(s)

Total download size: 2.8 M
Installed size: 9.7 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : 2:nmap-5.51-2.el6.x86_64                                                                                                                                      1/1 
ISO_RHEL64/productid                                                                                                                                      | 1.7 kB     00:00 ... 
  Verifying  : 2:nmap-5.51-2.el6.x86_64                                                                                                                                      1/1 

Installed:
  nmap.x86_64 2:5.51-2.el6                                                                                                                                                       

Complete!
[root@redhat6 yum.repos.d]#

CentOS sebagai salah satu varian open source Red Hat, langsung menyediakan repositori online sejak awal instalasi. Pada contoh di bawah ini terlihat CentOS langsung mendeteksi lokasi repositori online yang paling cepat diakses :

[root@centos ~]# uname -a
Linux centos 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@centos ~]# 
[root@centos ~]# cat /etc/redhat-release 
CentOS release 6.4 (Final)
[root@centos ~]# 
[root@centos ~]# yum repolist
Loaded plugins: fastestmirror, security
Determining fastest mirrors
 * base: mirror.axarva.co.id
 * extras: mirror.axarva.co.id
 * updates: mirror.axarva.co.id
base                                                                                                                                                      | 3.7 kB     00:00     
base/primary_db                                                                                                                                           | 4.4 MB     00:10     
extras                                                                                                                                                    | 3.4 kB     00:00     
extras/primary_db                                                                                                                                         |  19 kB     00:00     
updates                                                                                                                                                   | 3.4 kB     00:00     
updates/primary_db                                                                                                                                        | 2.5 MB     00:03     
repo id                                                                         repo name                                                                                  status
base                                                                            CentOS-6 - Base                                                                            6,367
extras                                                                          CentOS-6 - Extras                                                                             14
updates                                                                         CentOS-6 - Updates                                                                           718
repolist: 7,099
[root@centos ~]# 
[root@centos ~]# yum search nmap
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirror.axarva.co.id
 * extras: mirror.axarva.co.id
 * updates: mirror.axarva.co.id
=============================================================================== N/S Matched: nmap ===============================================================================
nmap-frontend.noarch : The GTK+ front end for nmap
nmap.x86_64 : Network exploration tool and security scanner

  Name and summary matches only, use "search all" for everything.
[root@centos ~]#

Saya juga bisa pakai cara yang sama untuk menjadikan DVD instalasi CentOS sebagai repositori lokal. Untuk testing, saya pindahkan dulu konfigurasi repositorinya CentOS ke dalam folder backup :

[root@centos ~]# mkdir /etc/yum.repos.d/backup
[root@centos ~]# mv /etc/yum.repos.d/*repo /etc/yum.repos.d/backup
[root@centos ~]#

Selanjutnya sama persis seperti sudah ditulis di atas :

[root@centos ~]# mount -o loop /dev/cdrom /mnt
    [root@centos ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
                      3.6G  844M  2.6G  25% /
tmpfs                 939M     0  939M   0% /dev/shm
/dev/sda1             485M   37M  423M   8% /boot
/dev/sr0              4.1G  4.1G     0 100% /mnt
[root@centos ~]# 
[root@centos ~]# vi /etc/yum.repos.d/iso-centos64.repo
[ISO_CentOS64]
name=ISO CentOS64_x86_64
baseurl=file:///mnt
gpgcheck=0
[root@centos ~]# 
[root@centos ~]# yum repolist
Loaded plugins: fastestmirror, security
Determining fastest mirrors
ISO_CentOS64                                                                                                                                              | 4.0 kB     00:00 ... 
ISO_CentOS64/primary_db                                                                                                                                   | 4.4 MB     00:00 ... 
repo id                                                                           repo name                                                                                status
ISO_CentOS64                                                                      ISO CentOS64_x86_64                                                                      6,381
repolist: 6,381
[root@centos ~]# 
[root@centos ~]# yum install -q  nmap

=================================================================================================================================================================================
 Package                               Arch                                    Version                                       Repository                                     Size
=================================================================================================================================================================================
Installing:
 nmap                                  x86_64                                  2:5.51-2.el6                                  ISO_CentOS64                                  2.7 M

Transaction Summary
=================================================================================================================================================================================
Install       1 Package(s)

Is this ok [y/N]: y
[root@centos ~]#

Daftar Paket & Isinya di Sistem Unix

Di lingkungan sistem operasi Unix, aplikasi (software) dikenal sebagai package (paket). Masing-masing varian Unix punya cara sendiri-sendiri untuk menampilkan daftar paket yang terinstal. Artikel ini saya tulis sebagai catatan untuk mengingat-ingat aneka macam cara menampilkan daftar paket di beberapa varian Unix.

Di Solaris 10 misalnya saya ingin melihat paket Wireshark saya menggunakan perintah pkginfo. Karena di Solaris 10 penamaan paket cukup unik, saya perlu melihat dulu apa nama paket yang terdaftar.

root@fda05:/# cat /etc/release 
                   Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC
  Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
                            Assembled 23 August 2011
root@fda05:/# 
root@fda05:/# pkginfo | grep -i wireshark
application SMCwires                         wireshark
root@fda05:/#

Dari hasil pkginfo di atas, saya bisa lihat bahwa nama paket Wireshark adalah SMCwires. Lalu saya bisa cari detil informasi tentang paket SMCwires menggunakan perintah yang sama seperti berikut ini :

root@fda05:/# pkginfo -l SMCwires
   PKGINST:  SMCwires
      NAME:  wireshark
  CATEGORY:  application
      ARCH:  sparc
   VERSION:  1.6.8
   BASEDIR:  /usr/local
    VENDOR:  Gerald Combs et al
    PSTAMP:  Steve Christensen
  INSTDATE:  Jul 30 2012 03:08
     EMAIL:  steve@smc.vnet.net
    STATUS:  completely installed
     FILES:      518 installed pathnames
                   7 shared pathnames
                  33 directories
                 134 executables
              266776 blocks used (approx)
root@fda05:/#

Dengan menggunakan opsi -l saya bisa lihat versi paket yang terinstal, lokasi instalasi, dsb. Meskipun saya tahu lokasi paket tersebut ada di /usr/local, saya masih belum tahu file apa saja yang dimiliki oleh paket SMCwires. Untuk memeriksa file apa saja yang dimiliki oleh paket tersebut saya bisa menggunakan perintah pkgchk seperti berikut ini :

root@fda05:/# pkgchk -v SMCwires
/usr/local/bin
/usr/local/bin/capinfos
/usr/local/bin/dftest
/usr/local/bin/dumpcap
/usr/local/bin/editcap
/usr/local/bin/idl2wrs
/usr/local/bin/mergecap
/usr/local/bin/randpkt
/usr/local/bin/rawshark
/usr/local/bin/text2pcap
/usr/local/bin/tshark
/usr/local/bin/wireshark
/usr/local/doc
/usr/local/doc/wireshark
...
...
...
/usr/local/share/wireshark/tpncp
/usr/local/share/wireshark/tpncp/tpncp.dat
/usr/local/share/wireshark/tshark.html
/usr/local/share/wireshark/wimaxasncp
/usr/local/share/wireshark/wimaxasncp/dictionary.dtd
/usr/local/share/wireshark/wimaxasncp/dictionary.xml
/usr/local/share/wireshark/wireshark-filter.html
/usr/local/share/wireshark/wireshark.html
/usr/local/share/wireshark/ws.css
root@fda05:/#

Hasil perintah pkgchk tadi cukup panjang sehingga saya hanya tampilkan bagian awal & akhirnya saja.

Solaris 11 menggunakan pendekatan yang berbeda untuk menginvetarisir paket-paketnya. Kita perlu menggunakan perintah pkg list untuk melihat daftar paket yang terinstal di mesin Solaris 11. Misalnya seperti contoh berikut ini :

root@host02:/# cat /etc/release 
                            Oracle Solaris 11.1 SPARC
  Copyright (c) 1983, 2012, Oracle and/or its affiliates.  All rights reserved.
                           Assembled 19 September 2012
root@host02:/# 
root@host02:/# pkg list | grep wireshark
diagnostic/wireshark                              1.8.9-0.175.1.11.0.4.0     i--
diagnostic/wireshark/tshark                       1.8.9-0.175.1.11.0.4.0     i--
diagnostic/wireshark/wireshark-common             1.8.9-0.175.1.11.0.4.0     i--
root@host02:/#

Kalau di Solaris 10 kita menggunakan pkginfo di Solaris 11 kita menggunakan perintah pkg info (dengan spasi) untuk menampilkan detil informasi tentang suatu paket.

root@host02:/# pkg info wireshark
          Name: diagnostic/wireshark
       Summary: Graphical network protocol analyzer
      Category: Applications/Internet
         State: Installed
     Publisher: solaris
       Version: 1.8.9
 Build Release: 5.11
        Branch: 0.175.1.11.0.4.0
Packaging Date: Thu Sep 05 15:59:08 2013
          Size: 2.86 MB
          FMRI: pkg://solaris/diagnostic/wireshark@1.8.9,5.11-0.175.1.11.0.4.0:20130905T155908Z
root@host02:/#

Untuk melihat semua file yang dimiliki oleh Wireshark, Solaris 11 menyediakan perintah pkg contents seperti contoh di bawah ini :

root@host02:/# pkg contents  wireshark
PATH
usr
usr/sbin
usr/sbin/wireshark
usr/share
usr/share/applications
usr/share/applications/wireshark.desktop
usr/share/man
usr/share/man/man1
usr/share/man/man1/wireshark.1
usr/share/pixmaps
usr/share/pixmaps/wireshark.png
root@host02:/#

FreeBSD menggunakan perintah yang mirip dengan Solaris 11 untuk menampilkan informasi tentang suatu paket :

root@testbsd:~ # uname -a
FreeBSD testbsd 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255898: Thu Sep 26 22:50:31 UTC 2013     root@bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
root@testbsd:~ # 
root@testbsd:~ # pkg_info | grep wireshark
wireshark-1.10.1    Powerful network analyzer/capture tool
root@testbsd:~ # pkg_info -L wireshark-1.10.1
Information for wireshark-1.10.1:

Files:
/usr/local/man/man1/capinfos.1.gz
/usr/local/man/man1/editcap.1.gz
/usr/local/man/man1/mergecap.1.gz
/usr/local/man/man1/rawshark.1.gz
/usr/local/man/man1/text2pcap.1.gz
/usr/local/man/man1/dftest.1.gz
/usr/local/man/man1/randpkt.1.gz
/usr/local/man/man1/reordercap.1.gz
/usr/local/man/man1/wireshark.1.gz
/usr/local/man/man1/dumpcap.1.gz
/usr/local/man/man1/tshark.1.gz
/usr/local/man/man4/wireshark-filter.4.gz
/usr/local/bin/capinfos
/usr/local/bin/dftest
/usr/local/bin/dumpcap
/usr/local/bin/editcap
/usr/local/bin/wireshark
/usr/local/bin/mergecap
/usr/local/bin/randpkt
/usr/local/bin/rawshark
/usr/local/bin/reordercap
/usr/local/bin/tshark
/usr/local/bin/text2pcap
...
...
... 
/usr/local/share/wireshark/tshark.html
/usr/local/share/wireshark/text2pcap.html
/usr/local/share/wireshark/tpncp/tpncp.dat
/usr/local/share/wireshark/wimaxasncp/dictionary.dtd
/usr/local/share/wireshark/wimaxasncp/dictionary.xml
/usr/local/share/wireshark/wireshark-filter.html
/usr/local/share/wireshark/wireshark.html
/usr/local/share/wireshark/ws.css
/usr/local/share/applications/wireshark.desktop

root@testbsd:~ #

Sementara di Ubuntu Linux (atau Debian) kita bisa menggunakan perintah dpkg -l untuk menampilkan semua paket yang terinstal.

ttirtawi@gbt733:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.10
Release:    12.10
Codename:   quantal
ttirtawi@gbt733:~$ 
ttirtawi@gbt733:~$ dpkg -l | grep wireshark
ii  libwireshark-data                    1.8.2-2                                   all          network packet dissection library -- data files
ii  libwireshark2                        1.8.2-2                                   i386         network packet dissection library -- shared library
ii  wireshark                            1.8.2-2                                   i386         network traffic analyzer - GTK+ version
ii  wireshark-common                     1.8.2-2                                   i386         network traffic analyzer - common files
ttirtawi@gbt733:~$

Informasi semua file yang dimiliki suatu paket dapat diperoleh dengan menjalankan perintah dpkg -L seperti contoh di bawah ini :

ttirtawi@gbt733:~$ dpkg -L wireshark
/.
/usr
/usr/share
/usr/share/applications
/usr/share/applications/wireshark.desktop
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/wireshark.1.gz
/usr/share/doc
/usr/share/doc/wireshark
/usr/share/doc/wireshark/copyright
/usr/share/pixmaps
/usr/share/pixmaps/wsicon32.xpm
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/scalable
/usr/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/scalable/apps/wireshark.svg
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/48x48/apps/wireshark.png
/usr/share/menu
/usr/share/menu/wireshark
/usr/bin
/usr/bin/wireshark
/usr/share/doc/wireshark/README.Debian
/usr/share/doc/wireshark/changelog.Debian.gz
ttirtawi@gbt733:~$

Fedora Linux atau distro berbasis Red Hat umumnya menggunakan perintah rpm untuk segala hal yang berkaitan dengan paket-paket aplikasinya. Misalnya pada contoh di bawah ini, di Fedora 16 saya bisa menggunakan perintah rpm -qa untuk menampilkan semua paket yang terintal :

ttirtawi@appliance:~$ lsb_release -a
LSB Version:    :core-4.0-ia32:core-4.0-noarch
Distributor ID: Generic
Description:    Generic release 16 (Generic)
Release:    16
Codename:   Generic
ttirtawi@appliance:~$ 
ttirtawi@appliance:~$ rpm -qa | grep -i wireshark
wireshark-1.6.10-1.fc16.i686
ttirtawi@appliance:~$

Sama seperti contoh-contoh sebelumnya, untuk menampilkan informasi tentang semua file yang dimiliki oleh Wireshark saya bisa menggunakan perintah rpm -ql seperti ditunjukkan pada contoh di bawah ini :

ttirtawi@appliance:~$ rpm -ql wireshark
...
...
...
/usr/sbin/capinfos
/usr/sbin/dftest
/usr/sbin/dumpcap
/usr/sbin/editcap
/usr/sbin/mergecap
/usr/sbin/randpkt
/usr/sbin/rawshark
/usr/sbin/text2pcap
/usr/sbin/tshark
...
...
...
...
/usr/share/wireshark/rawshark.html
/usr/share/wireshark/services
/usr/share/wireshark/smi_modules
/usr/share/wireshark/text2pcap.html
/usr/share/wireshark/tpncp
/usr/share/wireshark/tpncp/tpncp.dat
/usr/share/wireshark/tshark.html
/usr/share/wireshark/wimaxasncp
/usr/share/wireshark/wimaxasncp/dictionary.dtd
/usr/share/wireshark/wimaxasncp/dictionary.xml
/usr/share/wireshark/wireshark-filter.html
/usr/share/wireshark/wireshark.html
/usr/share/wireshark/ws.css
ttirtawi@appliance:~$ rpm -qa | grep -i wireshark
wireshark-1.6.10-1.fc16.i686
ttirtawi@appliance:~$

Menyimpan Password dalam KeePassX

Sampai saat ini saya punya banyak password yang perlu saya ingat-ingat. Mulai dari password beberapa akun email, login ke banyak website, Paypal, iTunes, VPN, dsb. Memang paling gampang menggunakan 1 macam passsword untuk segala kebutuhan. Tapi cara ini kurang bijaksana & berbahaya. Karena begitu banyak password yang perlu saya hafalkan, saya kerap lupa password apa yang harus saya pakai saat login ke suatu website. Belum lagi kalau websitenya jarang saya akses, kemungkinan besar akan lupa password login-nya. Atau misalnya saat password sebuah website-nya sudah disimpan otomatis oleh web browser, sehingga saya lupa total apa password loginnya saat saya mengakses web tersebut dari komputer lain.

Saya memilih untuk menggunakan KeePassX untuk menyimpan semua password saya. KeePassX ini adalah aplikasi yang dibuat untuk menyimpan banyak password dalam sebuah database terenkripsi. Idenya adalah kita buat database password, lalu kita beri password (lagi-lagi password..hehehe…). Sehingga kita cukup mengingat-ingat 1 password untuk membuka database tersebut. Database-nya berupa 1 file dengan ekstensi *.kdb yang ukurannya tidak terlalu besar. Hmmm mungkin ukurannya bisa membengkak bila menyimpan sampai ribuan password. File database KeePass saya cuma berukuran 16KB.

KeePassX ini tersedia secara gratis untuk Mac OSX, Windows, & juga untuk Linux.

Ini contoh langkah-langkah menggunakan KeePassX di Ubuntu Linux (langkah ini sama bisa dipakai juga di Windows atau Mac OSX).

  1. Setelah membuka aplikasi KeePassX, tampilan yang muncul seperti berikut ini :Untuk mulai membuat database, klik ikon New di pojok kiri atas seperti ditunjukkan oleh tanda panah.
  2. Kita akan diminta untuk memasukkan master password untuk database baru ini :Ini langkah yang penting, jangan sampai lupa master password ini.
  3. Setelah itu kita bisa mulai memasukkan data-data password yang ingin kita simpan dalam KeePassX. Caranya tinggal klik kanan di area yang kosong atau klik ikon “Add New Entry” seperti yang ditunjukkan oleh tanda panah berikut ini :
  4. Akan muncul jendela baru seperti tampilan berikut ini :Di sini kita akan menyimpan data-data seperti misalnya username, password, URL website, keterangan, dsb.
  5. Di sebelah kanan kolom password ada ikon bergambar mata. Ikon ini dipakai untuk menampilkan/menyembunyikan password yang kita masukkan.
  6. Di sebelah kanan kolom password, ada juga ikon bertulisan Gen. Ikon ini fungsinya untuk menampilkan menu password generator. KeePassX bisa membantu kita membuatkan password yang rumit.Kita bisa memilih berapa panjang password yang diinginkan, lalu kombinasi karakter apa saja yang ingin dipakai. Tinggal klik tombol Generate untuk mendapatkan password baru. Akhiri dengan mengklik tombol OK.
  7. Bila semua data yang ingin disimpan sudah dimasukkkan, akhiri dengan menekan tombol OK pada tampilan berikut ini :
  8. Kita bisa mengulang langkah-langkah tadi untuk menyimpan semua password yang ingin kita simpan. Bila sudah selesai kita perlu menyimpan database KeePassX ini. Klik tombol Save seperti ditunjukkan pada gambar di bawah ini :
  9. Kita tinggal mendefinisikan nama file database ini & mengakhiri dengan menekan tombol Save :
  10. Tadi saya memilih nama mypassword, KeePassX akan otomatis menambahkan ekstensi *kdb seperti terlihat di bawah ini :

Supaya bisa diakses dari komputer & handphone, saya menyimpan database file tadi ke dalam folder-nya Dropbox. Ini contoh di Mac OSX, saya bisa akses database file tadi dari Dropbox.Saya bisa langsung membukanya dengan aplikasi KeePassX :Tentu saya perlu memasukkan master password yang tadi saya set saat membuat database-nya. Bila saya memasukkan master password yang tepat maka saya bisa mengakses isi database tadi :File database KeePass tersebut bisa dibuka juga di Android dan di IOS. Saya pakai aplikasi KeePassDroid, sementara di IOS ada aplikasi iKeepPass yang bisa membuka file database yang sudah kita buat. iKeePass di IOS perlu dibayar dengan harga $0.99.

Ini contoh saat saya mencoba mengakses database password tadi dengan menggunakan iKeePass di iPhone.

  1. Saat pertama diinstal ada database bawaan yaitu “Test database”.
  2. Untuk menambah database yang tadi ada di Dropbox, tap pada menu Setting – Databases. Lalu tap menu Add yang ada di kanan atas :
  3. Lalu kita pilih Type-nya Dropbox & pilih file database tadi :
  4. Kita bisa memasukkan master password sekarang pada kolom Password & akhiri dengan tap menu Ok :
  5. KeePassX akan melakukan sinkronisasi file database tersebut dengan Dropbox :
  6. Tidak lama kemudian KeePassX akan menampilkan isi database password :

Mirip caranya di Android saat menggunakan KeePassDroid :
KeePassDroid juga bisa mengakses database file yang disimpan dalam Dropbox :
Dengan memasukkan master password yang tepat, kita bisa membaca semua isi password yang tersimpan dalam database tadi :

Kira-kira begitu alternatif menyimpan banyak password yang saya pakai sekarang.

Sekilas Tentang SUDO

Misalnya saya punya Ubuntu server dengan hostname ubuntu1204. Lalu saya buat user baru dengan nama sysadmin.

root@ubuntu1204:~# useradd -m -d /home/sysadmin -s /bin/bash sysadmin
root@ubuntu1204:~# passwd sysadmin
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@ubuntu1204:~#

Ketika saya coba login dengan user sysadmin ternyata saya tidak bisa menggunakan perintah reboot untuk merestart servernya :

ttirtawi@macmini:~$ ssh sysadmin@192.168.10.100
sysadmin@192.168.10.100's password: 
Last login: Thu Jan  2 00:15:34 2014 from macmini.local
sysadmin@ubuntu1204:~$ /sbin/reboot
reboot: Need to be root
sysadmin@ubuntu1204:~$

Saya ingin memberi akses untuk user sysadmin kemampuan untuk merestart server. Untuk menjawab kebutuhan ini kita perlu sedikit mengenal tentang yang namanya sudo.

Akses kontrol di Ubuntu Linux diatur oleh perintah sudo. sudo dikenal sebagai akronim dari Super User Do. User yang diberi hak menggunakan perintah sudo bisa menjalankan perintah-perintah yang tadinya hanya bisa dijalankan oleh user root. Di Ubuntu Linux, root tidak bisa login secara langsung. Beda dengan distro Linux lainnya seperti Debian atau RedHat/CentOS, saat instalasi Ubuntu kita tidak diminta untuk memberi password pada akun root. Alih-alih hanya 1 user yang didefinisikan saat proses instalasi. User pertama ini langsung diberi akses penuh untuk menggunakan sudo. Misalnya seperti contoh di bawah ini, user ttirtawi tidak bisa login sebagai root menggunakan perintah su - root.

ttirtawi@ubuntu1204:~$ su - root
Password: 
su: Authentication failure
ttirtawi@ubuntu1204:~$ sudo bash
[sudo] password for ttirtawi: 
root@ubuntu1204:~#

Untuk mengakses root prompt digunakan perintah sudo bash. Uniknya sudo ini kita tidak perlu lagi repot-repot mendistribusikan password root. User yang diberi akses sudo cukup menggunakan password-nya sendiri.

Bila user biasa yang tidak punya akses sudo mencoba menggunakan perintah sudo akan muncul error seperti berikut ini :

faultmgmt@ubuntu1204:~$ sudo bash
[sudo] password for faultmgmt: 
faultmgmt is not in the sudoers file.  This incident will be reported.
faultmgmt@ubuntu1204:~$

Semua percobaan akses sudo yang gagal tadi akan disimpan dalam file /var/log/auth.log

root@ubuntu1204:~# tail -f /var/log/auth.log  | grep "NOT in sudoers"
Jan  2 08:36:27 ubuntu1204 sudo: faultmgmt : user NOT in sudoers ; TTY=pts/2 ; PWD=/home/faultmgmt ; USER=root ; COMMAND=/bin/bash
^C
root@ubuntu1204:~#

Semua hal berkaitan dengan pengaturan sudo disimpan dalam file /etc/sudoers. Sangat disarankan untuk tidak mengubah file /etc/sudoers secara langsung (dengan teks editor misalnya). Sebaiknya kita menggunakan perintah visudo untuk mengedit file /etc/sudoers. Perintah visudo secara default menggunakan editor nano. Meski menggunakan editor nano, visudo dilengkapi beberapa fungsi internal yang memastikan tidak ada kesalahan sintaks/format.

root@ubuntu1204:~# visudo

Ini contoh tampilan nano yang dipakai oleh perintah visudo :

Visudo Dengan Editor NANO photo nano-visudo_zps7e2c2e15.jpg

Penjaminan akses sudo bisa dilakukan pada level user atau group. Default-nya Ubuntu Linux menggunakan limitasi berbasis group untuk mengatur siapa-siapa yang bisa menggunakan sudo. Ada satu group khusus dengan nama sudo :

root@ubuntu1204:~# grep %sudo /etc/sudoers
%sudo   ALL=(ALL:ALL) ALL
root@ubuntu1204:~#

Pengaturan akses group ditandai dengan tanda %. Contoh di atas bisa dibaca sebagai berikut : semua user yang berada dalam group sudo bisa mengakses semua perintah root, tidak peduli dari mana dia mengakses mesin ini (akses remote dari komputer lain pun dibolehkan menggunakan sudo).

User pertama yang dibuat saat instalasi, masuk dalam group sudo :

root@ubuntu1204:~# grep sudo /etc/group
sudo:x:27:ttirtawi
root@ubuntu1204:~#

Artinya saya bisa menjalankan semua perintah sebagai root, misalnya saya bisa jalankan perintah ini :

  • sudo reboot
  • sudo aptitude install ...
  • sudo route add ...
  • sudo shutdown -h now
  • sudo mkfs.ext3 /dev/sda3
  • dsb

Balik lagi ke permasalahan di awal, bagaimana memberi akses pada perintah reboot saja pada user biasa (sysadmin)? Bisakah saya melakukannya hanya dengan memasukkan user sysadmin ke dalam group sudo? Tentu bisa, tapi dengan begitu user sysadmin akan bisa juga mengganti pengaturan IP, mengganti static routing, memformat harddisk, dsb.

Yang lebih tepat adalah dengan memberi akses pada perintah /sbin/reboot saja untuk user sysadmin. Dengan menggunakan perintah visudo saya menambahkan dua baris berikut ini ke dalam file /etc/sudoers :

Cmnd_Alias RESTART=/sbin/reboot
sysadmin ALL=(ALL) NOPASSWD: RESTART

Pertama saya membuat alias untuk perintah /sbin/reboot, aliasnya saya beri nama RESTART. Lalu saya beri akses kepada user sysadmin untuk menggunakan alias RESTART tadi. Opsi NOPASSWD: artinya user tidak perlu lagi memasukkan password saat mengeksekusi perintah sudo.

Berikut ini adalah salah satu contoh hasil akhir /etc/sudoers setelah saya menambahkan 2 baris baru tadi :

root@ubuntu1204:~# cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults    env_reset
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification
Cmnd_Alias RESTART=/sbin/reboot

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

sysadmin ALL=(ALL) NOPASSWD: RESTART
root@ubuntu1204:~#

Dengan begitu user sysadmin sekarang bisa merestart server dengan tambahan perintah sudo.

ttirtawi@macmini:~$ ssh sysadmin@192.168.10.100
sysadmin@192.168.10.100's password: 
Last login: Thu Jan  2 00:19:34 2014 from macmini.local
sysadmin@ubuntu1204:~$ sudo reboot
sysadmin@ubuntu1204:~$ 
Broadcast message from ttirtawi@ubuntu1204
    (/dev/pts/2) at 0:11 ...

The system is going down for reboot NOW!
Connection to 192.168.10.100 closed by remote host.
Connection to 192.168.10.100 closed.
ttirtawi@macmini:~$

Bila banyak user dengan kebutuhan akses sudo yang sama, lebih efisien menggunakan akses group seperti ini :

Cmnd_Alias RESTART=/sbin/reboot
%sysadmin ALL=(ALL) NOPASSWD: RESTART

Saya tinggal memasukkan setiap user yang perlu hak merestart server ke dalam group sysadmin. Misalnya seperti berikut ini :

root@ubuntu1204:~# useradd -G sysadmin -m -d /home/budi -s /bin/bash budi
root@ubuntu1204:~# passwd budi
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
root@ubuntu1204:~# su - budi
budi@ubuntu1204:~$
budi@ubuntu1204:~$ reboot
Command 'reboot' is available in '/sbin/reboot'
The command could not be located because '/sbin' is not included in the PATH environment variable.
This is most likely caused by the lack of administrative privileges associated with your user account.
reboot: command not found
budi@ubuntu1204:~$
budi@ubuntu1204:~$ /sbin/reboot
reboot: Need to be root
budi@ubuntu1204:~$
budi@ubuntu1204:~$ sudo /sbin/reboot
budi@ubuntu1204:~$ 
Broadcast message from ttirtawi@ubuntu1204
    (/dev/pts/2) at 9:07 ...

The system is going down for reboot NOW!
Connection to 192.168.10.100 closed by remote host.
Connection to 192.168.10.100 closed.
ttirtawi@macmini:~$

Saya membuat user baru dengan nama budi. User budi saya masukkan ke dalam group sysadmin. Oleh karenanya budi dapat merestart server dengan sudo reboot atau sudo /sbin/reboot.

Begitu kira-kira caranya mengatur akses pada perintah-perintah “penting” dengan menggunakan sudo.