User Account Management

By Adit the absurd boy


User Accounts

Satu akun pengguna khusus untuk pengguna root, yang dapat melakukan apa saja pada sistem. Untuk menghindari kesalahan yang merugikan, dan demi alasan keamanan, akun root sebaiknya hanya digunakan jika benar-benar diperlukan.

Akun pengguna normal adalah untuk orang yang akan bekerja pada sistem. Beberapa akun pengguna (seperti akun daemon) dibuat dengan tujuan untuk mengijinkan proses berjalan sebagai pengguna selain root.


Attributes of a User Account

Setiap pengguna di sistem memiliki baris terkait di file /etc/passwd yang menjelaskan atribut akun dasar mereka.

[User Name]    [User Password]    [UID]    [GID]    [Comment]            [Home Directory]    [Login Shell]
beav:           x:                1000:    1000:    Theodore Cleaver:    /home/beav:          /bin/bash

Contoh:
warden:x:1001:1001:Ward Cleaver:/home/warden:/bin/bash
dobie:x:1002:1002:Dobie Gillis:/home/dobie:/bin/bash


Creating User Accounts with useradd

$ sudo useradd dexter

Perintah tersebut akan membuat akun untuk pengguna dexter, menggunakan algoritme default untuk menetapkan id pengguna dan grup, direktori home, dan pilihan shell.


Modifying and Deleting User Accounts

Pengguna root dapat menghapus akun pengguna menggunakan userdel:

$ sudo userdel morgan

Walaupun ini menghapus akun, namun tidak menghapus direktori home (biasanya /home/morgan) untuk berjaga-jaga jika akun tersebut dapat dibuat kembali di kemudian hari. Jika opsi -r diberikan pada userdel, direktori home juga akan terhapus. Namun, semua file pada sistem yang dimiliki oleh pengguna yang dihapus akan tetap ada.

usermod dapat digunakan untuk mengubah karakteristik akun pengguna, seperti keanggotaan grup, direktori home, nama login, kata sandi, shell default, id pengguna, dll. Sebagai contoh, perintah:

$ sudo usermod -L dexter

mengunci akun dexter, sehingga dia tidak bisa login.

Untuk lengkap gunakan man page.


Locked Accounts

Linux dilengkapi dengan beberapa akun sistem yang terkunci (seperti bin, daemon, atau sys), yang berarti akun-akun tersebut dapat menjalankan program, tetapi tidak dapat masuk ke sistem dan tidak memiliki kata sandi yang valid yang terkait dengannya. Sebagai contoh, pada file /etc/passwd:

bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

Akun terkunci tersebut dibuat untuk tujuan khusus, baik oleh layanan sistem atau aplikasi.

Anda juga dapat mengunci akun pengguna tertentu, contoh:

$ sudo usermod -L dexter

Cara lain untuk mengunci akun adalah dengan menggunakan chage untuk mengubah tanggal kedaluwarsa akun:

$ sudo chage -E 2014-09-11 morgan


User IDs and /etc/passwd

Konvensi yang digunakan oleh sebagian besar distribusi Linux adalah bahwa setiap akun dengan ID pengguna kurang dari 1000 dianggap istimewa dan menjadi milik sistem; akun pengguna normal dimulai dari 1000. Nilai sebenarnya didefinisikan sebagai UID_MIN dan didefinisikan di /etc/login.defs.

Secara historis, distribusi turunan Red Hat menggunakan UID_MIN = 500, bukan 1000, tetapi mulai RHEL 7, nilai yang lebih umum yaitu 1000 digunakan.

Jika User ID tidak ditentukan saat menggunakan useradd, sistem akan memberikan UID secara bertahap mulai dari UID_MIN.


Why Use /etc/shadow?

Penggunaan /etc/shadow memungkinkan penuaan kata sandi berdasarkan basis per pengguna. Pada saat yang sama, ini juga memungkinkan untuk menjaga keamanan yang lebih baik dari kata sandi yang di-hash.

/etc/shadow memiliki pengaturan izin 400 (-r--------), yang berarti hanya root yang dapat mengakses berkas ini. Hal ini membuat lebih sulit bagi seseorang untuk mengumpulkan kata sandi ter-hash.


Password Management

Kata sandi dapat diubah dengan passwd; pengguna normal hanya dapat mengubah kata sandi mereka sendiri, sementara root dapat mengubah kata sandi pengguna mana pun.

Pengguna biasa yang mengubah kata sandi mereka:

$ passwd
Changing password for clyde
(current) UNIX password: <clyde's password>
New UNIX password: <clyde's-new-password>
Retype new UNIX password: <clyde's-new-password>
passwd: all authentication tokens updated successfully

Selain itu, perhatikan bahwa saat root mengubah kata sandi pengguna, root tidak akan diminta kata sandi saat ini:

$ sudo passwd kevin
New UNIX password: <kevin's-new-password>
Retype new UNIX password: <kevin's-new-password>
passwd: all authentication tokens updated successfully


Password Aging (chage)

Secara umum, mengganti kata sandi secara berkala dianggap penting. Hal ini membatasi jumlah waktu kata sandi yang telah dibobol dapat berguna bagi penyusup dan juga dapat digunakan untuk mengunci akun yang tidak digunakan.

Utilitas yang mengelola ini adalah chage:

chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E expiredate] [-W warndays] user

Contoh:

$ sudo chage -l stephane
$ sudo chage -m 14 -M 30 kevlin
$ sudo chage -E 2012-4-1 isabelle
$ sudo chage -d 0 clyde

Hanya pengguna root yang dapat menggunakan chage.


Restricted Accounts

Ada kalanya pemberian akses kepada pengguna diperlukan, tetapi harus dibatasi ruang lingkupnya. Menyiapkan akun pengguna terbatas dapat berguna dalam konteks ini. Akun yang dibatasi:

  • Menggunakan shell terbatas

  • Membatasi program sistem dan aplikasi pengguna yang tersedia

  • Membatasi sumber daya sistem

  • Membatasi waktu akses

  • Membatasi lokasi akses.

Dari baris perintah, atau dari skrip, shell terbatas dapat dipanggil dengan /bin/bash -r. Namun, flag atau opsi mungkin tidak ditentukan dalam file /etc/passwd. Cara sederhana untuk mengatasi pembatasan ini adalah dengan melakukan salah satu hal berikut:

$ cd /bin ; sudo ln -s bash rbash
$ cd /bin ; sudo ln    bash rbash
$ cd /bin ; sudo cp    bash rbash

dan kemudian, gunakan /bin/rbash sebagai shell di /etc/passwd. Akun yang dibatasi terkadang juga disebut sebagai akun terbatas(limited accounts).


The Root Account

Akun root hanya boleh digunakan untuk tujuan administratif jika benar-benar diperlukan dan jangan pernah digunakan sebagai akun biasa. Kesalahan bisa sangat merugikan, baik untuk integritas dan stabilitas, serta keamanan sistem.

Secara default, login root melalui jaringan umumnya dilarang untuk alasan keamanan. Anda dapat mengizinkan login Secure Shell menggunakan ssh, yang dikonfigurasi dengan /etc/ssh/sshd_config, dan PAM (Pluggable Authentication Modules), melalui file pam_securetty.so dan file /etc/securetty yang terkait.


SSH

SSH (Secure SHell) menggunakan enkripsi berdasarkan algoritma yang kuat. Dengan mengasumsikan paket ssh yang tepat terinstal pada sebuah sistem, seseorang tidak memerlukan pengaturan lebih lanjut untuk mulai menggunakan ssh.

Untuk masuk ke sistem jarak jauh dengan asumsi ada akun pelajar di farflung.com:

$ ssh farflung.com 

Untuk masuk sebagai pengguna lain:

$ ssh root@farflung.com
$ ssh -l root farflung.com

Untuk menyalin file dari satu sistem ke sistem lainnya:

$ scp file.txt farflung.com:/tmp
$ scp file.tex student@farflung.com/home/student
$ scp -r some_dir farflung.com:/tmp/some_dir

SSH KEY-BASED AUTHENTICATION

Anda dapat mengonfigurasi server SSH untuk memungkinkan Anda mengautentikasi tanpa kata sandi dengan menggunakan autentikasi berbasis kunci. Ini didasarkan pada skema kunci privat-publik.

Untuk melakukan ini, Anda menghasilkan sepasang file kunci kriptografi yang cocok. Satu file adalah kunci pribadi, dan file lainnya adalah kunci publik yang cocok. File kunci privat digunakan sebagai kredensial autentikasi dan, seperti kata sandi, harus dirahasiakan dan aman. Kunci publik disalin ke sistem yang ingin disambungkan oleh pengguna, dan digunakan untuk memverifikasi kunci privat.

Generating SSH Keys

Untuk membuat kunci privat dan kunci publik yang cocok untuk autentikasi, gunakan perintah ssh-keygen. Secara default, kunci privat dan publik Anda disimpan di dalam berkas ~/.ssh/id_rsa dan ~/.ssh/id_rsa.pub.

Setelah kunci SSH dibuat, kunci tersebut disimpan secara default di direktori .ssh/ pada direktori home pengguna. Mode izin harus 600 pada kunci privat dan 644 pada kunci publik.

Sharing the Public Key

Sebelum autentikasi berbasis kunci dapat digunakan, kunci publik perlu disalin ke sistem tujuan. Perintah ssh-copy-id menyalin kunci publik dari pasangan kunci SSH ke sistem tujuan.


Groups

Sistem Linux membentuk kumpulan pengguna yang disebut grup, yang anggotanya memiliki tujuan yang sama.

Grup didefinisikan di /etc/group, yang memiliki peran yang sama untuk grup seperti halnya /etc/passwd untuk pengguna. Setiap baris dari file tersebut terlihat seperti:

groupname:password:GID:user1,user2,...

Group Management

Akun grup dapat dikelola dan dipelihara dengan:

  • groupadd

  • groupmod

  • groupdel

  • usermod

Lengkapnya baca pada man page


User Private Groups

Linux menggunakan User Private Groups (UPG).

Ide di balik UPG adalah bahwa setiap pengguna akan memiliki grupnya sendiri. Namun, UPG tidak dijamin bersifat pribadi; anggota tambahan dapat ditambahkan ke grup pribadi seseorang di /etc/group.


Group Membership

Seorang pengguna Linux memiliki satu grup utama; ini terdaftar di /etc/passwd dan juga akan terdaftar di /etc/group. Seorang user dapat menjadi anggota dari 0 sampai 15 group sekunder.

Keanggotaan grup dapat diidentifikasi dengan menjalankan salah satu dari perintah berikut:

$ groups [user1 user2 ...]
$ id -Gn [user1 user2 ...]

Tanpa argumen, perintah ini melaporkan pengguna saat ini.

Last updated