DEV Community

Zahrotun Nabila
Zahrotun Nabila

Posted on

Gaining Superuser Access

The Superuser

Sistem operasi Linux memiliki akun pengguna khusus yang sangat kuat, disebut superuser (pengguna super) atau root. Akun ini memiliki akses penuh ke seluruh sistem dan dapat melakukan apapun.

Akun root digunakan untuk mengelola dan administer sistem, seperti instalasi software, pengaturan file dan direktori sistem, dan lain sebagainya. Namun, kekuatan tersebut juga menjadi tanggung jawab yang besar. Jika akun root diretas, pengguna lain bisa mengambil alih kontrol penuh atas sistem.

Direkomendasikan untuk tidak login langsung sebagai root melainkan sebagai pengguna biasa. Ketika membutuhkan akses root, Anda dapat menggunakan mekanisme lain (su, sudo, atau PolicyKit) untuk sementara meningkatkan hak akses ke level root.

Switching Users

Perintah su di Linux memungkinkan untuk beralih ke akun pengguna lain.

Menjalankan su dari akun pengguna biasa:
• Anda akan diminta memasukkan password dari akun yang ingin dituju.
• Contoh: Beralih dari user01 ke user02.

[user01@host ~]$ su - user02
Password: 
[user02@host ~]$ 
Enter fullscreen mode Exit fullscreen mode

Menjalankan su tanpa nama pengguna (default):
• Ini akan mencoba beralih ke akun root.
• Memerlukan password akun root.

[user01@host ~]$ su -
Password: 
[root@host ~]#
Enter fullscreen mode Exit fullscreen mode

Perbedaan su dan su -:
su: Membuka shell non-login dengan pengaturan lingkungan pengguna yang menjalankan su.
su - (dengan tanda hubung): Membuka shell login dengan pengaturan lingkungan yang seolah-olah Anda baru login sebagai pengguna tujuan.

Dalam kebanyakan kasus, administrator sebaiknya menggunakan su - untuk mendapatkan shell dengan pengaturan lingkungan normal pengguna target. Perintah su paling sering digunakan untuk mendapatkan antarmuka baris perintah (shell prompt) yang dijalankan sebagai pengguna lain, biasanya root. Selain beralih pengguna, perintah su dengan opsi -c dapat digunakan untuk menjalankan program tertentu sebagai pengguna lain.

Menjalankan Perintah dengan Sudo

Akun pengguna root memiliki kekuatan penuh untuk mengelola sistem. Namun, untuk keamanan, akun root terkadang tidak memiliki password. Akibatnya, pengguna tidak bisa login langsung sebagai root dan perintah su tidak bisa digunakan untuk mendapatkan akses shell interaktif.

Sudo sebagai Alternatif untuk Mendapatkan Akses Root

• Perintah sudo menawarkan solusi untuk menjalankan perintah tertentu dengan hak akses root.

• Berbeda dengan su, pengguna yang menggunakan sudo tidak perlu mengetahui password root. Mereka cukup memasukkan password mereka sendiri untuk autentikasi.

• Konfigurasi sudo dapat diatur untuk mengizinkan pengguna tertentu menjalankan perintah apapun sebagai pengguna lain, atau hanya beberapa perintah tertentu.

Keuntungan menggunakan sudo:

• Semua perintah yang dijalankan dengan sudo dicatat di log file /var/log/secure. Ini memudahkan pelacakan aktivitas.

• Di Red Hat Enterprise Linux (RHEL) 7 dan 8, pengguna yang tergabung dalam grup wheel secara default bisa menggunakan sudo untuk menjalankan perintah apapun, termasuk dengan hak akses root.

Peringatan:
Pada RHEL 6, grup wheel tidak memiliki hak akses istimewa secara default. Hal ini berbeda dengan RHEL 7 dan 8. Pastikan Anda memahami konfigurasi sistem untuk menghindari pengguna tidak sah mendapatkan akses root.

Mendapatkan Shell Root Interaktif dengan Sudo
Beberapa cara untuk mendapatkan akses root sementara menggunakan sudo.

• Dengan sudo su -:

Jika ada akun pengguna biasa yang diizinkan menjalankan su dengan sudo, maka Anda bisa menggunakan perintah sudo su - untuk mendapatkan shell root interaktif. Hal ini karena sudo akan menjalankan su - dengan hak akses root, dan root tidak perlu memasukkan password untuk menggunakan su.

• Dengan sudo -i atau sudo -s:

sudo -i: Perintah ini akan beralih ke akun root dan menjalankan shell default pengguna tersebut (biasanya bash) beserta skrip login terkait.

sudo -s: Perintah ini hanya akan menjalankan shell sebagai root tanpa menjalankan skrip login.

Mengonfigurasi Sudo

Konfigurasi utama untuk sudo terletak pada file /etc/sudoers. Untuk menghindari masalah ketika beberapa administrator mencoba mengedit file ini secara bersamaan, gunakan perintah khusus visudo.

Contoh Konfigurasi:

Baris contoh berikut dari file /etc/sudoers memberikan akses sudo kepada anggota grup wheel:

%wheel        ALL=(ALL)       ALL
Enter fullscreen mode Exit fullscreen mode

%wheel: Menandakan grup wheel.

ALL=(ALL): Grup wheel diizinkan menjalankan perintah apapun pada komputer manapun yang memiliki file konfigurasi ini.

ALL: Grup wheel bisa menjalankan perintah tersebut sebagai pengguna lain manapun di sistem.

Secara default, file /etc/sudoers juga menyertakan isi dari file-file yang berada di direktori /etc/sudoers.d. Hal ini memungkinkan administrator untuk menambah akses sudo bagi pengguna dengan mudah. Mereka cukup meletakkan file dengan nama pengguna atau grup tersebut ke dalam direktori /etc/sudoers.d.

Catatan:
Menggunakan direktori tambahan ini memudahkan dalam mengatur akses sudo. Anda dapat mengaktifkan atau menonaktifkan akses sudo pengguna atau grup hanya dengan menambah atau menghapus file terkait di direktori tersebut.

Membuat file di direktori /etc/sudoers.d untuk memberi akses penuh sudo kepada pengguna atau grup tertentu.

Contoh:
• Buat file /etc/sudoers.d/user01 dengan isi:

user01  ALL=(ALL)  ALL
Enter fullscreen mode Exit fullscreen mode

untuk memberi akses penuh sudo kepada pengguna user01.

• Buat file /etc/sudoers.d/group01 dengan isi:

%group01  ALL=(ALL)  ALL
Enter fullscreen mode Exit fullscreen mode

untuk memberi akses penuh sudo kepada grup group01.

Konfigurasi sudo tanpa password

Konfigurasi sudo memungkinkan pengguna tertentu untuk menjalankan perintah sebagai pengguna lain tanpa perlu memasukkan password.

Ini adalah tindakan yang berisiko tinggi karena bisa memudahkan orang lain untuk mengambil alih kontrol sistem Anda. Sebaiknya dihindari kecuali dalam keadaan tertentu.

ansible  ALL=(ALL)  NOPASSWD:ALL
Enter fullscreen mode Exit fullscreen mode

Hal ini sering digunakan pada cloud instance, virtual machine, dan sistem provisioning untuk membantu konfigurasi server. Biasanya akun dengan akses ini memiliki perlindungan ketat seperti SSH public-key authentication.

Contoh:

AMI resmi untuk Red Hat Enterprise Linux di Amazon Web Services Marketplace dikirimkan bersama root dan ec2-user kata sandi pengguna terkunci. Akun ec2-user pengguna diatur untuk memungkinkan akses interaktif jarak jauh melalui otentikasi kunci publik SSH. Pengguna ec2-user juga dapat menjalankan perintah apa pun roottanpa kata sandi karena baris terakhir file AMI /etc/sudoers diatur sebagai berikut:

ec2-user  ALL=(ALL)  NOPASSWD: ALL
Enter fullscreen mode Exit fullscreen mode

Persyaratan untuk memasukkan kata sandi untuk sudo dapat diaktifkan kembali atau perubahan lain dapat dilakukan untuk memperketat keamanan sebagai bagian dari proses konfigurasi sistem.

Top comments (0)