Linux User Control - Perintah Command Line (cmd) yang Perlu Anda Ketahui | UNIX LINUX EXPLORE
Edit

Linux User Control - Perintah Command Line (cmd) yang Perlu Anda Ketahui

Linux menonjol dalam lanskap sistem operasi karena ketahanannya, fleksibilitasnya, dan fitur keamanannya yang luar biasa. Inti dari pemanfaatan kemampuan ini adalah manajemen pengguna yang efektif, yang melibatkan penanganan akun pengguna, grup, izin, dan hak akses melalui terminal. Kontrol ini sangat penting untuk keamanan dan efisiensi sistem, terutama dalam lingkungan multi-pengguna atau jaringan.

Dalam panduan ini, kita akan membahas perintah dan praktik terminal utama yang penting untuk manajemen pengguna Linux. Baik Anda administrator sistem baru atau pengguna Linux yang ingin memperdalam pemahaman Anda tentang internal sistem, artikel ini akan membekali Anda dengan keterampilan dasar dan teknik tingkat lanjut yang diperlukan untuk mengelola pengguna secara efektif.




1. Membuat dan Menghapus Pengguna/User

Salah satu tugas utama dalam manajemen user adalah pembuatan akun user. Linux menyediakan beberapa perintah untuk ini, tetapi yang paling umum digunakan adalah useradd dan adduser.

Perintah useradd: Perintah useradd membuat akun pengguna baru menggunakan pengaturan default. Sintaks dasar untuk membuat pengguna baru bernama john adalah:


[root@ns1 ~]# useradd john
Perintah ini menambahkan John ke sistem dengan direktori home dan shell default. Untuk menyesuaikan akun saat pembuatan, Anda dapat menentukan opsi seperti direktori home kustom (-d) dan shell tertentu (-s):


[root@ns1 ~]# useradd -d /home/john -s /bin/bash john
Perintah di atas menetapkan direktori home John ke /home/john dan shell default-nya ke bash.

Perintah adduser: Sementara useradd lebih mudah digunakan, adduser lebih interaktif dan mudah digunakan, terutama untuk pemula. Perintah ini meminta informasi pengguna tambahan seperti kata sandi, nama lengkap, dan detail lainnya:


[root@ns1 ~]# adduser john
Perintah ini memandu Anda dalam menyiapkan akun dan bahkan membuat direktori home dengan izin yang tepat.

Menghapus Pengguna/user: Untuk menghapus pengguna, perintah userdel digunakan. Perintah ini menghapus akun pengguna tetapi tidak menghapus direktori home atau spool email mereka secara default:


[root@ns1 ~]# userdel john
Untuk menghapus pengguna sepenuhnya beserta direktori home dan alamat emailnya, gunakan opsi -r:


[root@ns1 ~]# userdel -r john

2. Skrip Bash untuk Otomatisasi Manajemen Pengguna

Bagi administrator sistem yang sering perlu membuat dan menghapus pengguna, mengotomatiskan tugas-tugas ini dapat menghemat waktu dan mengurangi kesalahan. Berikut ini adalah skrip Bash lanjutan yang memeriksa apakah pengguna ada, membuat pengguna dengan opsi tertentu jika tidak ada, atau menghapus pengguna jika ada.

Script Filename: user_management.sh


#!/bin/bash

# Function to create a user with a home directory and a specific shell
create_user() {
    if id "$1" &>/dev/null; then
        echo "User $1 already exists."
    else
        useradd -d /home/$1 -s /bin/bash $1
        passwd $1
        echo "User $1 has been created with a home directory and bash shell."
    fi
}

# Function to delete a user and their home directory
delete_user() {
    if id "$1" &>/dev/null; then
        userdel -r $1
        echo "User $1 and their home directory have been deleted."
    else
        echo "User $1 does not exist."
    fi
}

# Main logic
case "$2" in
    create)
        create_user $1
        ;;
    delete)
        delete_user $1
        ;;
    *)
        echo "Usage: $0 username create|delete"
        exit 1
        ;;
esac
Script di atas Skrip dapat dijalankan dengan dua argumen, nama pengguna dan tindakan (buat atau hapus). Skrip ini memeriksa apakah pengguna tersebut ada, membuat mereka dengan direktori home dan shell khusus jika tidak ada, atau menghapus mereka jika ada.


3. Kustomisasi dan Modifikasi User

Manajemen akun pengguna yang efektif tidak hanya terbatas pada pembuatan atau penghapusan sederhana. Kemampuan untuk mengkustomisasi dan memodifikasi akun pengguna sesuai dengan kebutuhan spesifik sangat penting untuk menjaga lingkungan Linux yang terorganisasi dan efisien. Hal ini melibatkan pengaturan kata sandi pengguna, mengubah shell login, dan memperbarui informasi pengguna, yang dapat meningkatkan pengalaman pengguna dan keamanan sistem secara signifikan.

a. Memodifikasi Akun Pengguna

Perubahan pada akun pengguna yang ada ditangani melalui perintah usermod. Utilitas canggih ini memungkinkan administrator untuk memodifikasi nama login pengguna, direktori home, dan afiliasi grup di antara pengaturan lainnya.
  • Mengubah Nama Login dan Direktori Home: Jika Anda perlu mengubah nama login pengguna dan sekaligus memindahkan direktori home mereka, Anda dapat menggunakan perintah usermod dengan opsi -l (nama login) dan -d (direktori home) beserta -m untuk memindahkan konten direktori home lama ke yang baru:

[root@ns1 ~]# usermod -l newjohn -d /newhome/john -m john
Perintah ini mengubah nama pengguna dari john menjadi newjohn dan memindahkan direktori home ke /newhome/john, mentransfer semua file dan pengaturan yang ada.
  • Menambahkan Pengguna ke Grup Tambahan: Untuk menambahkan pengguna ke grup tambahan tanpa menghapusnya dari grup mereka saat ini, gunakan opsi -aG:

[root@ns1 ~]# usermod -aG sudo,docker john
Perintah ini menambahkan John ke grup sudo dan docker, meningkatkan izin sistemnya tanpa memengaruhi keanggotaan grup yang sudah ada.


4. Mengelola Kata Sandi dan Shell Pengguna

Pengelolaan kata sandi pengguna dan shell login yang tepat sangat penting untuk mengamankan dan menyesuaikan lingkungan pengguna.
  • Menetapkan dan Mengubah Kata Sandi: Perintah passwd digunakan untuk menetapkan atau mengubah kata sandi pengguna, tugas penting dalam menjaga keamanan:

[root@ns1 ~]# passwd john
Perintah ini akan meminta Anda memasukkan kata sandi baru untuk John, dan disarankan untuk mendorong pengguna memilih kata sandi yang kuat dan rumit.
  • Mengubah Shell Pengguna: Pilihan shell dapat memengaruhi cara pengguna berinteraksi dengan sistem Linux. Untuk mengubah shell default pengguna, gunakan perintah chsh (ubah shell):

[root@ns1 ~]# chsh -s /usr/bin/zsh john
Ini menetapkan Zsh sebagai shell default untuk John, yang mungkin lebih disukai karena fitur-fiturnya yang mudah digunakan dan opsi kustomisasi tingkat lanjut.

5. Skrip Bash Tingkat Lanjut: Otomatisasi Kustomisasi Pengguna

Untuk memperlancar proses modifikasi akun pengguna dan pengaturan preferensi lingkungan, skrip Bash yang lebih canggih dapat digunakan. Skrip ini memungkinkan modifikasi dan pengaturan cepat, termasuk mengubah shell dan mengelola kata sandi.

Script nama_file: modify_user.sh


#!/bin/bash

# Function to update user's shell
update_shell() {
    if [ $# -ne 2 ]; then
        echo "Usage: update_shell username shell_path"
        return 1
    fi
    chsh -s $2 $1
    echo "Shell updated for $1 to $2"
}

# Function to change user's password
change_password() {
    if [ $# -ne 1 ]; then
        echo "Usage: change_password username"
        return 1
    fi
    passwd $1
}

# Function to move user's home directory
move_home() {
    if [ $# -ne 2 ]; then
        echo "Usage: move_home username new_home_path"
        return 1
    fi
    usermod -d $2 -m $1
    echo "Home directory moved for $1 to $2"
}

# Main logic for handling different actions
case "$1" in
    shell)
        update_shell $2 $3
        ;;
    password)
        change_password $2
        ;;
    movehome)
        move_home $2 $3
        ;;
    *)
        echo "Usage: $0 {shell|password|movehome} args"
        exit 1
        ;;
esac paSin
Skrip ini meningkatkan efisiensi administratif dengan mengotomatiskan tugas-tugas umum seperti memperbarui shell, mengubah kata sandi, dan memindahkan direktori home. Skrip ini menggunakan fungsi untuk merangkum logika untuk setiap tugas, sehingga dapat digunakan kembali dan mudah dirawat.

6. Mengelola Grup Pengguna

Di Linux, grup merupakan aspek mendasar dalam mengelola izin pengguna dan kontrol akses. Grup memungkinkan administrator sistem untuk menetapkan izin kepada beberapa pengguna sekaligus, yang menyederhanakan pengelolaan izin dan dapat meningkatkan keamanan dengan membatasi akses berdasarkan keanggotaan grup.


7. Memahami Grup Pengguna

Setiap pengguna di Linux dapat menjadi anggota satu grup primer dan beberapa grup sekunder. Grup primer biasanya digunakan untuk berkas pribadi, sedangkan grup sekunder memberikan izin untuk tugas kolaboratif atau mengakses sumber daya bersama.
  • Membuat Grup: Untuk membuat grup baru, gunakan perintah groupadd. Misalnya, untuk membuat grup bernama developers:

[root@ns1 ~]# groupadd developers
Perintah ini menyiapkan grup baru tanpa anggota pada awalnya.
  • Menghapus Grup: Jika grup tidak lagi diperlukan, grup tersebut dapat dihapus dengan perintah groupdel:

[root@ns1 ~]# groupdel developers
Pastikan tidak ada file yang dimiliki oleh grup sebelum menghapusnya, karena hal ini dapat menyebabkan masalah izin.

8. Memodifikasi Keanggotaan Grup

Mengelola keanggotaan grup sangat penting untuk mengendalikan pengguna mana yang memiliki akses ke sumber daya sistem tertentu.

Menambahkan Pengguna ke Grup: Untuk menambahkan pengguna ke satu atau beberapa grup, Anda dapat menggunakan perintah usermod dengan opsi -aG, yang merupakan singkatan dari ‘append to group’:


[root@ns1 ~]# usermod -aG developers john
Perintah ini menambahkan pengguna john ke grup pengembang tanpa memengaruhi keanggotaannya di grup lain.
  • Menghapus Pengguna dari Grup: Menghapus pengguna dari grup tidak didukung secara langsung oleh satu perintah dalam distribusi standar, tetapi Anda dapat menggunakan gpasswd atau mengedit file /etc/group secara manual:

[root@ns1 ~]# gpasswd -d john developers
Ini akan menghapus John dari grup pengembang.


9. Skrip Bash Lanjutan: Otomatisasi Manajemen Grup

Bagi administrator sistem yang mengelola banyak pengguna dan grup, otomatisasi adalah kuncinya. Berikut ini adalah skrip Bash lanjutan yang memfasilitasi manajemen grup dengan membuat, menghapus, dan memodifikasi keanggotaan grup.

Script file_name: group_management.sh


#!/bin/bash

# Function to create a group
create_group() {
    if getent group $1 > /dev/null 2>&1; then
        echo "Group $1 already exists."
    else
        groupadd $1
        echo "Group $1 created."
    fi
}

# Function to delete a group
delete_group() {
    if getent group $1 > /dev/null 2>&1; then
        groupdel $1
        echo "Group $1 deleted."
    else
        echo "Group $1 does not exist."
    fi
}

# Function to modify group membership
modify_membership() {
    case $2 in
        add)
            usermod -aG $1 $3
            echo "User $3 added to group $1."
            ;;
        remove)
            gpasswd -d $3 $1
            echo "User $3 removed from group $1."
            ;;
        *)
            echo "Usage: modify_membership groupname {add|remove} username"
            return 1
            ;;
    esac
}

# Main logic
case "$1" in
    create)
        create_group $2
        ;;
    delete)
        delete_group $2
        ;;
    modify)
        modify_membership $2 $3 $4
        ;;
    *)
        echo "Usage: $0 {create|delete|modify} args"
        exit 1
        ;;
esac
Skrip ini menyediakan solusi komprehensif untuk mengelola grup. Skrip ini mencakup fungsi untuk membuat dan menghapus grup serta mengubah keanggotaan pengguna dalam grup tersebut. Skrip ini memeriksa keberadaan grup sebelum mencoba membuat atau menghapusnya, mencegah kesalahan, dan memastikan manajemen yang efisien.

10. Izin dan Kepemilikan Lanjutan

Di Linux, mengelola izin dan kepemilikan file sangat penting untuk mengamankan akses ke file dan direktori sistem. Pemahaman dan penanganan izin ini yang tepat memungkinkan administrator untuk melindungi data sensitif dan memastikan bahwa pengguna memiliki akses yang sesuai ke sumber daya.

Memahami Izin Linux
Izin di Linux dikelola pada tiga tingkat: untuk pemilik, grup, dan lainnya. Setiap file dan direktori memiliki izin terkait yang menentukan cara mengaksesnya. Izin ini mencakup baca (r), tulis (w), dan jalankan (x).
  • Mengubah Izin File (chmod): Perintah chmod digunakan untuk mengubah izin akses file dan direktori. Misalnya, untuk memberikan izin penuh kepada pemilik, izin baca dan jalankan kepada grup, dan tidak memberikan izin kepada orang lain pada file, Anda akan menggunakan:

[root@ns1 ~]# chmod 750 filename
  • Mengubah Kepemilikan (chown): Kepemilikan file dapat diubah menggunakan perintah chown. Untuk mengubah pemilik file menjadi john dan grup menjadi developer, Anda dapat menggunakan:

[root@ns1 ~]# chown john:developers filename
Perintah ini mengubah kepemilikan pengguna dan grup atas nama file menjadi John dan pengembang.

11. Izin Khusus: setuid, setgid, dan Sticky Bit

Linux juga mendukung jenis izin khusus yang memengaruhi file dan direktori yang dapat dieksekusi.
  • setuid (Tetapkan ID Pengguna): Saat izin setuid ditetapkan pada file yang dapat dieksekusi, file tersebut dieksekusi dengan hak istimewa pemilik file, bukan pengguna yang menjalankannya. Ini berguna untuk memungkinkan pengguna melakukan tugas seperti mengubah kata sandi mereka, yang biasanya memerlukan hak istimewa administratif.

[root@ns1 ~]# chmod u+s /usr/bin/passwd
Ini menerapkan izin setuid ke program passwd, yang memungkinkannya berjalan dengan hak akses root.
  • setgid (Set Group ID): Mirip dengan setuid, setgid memengaruhi cara file dan direktori diakses berdasarkan kepemilikan grup. Saat setgid diterapkan ke direktori, file baru yang dibuat di dalam direktori mewarisi grup direktori, dan direktori baru mewarisi bit setgid.

[root@ns1 ~]# chmod g+s /path/to/directory
Perintah ini memastikan bahwa semua file yang dibuat dalam direktori yang ditentukan mewarisi kepemilikan grupnya.
  • Sticky Bit: Sticky bit digunakan terutama pada direktori. Bit ini membatasi penghapusan file sehingga hanya pemilik file, pemilik direktori, atau root yang dapat menghapus file dalam direktori.

[root@ns1 ~]# chmod +t /tmp
Contoh ini menetapkan bit sticky pada direktori /tmp, mencegah pengguna menghapus file satu sama lain.

12. Skrip Bash Lanjutan: Otomatisasi Manajemen Izin

Bagi administrator sistem, mengelola izin untuk beberapa file dan direktori secara efisien sangatlah penting. Berikut skrip tingkat lanjut yang mengotomatiskan pengelolaan izin dan kepemilikan.

Script file_name: permissions_management.sh


#!/bin/bash

# Function to change permissions
change_permissions() {
    chmod $1 $2
    echo "Permissions for $2 set to $1."
}

# Function to change ownership
change_ownership() {
    chown $1:$2 $3
    echo "Ownership for $3 changed to $1:$2."
}

# Function to apply special permissions
apply_special_permissions() {
    case $1 in
        setuid)
            chmod u+s $2
            echo "Setuid has been set for $2."
            ;;
        setgid)
            chmod g+s $2
            echo "Setgid has been set for $2."
            ;;
        sticky)
            chmod +t $2
            echo "Sticky bit has been set for $2."
            ;;
        *)
            echo "Invalid option: $1. Use setuid, setgid, or sticky."
            return 1
            ;;
    esac
}

# Main logic for script usage
case "$1" in
    perm)
        change_permissions $2 $3
        ;;
    own)
        change_ownership $2 $3 $4
        ;;
    spec)
        apply_special_permissions $2 $3
        ;;
    *)
        echo "Usage: $0 {perm|own|spec} options"
        exit 1
        ;;
esac
Skrip ini memfasilitasi pengelolaan izin standar dan khusus beserta perubahan kepemilikan. Skrip ini mencakup fungsi untuk mengubah izin, mengubah kepemilikan, dan menerapkan izin khusus seperti setuid, setgid, dan sticky bit.

13. Memantau Aktivitas Pengguna dan Akses Sistem

Memantau aktivitas pengguna dan akses sistem merupakan aspek penting dari administrasi sistem di Linux. Proses ini melibatkan pelacakan login pengguna, penggunaan sistem, dan pengelolaan sumber daya untuk memastikan kinerja dan keamanan yang optimal. Pemantauan yang efektif dapat membantu dalam mendeteksi akses yang tidak sah dan memastikan bahwa sumber daya sistem digunakan dengan tepat.

a. Melacak Login Pengguna

Salah satu metode utama pemantauan melibatkan pemeriksaan siapa yang saat ini login ke sistem dan meninjau aktivitas login sebelumnya.
  • Perintah who: Perintah who menampilkan daftar semua pengguna yang saat ini masuk ke sistem. Perintah ini menyediakan detail seperti nama pengguna, baris terminal, waktu masuk, dan banyak lagi.

[root@ns1 ~]# who
Perintah sederhana ini sering kali menjadi langkah pertama dalam memantau aktivitas pengguna saat ini di server.
  • Perintah terakhir: Untuk meninjau login sebelumnya, perintah terakhir sangat berguna. Perintah ini mengambil informasi dari berkas /var/log/wtmp, yang mencatat semua login dan logout.

[root@ns1 ~]# last
Perintah ini mencantumkan sesi terkini, yang menunjukkan nama pengguna, baris terminal, waktu masuk, waktu keluar, dan durasi setiap sesi.

b. Mengelola Proses Pengguna

Selain melacak login, mengelola cara pengguna menggunakan sumber daya sistem adalah area penting lain dari pemantauan sistem.
  • Perintah top dan htop: Baik perintah top maupun htop memberikan tampilan waktu nyata dari proses sistem yang sedang berjalan. htop adalah versi yang disempurnakan yang menawarkan antarmuka yang lebih ramah pengguna dan menarik secara visual.

[root@ns1 ~]# top
[root@ns1 ~]# htop
Perintah-perintah ini menampilkan informasi tentang penggunaan prosesor, penggunaan memori, dan proses yang sedang berjalan, dan perintah-perintah ini dapat sangat berguna untuk memantau kesehatan sistem dan aktivitas pengguna.
  • Perintah ps: Perintah ps menampilkan cuplikan proses saat ini. Perintah ini dapat digunakan untuk melihat proses apa saja yang sedang dijalankan oleh pengguna tertentu:

[root@ns1 ~]# ps -u username
Perintah ini mencantumkan semua proses yang sedang dijalankan berdasarkan nama pengguna, yang berguna untuk memantau aktivitas pengguna tertentu.

c. Membatasi Sumber Daya Pengguna

Untuk memastikan bahwa tidak ada satu pengguna pun yang menghabiskan terlalu banyak sumber daya sistem, Linux menyediakan mekanisme untuk menetapkan batasan penggunaan pengguna.
  • Perintah ulimit: Perintah ulimit digunakan untuk menetapkan atau melaporkan batasan sumber daya proses pengguna. Batasan ini dapat mengontrol aspek seperti waktu CPU, ukuran file, dan jumlah proses yang dapat dijalankan.

[root@ns1 ~]# ulimit -u 100 -n 1024
Ini menetapkan jumlah maksimum proses per pengguna menjadi 100 dan jumlah maksimum file yang dibuka menjadi 1024.


14. Skrip Bash Lanjutan: Otomatisasi Pemantauan Sistem

Untuk memudahkan pengelolaan dan pemantauan aktivitas pengguna, skrip Bash tingkat lanjut dapat dikembangkan. Skrip ini dapat mengotomatiskan pengecekan login pengguna dan pengelolaan sumber daya.

Script file_name: system_monitoring.sh


#!/bin/bash

# Function to display currently logged-in users
show_logged_in_users() {
    who
}

# Function to display last logged-in users
show_last_logins() {
    last -n 10
}

# Function to check resource usage by user
check_user_resources() {
    top -u $1
}

# Main logic for handling monitoring tasks
case "$1" in
    current)
        show_logged_in_users
        ;;
    history)
        show_last_logins
        ;;
    resources)
        check_user_resources $2
        ;;
    *)
        echo "Usage: $0 {current|history|resources} [username]"
        exit 1
        ;;
esac pa
Skrip ini menyediakan antarmuka yang mudah dipahami untuk tugas pemantauan utama seperti melihat pengguna yang sedang login, memeriksa riwayat login terkini, dan memantau penggunaan sumber daya untuk pengguna tertentu.

Dengan alat dan skrip yang dijelaskan, administrator Linux dapat secara efektif mengawasi aktivitas pengguna dan akses sistem, meningkatkan kinerja dan keamanan sistem.

15. Praktik Keamanan untuk Manajemen Pengguna

Dalam sistem Linux, mengamankan akun pengguna sangat penting untuk menjaga integritas dan data sistem. Bagian ini membahas langkah-langkah keamanan penting untuk manajemen pengguna, termasuk kebijakan kata sandi, pembatasan akun, dan penggunaan alat untuk memantau akses yang tidak sah.

a. Meningkatkan Keamanan Kata Sandi

Manajemen kata sandi yang tepat sangat penting untuk mencegah akses sistem yang tidak sah. Linux menyediakan beberapa alat dan konfigurasi untuk memperkuat keamanan kata sandi.
  • Menetapkan Kebijakan Kata Sandi yang Kuat: Dengan menggunakan perintah passwd, administrator sistem dapat menerapkan kebijakan kata sandi yang kuat. Alat chage dapat digunakan untuk mengelola kebijakan penuaan kata sandi agar pengguna diharuskan mengubah kata sandi secara berkala.

[root@ns1 ~]# passwd john
[root@ns1 ~]# chage -M 90 -m 7 -W 14 john
Ini akan mengatur kata sandi John dan mengonfigurasinya agar kedaluwarsa setiap 90 hari, dengan usia kata sandi minimal 7 hari dan peringatan yang dikeluarkan 14 hari sebelum kedaluwarsa.
  • Mengunci dan Membuka Kunci Akun Pengguna: Jika akun pengguna harus dinonaktifkan sementara tanpa menghapusnya, perintah usermod dapat digunakan untuk mengunci dan membuka kunci akun.

[root@ns1 ~]# usermod -L john  # Lock John's account
[root@ns1 ~]# usermod -U john  # Unlock John's account
Mengunci akun akan menonaktifkan kata sandinya, sehingga pengguna tidak dapat masuk.

b. Mengamankan File dan Direktori Pengguna

Menetapkan izin dan kepemilikan yang tepat sangat penting untuk melindungi data sensitif.
  • Izin dan Kepemilikan File: Seperti yang dibahas sebelumnya, menggunakan perintah chmod dan chown membantu memastikan bahwa hanya pengguna yang berwenang yang memiliki akses ke file dan direktori penting.

[root@ns1 ~]# chmod 700 /home/john/private
[root@ns1 ~]# chown john:john /home/john/private
Hal ini menjadikan direktori pribadi John hanya dapat diakses olehnya, sehingga memberikan tingkat keamanan yang lebih tinggi untuk informasi sensitif.

c. Pemantauan Akses Tidak Sah

Pemantauan berkelanjutan terhadap akses tidak sah sangat penting untuk menjaga keamanan sistem.

Menggunakan Log Sistem: Log menyediakan informasi penting tentang aktivitas sistem dan potensi pelanggaran keamanan. Memeriksa berkas log secara berkala, seperti /var/log/auth.log, dapat membantu mendeteksi upaya akses tidak sah.


[root@ns1 ~]# grep 'Failed' /var/log/auth.log
Perintah ini memfilter log autentikasi untuk upaya login yang gagal, yang dapat mengindikasikan adanya upaya pelanggaran keamanan.


16. Skrip Bash Lanjutan: Otomatisasi Pemantauan Keamanan

Mengotomatisasi pemantauan dan konfigurasi keamanan dapat meningkatkan efisiensi dan responsivitas praktik keamanan secara signifikan. Berikut ini adalah skrip Bash lanjutan yang mengotomatiskan pemeriksaan upaya login yang gagal dan mengelola kebijakan kata sandi.

Script file_name: security_enforcement.sh


#!/bin/bash

# Function to check for failed login attempts
check_failed_logins() {
    grep 'Failed' /var/log/auth.log
}

# Function to set password policies for a user
set_password_policy() {
    passwd $1
    chage -M 90 -m 7 -W 14 $1
    echo "Password policies set for $1."
}

# Function to lock or unlock a user account
modify_account_status() {
    if [ "$2" == "lock" ]; then
        usermod -L $1
        echo "Account $1 locked."
    elif [ "$2" == "unlock" ]; then
        usermod -U $1
        echo "Account $1 unlocked."
    else
        echo "Invalid option: $2. Use lock or unlock."
        return 1
    fi
}

# Main logic for handling security tasks
case "$1" in
    monitor)
        check_failed_logins
        ;;
    policy)
        set_password_policy $2
        ;;
    account)
        modify_account_status $2 $3
        ;;
    *)
        echo "Usage: $0 {monitor|policy|account} [username] [lock|unlock]"
        exit 1
        ;;
esac
Skrip ini menyediakan alat untuk fungsi keamanan penting, termasuk memantau upaya login yang gagal, menetapkan kebijakan kata sandi, dan mengubah status akun untuk mengunci atau membuka kunci akun pengguna.