Manajemen akun user

Akun user

Sistem linux menyedikan lingkungan multi-user untuk orang dan proses memiliki lingkungan kerja yang terpisah seccara simultan (serentak) yang tujuannya menyediakan ruang pribadi individual bagi setiap user, akun user tententu untuk tujuan khusus tertentu, dan membedakan privillege (hak istimewa) antar user.

Satu akun user khusus untuk bagi user root yang melakukan anything (apasaja) pada sistem agar menghindari kesalahan yang merugikan, keamanan, dan digunakan jika bener-bener diperlukan. Akun user normal adalah orang yang bekerja pada sistem yang beberapa (akun daemon) ada dengan tujuan mengizinkan proses dijalankan sebagai user selain root.

Atribut akun user

File yang menjelaskan atribut akun setiap user di sistem memiliki baris di /etc/passwd

beav:x:1000:1000:Theodore Cleaver:/home/beav:/bin/bash
  • Nama User : Nama unik yang diberikan kepada setiap user

  • Kata Sandi User : Kata sandi yang ditetapkan untuk setiap user

  • Nomor Identifikasi User (UID) : Nomor unik yang ditetapkan ke akun pengguna untuk berbagai tujuan, termasuk penentuan hak istimewa user dan pelacakan aktivitas

  • Nomor Identifikasi Grup (GID) : Menunjukkan grup utama, utama, atau default user

  • Komentar atau Informasi GECOS : Metode yang ditentukan untuk menggunakan kolom komentar untuk informasi kontak (nama lengkap, email, kantor, nomor kontak). (Jangan khawatir tentang arti GECOS, ini adalah istilah yang sudah sangat lama.)

  • Direktori Beranda : Bagi sebagian besar user, ini adalah direktori unik yang menawarkan area kerja bagi user yang dimiliki oleh user dan kecuali root akan ditemukan pada sistem di suatu tempat di bawah /home

  • Login Shell : Biasanya, ini adalah program shell seperti /bin/bashatau /bin/csh. Namun terkadang, program alternatif dirujuk di sini untuk kasus-kasus khusus. Secara umum, bidang ini akan menerima semua file yang dapat dieksekusi

Membuat akun user dengan useradd

sudo useradd dexter

langkah-langkah yang dijalankan:

  • UID tersedia berikutnya yang lebih besar dari UID_MIN (ditentukan dalam /etc/login.defs) secara default ditetapkan sebagai UID dexter

  • Grup bernama dexter dengan GID=UID juga dibuat dan ditetapkan sebagai grup utama dexter

  • Direktori/home/dexterdibuat dan dimiliki oleh dexter

  • shell login dexter akan menjadi /bin/bash

  • Isi/etc/skeldisalin ke /home/dexter. Secara default, /etc/skelmenyertakan file startup untuk bash dan untuk sistem X Window

  • Entri keduanya !! atau ! ditempatkan di bidang kata sandi file /etc/shadowuntuk entri dexter , sehingga mengharuskan administrator untuk menetapkan kata sandi agar akun dapat digunakan

sudo useradd -s /bin/csh -m -k /etc/skel -c "Bullwinkle J Moose" bmoose

Mengubah dan menghapus akun user

sudo userdel dexter

userdel digunakan untuk mengapus akun user dan opsi -r untuk menghapus direktori home user tapi file lain di sistem milik pengguna yang dihapus akan tetap ada.

sudo usermod -L dexter

usermod digunakan untuk mengubah karakteristik akun user seperti grub, direktori home, nama login, kata sandi, shell default, id user dll. perintah diatas untuk mengunci akun dexter.

Akun terkunci

Linux terdapat beberapa akun sistem yang terkunci (seperi bin, daemon atau sys) yang dapat menjalankan program tapi tidak dapat masuk ke sistem dan tidak memiliki kata sandi valid yang tersedia dengannya dengan shell /sbin/nologin, -L dalam userdel dan mengubah tanggal kadaluwarsa akun. ketika masuk ke sistem mungkin muncul pesan dari /etc/nologin.txt.

ID user dan /etc/passwd

Konvensi yang digunakan sebagian besar distribusi Linux adalah UID kurang dari 1000 dianggap istimewa dan dimiliki sistem, akun user normal dimulai dari 1000 yang sebenernya didefinisikan UID_MIN pada /etc/login.defs. jika user tidak menentukan UID saat menggunakan useradd, sistem akan menetapkan UID secara bertahap mulai dari MIN_UID.

Mengapa menggunakan /etc/shadow

Penggunaan /etc/shadow memungkinkan penuaan kata sandi berdasarkan per user dan untuk menjaga keamanan yang lebih baik dari kata sandi yang di-hash. Izin default /etc/passwd adalah 644(-rw-r--r--) siapapun bisa membaca file tersebut. Jika kata sandi yang di-hash muncul di /etc/passwd siapapun dapan membuat salinan kata sandi yang di-hash dan menggunakan utilitas seperti Crack dan John the Ripper untuk menebak kata sandi asli, ini adalah resiko keamanan.

/etc/shadow memiliki izin 400(-r--------) hanya root yang dapat mengakses file, ini mempersulit seorang untuk mengumpulkan kata sandi yang di-hash.

Lebih lanjut tentang /etc/shadow

beav:$6$iCZyCnBJH9rmq7P.$RYNm10Jg3wrhAtUnahBZ/mTMg.RzQE6iBXyqaXHvxxbKTYqj.d9wpoQFuRp7fPEE3hMK3W2gcIYhiXa9MIA9w1:16316:0:99999:7:::
  • nama user : nama user unik

  • kata sandi: nilai kata sandi yang di-hash ( sha512 )

  • last change (perubahan terakhir) : hari sejak 1 Januari 1970 kata sandi terakhir diubah

  • mindays : hari minimum sebelum kata sandi dapat diubah

  • maxdays : jumlah hari maksimum dimana kata sandi harus diubah

  • warn (peringatkan) : hari sebelum kata sandi kedaluwarsa, pengguna diperingatkan

  • grace : hari setelah kata sandi habis masa berlakunya, akun tersebut dinonaktifkan

  • expired : tanggal akun dinonaktifkan/dinonaktifkan

  • reversed (dicadangkan) : bidang yang dicadangkan

Nama user di setiap catatan harus sama persis dengan yang ditemukan di /etc/passwd, dan juga harus muncul dalam urutan yang sama. Hash kata sandi adalah string "$6$" diikuti dengan nilai garam delapan karakter, yang kemudian diikuti oleh $ dan hash kata sandi 88 karakter ( sha512 ).

Manajemen kata sandi

Kata sandi dapat diubah dengan passwd, user hanya dapat mengubah kata sandinya sendiri sedangkan root dapat mengubah kata sandi user apapun. secara default, pilihan kata sandi diperiksa oleh pam_cracklib.so yang membuat pilihan kata sandi yang baik.

passwd
sudo passwd dexter

Penuaan kata sandi (chage)

Dianggap penting untuk mengubah kata sandi secara berkala. hal ini membatasi jumlah waktu kata sandi yang diretas dapat berguna bagi penyusup dan digunakan untuk mengunci akun yang tidak digunakan.

chage [-m mindays] [-M maxdays] [-d lastday] [-I inactive] [-E expiredate] [-W warndays] user
sudo chage -l stephane
sudo chage -m 14 -M 30 kevlin
sudo chage -E 2012-4-1 isabelle
sudo chage -d 0 clyde

Shell terbatas

bash -r
  • Mencegah user menggunakan cd untuk mengubah direktori

  • Mencegah pengaturan variabel lingkungan SHELL , ENV atau PATH

  • Melarang menentukan nama jalur atau perintah yang mengandung /

  • Membatasi pengalihan output dan/atau input

Akun yang dibatasi

  • Menggunakan shell terbatas

  • Membatasi program sistem dan aplikasi pengguna yang tersedia

  • Membatasi sumber daya sistem

  • Membatasi waktu akses

  • Membatasi lokasi akses

Ketika shell yang dibatasi dipanggil, ia mengeksekusi $HOME/.bashprofil tanpa batasan. Inilah sebabnya mengapa pengguna tidak boleh memiliki izin menulis atau mengeksekusi pada direktori home. Dari baris perintah, atau dari skrip, shell terbatas dapat dipanggil dengan /bin/bash -r . Namun, tanda mungkin tidak ditentukan dalam /etc/passwdfile. 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

Saat menyiapkan akun seperti itu, seseorang harus menghindari penambahan direktori sistem ke variabel lingkungan PATH secara tidak sengaja ; ini akan memberikan pengguna yang dibatasi kemampuan untuk menjalankan program sistem lain, seperti shell yang tidak dibatasi.

akun yag dibatasi disebut sebagai limited accounts.

Akun root

akun root hanya boleh digunakan untuk tujuan administratif jika diperlukan dan jangan digunakan sebagai user biasa, kesalahan yang sangat merugikan bagi integritas, stabilitas dan keamanan sistem. login root melalui jaringan umumnya dilarang karena alasan keamanan yang dapat dikonfigurasi pada /etc/ssh/sshd_config dan PAM (Pluggable Authentication Modules) melalui modul pam_securetty.so dan file /etc/securetty yang terkait. login root hanya diizinkan dari device yang terdaftar di /etc/securetty.

konfigurasi auditd untuk mencatat semua perintah yang dijalankan sebagi root.

SSH

SSH (Secure SHell) digunakan seorang untuk login melalui jaringan ke sistem jarak jauh dengan nama user atau lainnya dan mentransfer file ke dan dari mesin jarak jauh.

ssh remote_computer.com
ssh some_user@remote_computer.com
ssh some_user@remote_computer.com apt-get update
scp file.txt remote_computer.com:/tmp
scp usr1@rem1.com:/tmp/f.txt usr2@rem2.com:/tmp/nf.txt
scp -r some_dir farflung.com:/tmp/some_dir

Untuk menjalankan perintah beberapa sistem secara bersamaan dengan skrip:

for machines in node1 node2 node3
do
      (ssh $machines some_command &)
done

Authentikasi berbasis key ssh

Konfigurasi server SSH untuk autentikasi tanpa kata sandi dengan menggunakan autentikasi berbasis key yang didasarkan pada skema private-public key. Dengan membuat sepasang file key kriptografi yang cocok yaitu private key dan public key. file private key sebagai kredensial auntentikasi seperti kata sandi yang dirahasiakan dan aman sendangkan file public key disalin ke sistem yang ingin dihubungkan user untuk memverifikasi private key. Hal ini memungkingkan mengakses sistem dengan aman tanpa memasukkan kata sandi secara interaktif setiap saat.

Menghasilkan key SSH

Untuk membuat private key dan mencocokkan public key untuk otentikasi gunakan ssh-keygen dan key akan disimpan di file ~/.ssh/id_rsa dan ~/.ssh/id_rsa.pub. Jika menyetel frasa sandi, harus memasukkan frasa sandi tersebut saat menggunakan private key untuk autentikasi. dapat juga menjalankan program pembantu yang disebut ssh-agent yang dapat menyimpan sementara frasa sandi private key di memori pada awal sesi untuk mendapatkan otentikasi tanpa kata sandi yang sebenarnya.

[student@ubuntu ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in .ssh/id_rsa
Your public key has been saved in /.ssh/id_rsa.pub
The key fingerprint is:
SHA256:YlWDCrDr6WO+p5XtivgiYH0txzBpldMYJBKtAwUoMD8 student@ubuntu
The key's randomart image is:
+---[RSA 3072]----+
|=.+=o..o=.o      |
|o+ .o..=.o .     |
|. E ..o.o        |
|   = =..         |
|  o o B S        |
|.o o * =         |
|o o + +          |
|oooo..           |
|o=B=...          |
+----[SHA256]-----+

Mode izin harus 600 pada private key dan 644 pada public key.

Berbagi public key

perintah ssh-copy-id menyalin public key dari pasangan kunci SSH ke sistem tujuan. Jika menghilangkan jalur ke file public key saat menjalankan ssh-copy-id , file tersebut akan menggunakan file /home/user/.ssh/id_rsa.pub secara default.

student@ubuntu:~$ ssh-copy-id -i .ssh/id_rsa.pub user@remotehost
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/student/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@remotehost's password: passwordremotehost

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'user@remotehost'"
and check to make sure that only the key(s) you wanted were added.

Grub

Sistem Linux membentuk kumpulan user yang disebut grup, yang anggotanya memiliki tujuan yang sama. Penggunaan kelompok sangat membantu proyek kolaboratif. User termasuk dalam satu atau lebih grup. Grup didefinisikan dalam /etc/group, yang memiliki peran yang sama untuk grup seperti /etc/passwdhalnya untuk user. Setiap baris file terlihat seperti:

groupname:password:GID:user1,user2,...
  • nama grup adalah nama grub

  • kata sandi adalah pemegang tempat kata sandi. Kata sandi grup dapat diatur, tetapi hanya jika /etc/gshadow ada

  • GID adalah pengidentifikasi grup. Nilai antara 0 dan 99 adalah untuk grup sistem. Nilai antara 100 dan GID_MIN (sebagaimana didefinisikan dalam /etc/login.defsdan biasanya sama dengan UID_MIN ) dianggap istimewa. Nilai di atas GID_MIN adalah untuk UPG (Grup Pribadi User)

  • user1,user2,... adalah daftar user yang menjadi anggota grup yang dipisahkan koma. Usertidak perlu dicantumkan di sini jika grup ini adalah grup utama pengguna

Manajemen grub

  • groupadd : Tambahkan grup baru

  • groupmod : Ubah grup dan tambahkan user baru

  • groupdel : Menghapus grup

  • usermod : Mengelola keanggotaan grup user

Utilitas manipulasi grup ini memodifikasi /etc/groupdan (jika ada) /etc/gshadow, dan hanya dapat dijalankan oleh root.

sudo groupadd -r -g 215 staff
sudo groupmod -g 101 blah
sudo groupdel newgroup
sudo usermod -G student,group1,group2 student

Grub pribadi user

Linux menggunakan User Private Groups (UPG) untuk setiap user agar memiliki grubnya sendiri, UPG tidak dijamin bersifat pribadi, anggota dapat ditambahkan ke grub pribadi seorang di /etc/group. Sebagaimana ditentukan dalam /etc/profile, umask diatur ke 002 untuk semua user yang dibuat dengan UPG. Berdasarkan skema ini, file pengguna dibuat dengan izin 664 ( rw-rw-r-- ) dan direktori dengan 775 ( rwxrwxr-x ).

Keanggotaan grub

Seorang user dilinux memiliki 1 grub utama yang terdaftar di /etc/passwd dan akan terdaftar di /etc/group. Grup utama adalah GID yang digunakan setiap kali user membuat file atau direktori. Keanggotaan di grup sekunder lainnya memberikan izin tambahan kepada pengguna.

Keanggotaan grup dapat diidentifikasi dengan menjalankan salah satu perintah berikut:

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

Last updated