بسم الله الرحمن الرحيم

Prakata

Kemarin, 2019/03/17, ada salah satu anggota group Telegram BGLI (Belajar GNU/Linux Indonesia) menanyakan perihal ini.

gambar_1

Gambar 1 - Pertanyaan oleh: ./XiongXong @sandy147

Sebelumnya saya tidak pernah mencobanya. Jadi tidak pernah terpikirkan sebelumnya.

Mungkin saja, untuk kebutuhan membuat username anggota dari kursusan, seperti NolSatu yang saya ikuti pertengahan 2018 kemarin. Membuat 50 user di dalam sebuah sistem. Kalau manual, memang berasa tekor juga.

Karena sepintas saya membayangkan bagaimana caranya untuk dapat menyelesaikan “permasalahan” ini. Lantas, saya pun iseng mencoba menyelesaikannya.

Berhubung saya tidak terlalu mengerti banyak tetang Shell script, saya mengkombinasikan dengan Python yang juga baru mengerti sedikit-sedikit.

Eksekusi

Algoritma

Alur program yang terpikirkan oleh saya adalah seperti ini:

  1. Meminta inputan kepada user, berapa banyak jumlah user baru yang ingin dibuat.
  2. Mengulang-ulang perintah pembuatan user baru sesuai dengan jumlah yang diinputkan oleh user.

gambar_2

Ngoding

Command atau perintah inti untuk membuat user baru beserta direktori home pada sistem operasi GNU/Linux, adalah:

$ sudo useradd -m -g users -G <groups1,groups2,groups3,dst> </b>
</pre> Nah, langsung saja kita kodingin.
FILEcreatemultipleuser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env python3

import os

userDibuat = int(input('Masukkan jumlah user yang ingin dibuat: '))

print(userDibuat)

for user in range(1, userDibuat+1):
    username = input(f'Masukkan USERNAME untuk user ke-{user} : ')
    os.system(
        f'''
        sudo useradd -m -g users -G sudo,storage,power,input,network {username}
        ''')
    print('Username:', username, 'Berhasil ditambahkan !')

print('>> SELESAI MAS BROH !')
Simpan script dengan sembarang nama, jangan lupa berikan ekstensi `.py`. Saya memberikan nama `createmultipleuser.py`. Lalu jalankan dengan menggunakan sudo permission karena kita akan menggunakan perintah `useradd` di dalam script.
$ sudo python createmultipleuser.py
``` Masukkan jumlah user yang ingin dibuat: 3 3 Masukkan USERNAME untuk user ke-1 : aiman Username: aiman Berhasil ditambahkan ! Masukkan USERNAME untuk user ke-2 : budiman Username: budiman Berhasil ditambahkan ! Masukkan USERNAME untuk user ke-3 : seniman Username: seniman Berhasil ditambahkan ! >> SELESAI MAS BROH ! ``` ## Pengecekan Untuk melakukan pengecekan apakah user-user baru sudah berhasil dibuat atau tidak.
$ awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
bandithijo
aiman
budiman
seniman
Cek pula, apakah direktori home dari masing-masing user yang baru, sudah berhasil dibuat.
$ tree -dL 1 /home
/home
├── aiman
├── bandithijo
├── budiman
└── seniman
Mantap, maka proses pembuatan *multiple user* dengan Python script ini telah selesai. Untuk menghapusnya, dapat menggunakan.
$ sudo userdel -rf </b>
</pre> # Pesan Penulis Saya benar-benar menikmati proses dalam mempelajari bahasa pemrograman Python karena dapat sembari saya manfaatkan dan pergunakan dalam aktifitas sehari-hari untuk memecahkan keinginan, ide-ide, maupun permasalahan-permasalahan yang muncul dalam menggunakan sistem operasi GNU/Linux. Kalau temen-temen sedang belajar pemrograman juga, yuk! jangan malu-malu untuk mencoba menyelesaikan masalah-masalah sederhana yang ada di sekitar kita. Saya sendiri masih level Taman Kanak-kanak, hehe. Sepertinya seperti ini saja. Terima kasih. # Referensi 1. [BanditHijo.Com/Arch - Step 6: Create User, Password, and Hostname](https://bandithijo.dev/arch/step-6-create-user-password-and-hostname#61-user-and-password){:target="_blank"}
Diakses tanggal: 2019/03/18


Penulis

bandithijo

My journey kicks off from reading textbooks as a former Medical Student to digging bugs as a Software Engineer – a delightful rollercoaster of career twists. Embracing failure with the grace of a Cat avoiding water, I've seamlessly transitioned from Stethoscope to Keyboard. Armed with ability for learning and adapting faster than a Heart Beat, I'm on a mission to turn Code into a Product.

- Rizqi Nur Assyaufi

d98d8237fef8f1017d0be931b6e291341cbe6ca8