Syslab.id – Tutorial kali ini kami akan membahas tentang bagaimana cara melakukan manajemen user di sistem operasi Linux Ubuntu 22.04 LTS.
Mengelola akses ke sistem operasi Linux dan resources adalah tugas penting bagi seorang system Administrator. Jika permission user diatur tidak tepat, maka bisa menjadi celah keamanan atau bahkan membuat sistem Linux tidak bisa digunakan. Itulah pentingnya manajemen user di sistem operasi Linux
Tipe User/Account | Level Akses | Penggunaan |
Root User | Akses ke seluruh sistem Linux. User root dapat memulai perintah apa pun, memodifikasi pengaturan sistem, mengedit file, atau menginstal perangkat lunak tanpa batasan | Terutama digunakan untuk melakukan tugas administrasi sistem. |
Standar User | Hak istimewa user terbatas. User standar tidak dapat melakukan tindakan yang memengaruhi pengaturan sistem inti atau user account lain. | Akses dasar untuk memanfaatkan berbagai sumber daya sistem |
Sudo User | User standar yang telah diberikan permission untuk menjalankan perintah tertentu sebagai user root. | Setiap perintah yang memerlukan hak akses root harus diawali dengan perintah sudo. |
System Account | User account untuk aplikasi atau layanan otomatis yang perlu melakukan tugas-tugas tertentu pada sistem Linux. | System Account beroperasi dengan permission terbatas untuk meningkatkan keamanan dan kontrol atas operasi sistem. |
Guest User | Temporary account dengan hak istimewa yang dibatasi dan dikontrol. | User yang memerlukan akses untuk waktu terbatas dan tidak memerlukan file dan pengaturan pribadi. |
User Groups | Permission diberikan kepada kumpulan user yang diatur ke dalam grup logis dengan permission yang sama. | Admin dapat mengelola permission untuk seluruh group user, bukan mengelola user account secara individual. |
Pada panduan ini, kami akan menunjukkan cara melakukan manajemen user di sistem operasi Linux dengan tepat.
Baca juga : Perintah Dasar Linux ~ Syslab.id
Untuk mengetahui adanya user yang sedang login di sistem operasi Ubuntu Anda dapat menggunakan command who, dengan perintah ini Anda dapat melihat daftar user yang sedang login ke sistem operasi Linux
ubuntu@syslab:~$ who
ubuntu pts/0 2025-01-27 17:29 (10.3.4.254)
ubuntu@syslab:~$
Anda dapat menambahkan opsi -H untuk melihat detail header pada kolom informasi diatas
ubuntu@syslab:~$ who -H
NAME LINE TIME COMMENT
ubuntu pts/0 2025-01-27 17:29 (10.3.4.254)
ubuntu@syslab:~$
File /etc/passwd berisi data tentang semua user di sistem operasi Linux, terdapat beberapa perintah linux yang dapat digunakan seperti cat, awk dan getent sebagai contoh kami berikut kami menggunakan perintah cat untuk melihat semua user yang ada di sistem operasi Linux
ubuntu@syslab:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:102:105::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:103:106:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
syslog:x:104:111::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:112:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:113::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:114::/nonexistent:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
landscape:x:111:116::/var/lib/landscape:/usr/sbin/nologin
fwupd-refresh:x:112:117:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
lxd:x:999:100::/var/snap/lxd/common/lxd:/bin/false
ubuntu@syslab:~$
Terdapat beberapa alternatif perintah selain cat untuk melihat user yang ada di sistem operasi linux seperti more command atau less command
ubuntu@syslab:~$ more /etc/passwd
ubuntu@syslab:~$ less /etc/passwd
Untuk membuat user di Linux Ubuntu Anda dapat menggunakan perintah useradd atau adduser
ubuntu@syslab:~$ sudo useradd user1
ubuntu@syslab:~$
Jika sudah cek apakah user sudah terbuat menggunakan cat command
ubuntu@syslab:~$ cat /etc/passwd |grep user1
user1:x:1001:1001::/home/user1:/bin/sh
ubuntu@syslab:~$
Dengan perintah diatas Anda sudah menambahkan user1, Anda juga dapat menambahkan user menggunakan adduser. Perintah ini secara otomatis membuat direktori home untuk user, menetapkan shell default, dan meminta user untuk memasukkan password pada saat pembuatan user, seperti berikut:
ubuntu@syslab:~$ sudo adduser user2
Adding user `user2' ...
Adding new group `user2' (1002) ...
Adding new user `user2' (1002) with group `user2' ...
Creating home directory `/home/user2' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for user2
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
ubuntu@syslab:~$
Dengan perintah diatas Anda sudah berhasil membuat user sekaligus set password ke user tersebut dan direktori default user di direktori /home/ juga sudah terbuat berikut:
ubuntu@syslab:~$ ll /home/
total 16
drwxr-xr-x 4 root root 4096 Jan 27 18:04 ./
drwxr-xr-x 19 root root 4096 Jan 23 11:06 ../
drwxr-x--- 4 ubuntu ubuntu 4096 Jan 27 17:52 ubuntu/
drwxr-x--- 2 user2 user2 4096 Jan 27 18:04 user2/
ubuntu@syslab:~$
Lalu jika Anda ingin melakukan reset password pada user yang sudah dibuat bisa menggunakan perintah passwd
ubuntu@syslab:~$ sudo passwd user1
New password:
Retype new password:
passwd: password updated successfully
ubuntu@syslab:~$
Perintah usermod di Linux digunakan untuk memodifikasi berbagai atribut dari user yang sudah ada. Anda dapat menggunakan beberapa opsi dengan perintah dibawah ini untuk mengubah data tertentu:
Pada perintah berikut, opsi -d digunakan untuk mengubah lokasi direktori home user:
ubuntu@syslab:~$ sudo usermod -d /var/user1 user1
ubuntu@syslab:~$ cat /etc/passwd |grep user1
user1:x:1001:1001::/var/user1:/bin/sh
ubuntu@syslab:~$
Dari contoh perintah diatas direktori home untuk user user1 diubah dari /home/user1 menjadi /var/user1
Perintah userdel digunakan untuk menghapus user dari file /etc/passwd. Sebagai contoh, untuk menghapus user user2, gunakan perintah berikut:
ubuntu@syslab:~$ sudo userdel user2
ubuntu@syslab:~$
Ubah user2 dengan nama user yang ingin Anda hapus. Perintah userdel tidak secara otomatis menghapus direktori home pengguna atau file terkait lainnya. Anda dapat menggunakan opsi -r untuk menghapus direktori home dan mail spool:
ubuntu@syslab:~$ userdel -r user2
ubuntu@syslab:~$
Grup user di Linux mempermudah pengelolaan izin dan aturan akses untuk sekumpulan user. Mengubah izin atau hak akses suatu grup akan menerapkan perubahan ke semua user dalam grup.
Gunakan perintah dibawah ini untuk membuat grup user baru di Linux
ubuntu@syslab:~$ sudo groupadd usertest
ubuntu@syslab:~$
Ubah usertest dengan nama grup yang ingin Anda buat. Gunakan perintah getent untuk memastikan grup baru sudah ada di dalam file direktori /etc/group Linux
ubuntu@syslab:~$ getent group usertest
usertest:x:1002:
ubuntu@syslab:~$
Perintah diatas digunakan untuk menampilkan detail group yang sudah Anda buat usertest, termasuk nama dan ID-nya.
Pada saat Anda menambahkan user ke dalam sebuah grup, maka secara otomatis mendapatkan izin yang terkait dengan grup tersebut. Di sistem operasi Linux Ubuntu, Anda dapat menggunakan perintah adduser untuk menambahkan pengguna ke grup yang sudah ada
ubuntu@syslab:~$ sudo adduser user1 usertest
Adding user `user1' to group `usertest' ...
Adding user user1 to group usertest
Done.
ubuntu@syslab:~$
Dengan perintah diatas maka user1 sudah di tambahkan ke grup usertest.
Perintah usermod dapat digunakan dengan menambahkan opsi -a (append) dan -G (groups) untuk menambahkan user ke grup yang sudah ada tanpa menghapusnya dari grup saat ini (existing group)
ubuntu@syslab:~$ sudo usermod -aG usertest user1
ubuntu@syslab:~$ sudo usermod -aG usertest user2
ubuntu@syslab:~$
Anda dapat memastikan apakah user1 dan user2 sudah ada di grup usertest menggunakan perintah groups [user]
ubuntu@syslab:~$ groups user1 user2
user1 : user1 usertest
user2 : user2 usertest
ubuntu@syslab:~$
Anda juga dapat menghapus user yang ada di spesifik grup misalkan kami akan menghapus user2 yang ada di grup usertest, gunakan perintah berikut
ubuntu@syslab:~$ sudo deluser user2 usertest
Removing user `user2' from group `usertest' ...
Done.
ubuntu@syslab:~$
Gunakan perintah id untuk menampilkan daftar grup yang diikuti oleh user:
ubuntu@syslab:~$ id user1
uid=1001(user1) gid=1001(user1) groups=1001(user1),1002(usertest)
ubuntu@syslab:~$
Opsi -n dan -G pada perintah id digunakan untuk menampilkan nama grup saja, bukan ID numeriknya.
ubuntu@syslab:~$ id -nG user1
user1 usertest
ubuntu@syslab:~$
Data tentang user dan grup disimpan dalam file /etc/group. Gunakan perintah berikut untuk mengambil semua grup user, ID grup
ubuntu@syslab:~$ getent group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,ubuntu
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:ubuntu
fax:x:21:
voice:x:22:
cdrom:x:24:ubuntu
floppy:x:25:ubuntu
tape:x:26:
sudo:x:27:ubuntu
audio:x:29:ubuntu
dip:x:30:ubuntu
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:ubuntu
sasl:x:45:
plugdev:x:46:ubuntu
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
crontab:x:104:
messagebus:x:105:
systemd-timesync:x:106:
input:x:107:
sgx:x:108:
kvm:x:109:
render:x:110:
syslog:x:111:
tss:x:112:
uuidd:x:113:
tcpdump:x:114:
_ssh:x:115:
landscape:x:116:
fwupd-refresh:x:117:
admin:x:118:
netdev:x:119:ubuntu
lxd:x:120:ubuntu
ubuntu:x:1000:
user1:x:1001:
usertest:x:1002:user1
user2:x:1003:
ubuntu@syslab:~$
Anda dapat memparsing list tersebut untuk mengekstrak user grup menggunakan perintah awk
ubuntu@syslab:~$ getent group | awk -F: '$4 != "" {print $1 ": " $4}'
adm: syslog,ubuntu
dialout: ubuntu
cdrom: ubuntu
floppy: ubuntu
sudo: ubuntu
audio: ubuntu
dip: ubuntu
video: ubuntu
plugdev: ubuntu
netdev: ubuntu
lxd: ubuntu
usertest: user1
ubuntu@syslab:~$
Dengan mengikuti langkah-langkah dalam panduan ini, Anda dapat mengelola manajemen user di sistem operasi Linux dengan efektif
Sampai disini Anda sudah berhasil melakukan manajemen user dan grup di Linux Ubuntu Server.
Selamat mencoba 🔥