failsystem
23rd November 2011, 10:10 PM
Tutorial Perintah sudo di Ubuntu
perintah sudo digunakan untuk memberikan akses privileges root untuk user tertentu. sehingga kalau kita ingin menjalankan perintah root tidak perlu login sebagai root, cukup login sebagai user yang memang diberikan privileges root tersebut dengan mengetikkan sudo sebelum menjalankan perintah yang lainnya.
skenario pertama
di bawah ini, saya akan memberikan sebuah contoh, misalnya ada user dengan nama arif akan diberikan priveleges sebagai root, sehingga user arif dapat menjalankan semua perintah yang bisa dijalankan oleh root. ada beberapa step yang harus dijalankan untuk mensetup user arif agar bisa seperti root.
1. edit file /etc/sudoers dengan perintah visudo
# visudo
2. tambahkan baris yg warna biru seperti dibawah ini pada file /etc/sudoers
# User privilege specification
root ALL=(ALL) ALL
arif ALL=(ALL) ALL
3. simpan hasil perubahannya.
sekarang user arif sudah bisa menjalankan perintah root. misalnya kita jalankan aplikasi samba, caranya seperti ini:
$ sudo /etc/init.d/smbd start
skenario kedua
misalnya user arif hanya diberikan priveleges untuk menjalankan beberapa perintah saja, jadi tidak semua perintah root bisa dijalankan oleh user arif. contohnya, user arif hanya bisa menjalankan perintah untuk menampilkan status service samba saja. tidak boleh stop, restart, atau start. perintahnya sama seperti diatas untuk step 1. sedangkan untuk step 2 diganti barisnya menjadi seperti ini :
arif ALL=(ALL) /etc/init.d/smbd status
kalau user arif menjalankan perintah selain yang ada didalam file /etc/sudoers, maka akan muncul notice seperti dibawah ini.
$ sudo /etc/init.d/smbd restart
Sorry, user arif is not allowed to execute '/etc/init.d/smbd restart' as root on localhost.
$ sudo /etc/init.d/smbd stop
Sorry, user arif is not allowed to execute '/etc/init.d/smbd stop' as root on localhost.
user arif hanya bisa menjalankan perintah menampilkan samba status saja.
$ sudo /etc/init.d/smbd status
[sudo] password for calvin:
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd status
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status smbd
smbd start/running, process 4026
skenario ketiga
agar user arif tidak perlu memasukkan password saat menjalankan perintah sudo, maka pada step 2 diubah menjadi seperti ini
arif ALL=NOPASSWD: /etc/init.d/smbd status
$ sudo /etc/init.d/smbd status
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd status
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status smbd
smbd start/running, process 4026
untuk memisahkan perintah satu dengang yang lainnya pada penulisan file di /etc/sudoers, gunakan tanda koma. misalnya:
arif ALL=NOPASSWD: /etc/init.d/smbd status,/etc/init.d/smbd restart,/etc/init.d/smbd stop
Penjelasan syntax perintah sudo:
arif ALL=(ALL) ALL
[field 1] [field 2] [field 3] [field 4]
keterangannya:
[field 1] -> user yang akan menggunakan sudo
[field 2] -> hostname komputer dimana perintah bisa dijalankan
[field 3] -> hostname komputer spesifik atau bisa juga disetting all
[field 4] -> perintah-perintah yang bisa dijalankan oleh user menggunakan sudo
NOTE: jangan lupa login ke user arif terlebih dulu untuk menjalan perintah sudo dan perubahan pada file /etc/sudoers langsung bisa memberikan efek pada ubuntunya, jadi tidak perlu reboot.
</div>
perintah sudo digunakan untuk memberikan akses privileges root untuk user tertentu. sehingga kalau kita ingin menjalankan perintah root tidak perlu login sebagai root, cukup login sebagai user yang memang diberikan privileges root tersebut dengan mengetikkan sudo sebelum menjalankan perintah yang lainnya.
skenario pertama
di bawah ini, saya akan memberikan sebuah contoh, misalnya ada user dengan nama arif akan diberikan priveleges sebagai root, sehingga user arif dapat menjalankan semua perintah yang bisa dijalankan oleh root. ada beberapa step yang harus dijalankan untuk mensetup user arif agar bisa seperti root.
1. edit file /etc/sudoers dengan perintah visudo
# visudo
2. tambahkan baris yg warna biru seperti dibawah ini pada file /etc/sudoers
# User privilege specification
root ALL=(ALL) ALL
arif ALL=(ALL) ALL
3. simpan hasil perubahannya.
sekarang user arif sudah bisa menjalankan perintah root. misalnya kita jalankan aplikasi samba, caranya seperti ini:
$ sudo /etc/init.d/smbd start
skenario kedua
misalnya user arif hanya diberikan priveleges untuk menjalankan beberapa perintah saja, jadi tidak semua perintah root bisa dijalankan oleh user arif. contohnya, user arif hanya bisa menjalankan perintah untuk menampilkan status service samba saja. tidak boleh stop, restart, atau start. perintahnya sama seperti diatas untuk step 1. sedangkan untuk step 2 diganti barisnya menjadi seperti ini :
arif ALL=(ALL) /etc/init.d/smbd status
kalau user arif menjalankan perintah selain yang ada didalam file /etc/sudoers, maka akan muncul notice seperti dibawah ini.
$ sudo /etc/init.d/smbd restart
Sorry, user arif is not allowed to execute '/etc/init.d/smbd restart' as root on localhost.
$ sudo /etc/init.d/smbd stop
Sorry, user arif is not allowed to execute '/etc/init.d/smbd stop' as root on localhost.
user arif hanya bisa menjalankan perintah menampilkan samba status saja.
$ sudo /etc/init.d/smbd status
[sudo] password for calvin:
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd status
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status smbd
smbd start/running, process 4026
skenario ketiga
agar user arif tidak perlu memasukkan password saat menjalankan perintah sudo, maka pada step 2 diubah menjadi seperti ini
arif ALL=NOPASSWD: /etc/init.d/smbd status
$ sudo /etc/init.d/smbd status
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service smbd status
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the status(8) utility, e.g. status smbd
smbd start/running, process 4026
untuk memisahkan perintah satu dengang yang lainnya pada penulisan file di /etc/sudoers, gunakan tanda koma. misalnya:
arif ALL=NOPASSWD: /etc/init.d/smbd status,/etc/init.d/smbd restart,/etc/init.d/smbd stop
Penjelasan syntax perintah sudo:
arif ALL=(ALL) ALL
[field 1] [field 2] [field 3] [field 4]
keterangannya:
[field 1] -> user yang akan menggunakan sudo
[field 2] -> hostname komputer dimana perintah bisa dijalankan
[field 3] -> hostname komputer spesifik atau bisa juga disetting all
[field 4] -> perintah-perintah yang bisa dijalankan oleh user menggunakan sudo
NOTE: jangan lupa login ke user arif terlebih dulu untuk menjalan perintah sudo dan perubahan pada file /etc/sudoers langsung bisa memberikan efek pada ubuntunya, jadi tidak perlu reboot.
</div>