TDCTF Academy Logo TDCTF ACADEMY

Setup SUDO_PASSWORD

Masalah

Saat menjalankan skrip otomatis yang butuh sudo, kita sering terkendala password prompt. Tools seperti AI agent, cron job, atau skrip background tidak punya akses ke terminal interaktif - sehingga perintah sudo gagal di tengah jalan.

Contoh skenario:

  • AI agent perlu sudo systemctl restart nginx
  • Cron job perlu sudo cp file /etc/
  • Skrip backup perlu sudo rsync ke direktori sistem

Solusi: SUDO_PASSWORD via .env

Simpan password sudo di file environment (~/.env) - aman, rapi, dan tidak hardcode di skrip.

Langkah 1: Buat file .env

nano ~/.env

Isi dengan satu baris:

SUDO_PASSWORD="password_sudo_kamu_disini"
peringatan

Ganti password_sudo_kamu_disini dengan password sudo asli kamu.

Langkah 2: Proteksi file

chmod 600 ~/.env

Ini memastikan hanya user kamu yang bisa membaca file tersebut. User lain - termasuk www-data atau service lain - tidak bisa mengaksesnya.

Langkah 3: Cara pakai di skrip

Bash script:

#!/bin/bash
set -a
source ~/.env 2>/dev/null
set +a

echo "$SUDO_PASSWORD" | sudo -S apt update

Python:

import os
from dotenv import load_dotenv

load_dotenv(os.path.expanduser("~/.env"))
password = os.getenv("SUDO_PASSWORD")

# Gunakan subprocess dengan input
import subprocess
proc = subprocess.run(
["sudo", "-S", "systemctl", "restart", "nginx"],
input=password,
capture_output=True,
text=True
)

Verifikasi

Coba jalankan skrip sederhana:

#!/bin/bash
set -a
source ~/.env
set +a

echo "🔑 Testing SUDO_PASSWORD..."
echo "$SUDO_PASSWORD" | sudo -S whoami
# Output harus: root

️ Catatan Penting

  1. Jangan commit .env ke git! - pastikan sudah masuk .gitignore
  2. Ganti password - jika password sudo berubah, update file .env
  3. Multi-user - setiap user punya file .env sendiri di ~/.env
  4. Security first - file ini adalah satu-satunya tempat password disimpan; jangan pernah copy ke tempat lain

Alternatif

Metode Kelebihan Kekurangan
.env file Sederhana, portable Password plaintext di disk
sudo NOPASSWD di sudoers Paling aman otomatis Butuh akses sudo untuk setup
ansible-vault Encrypted Overkill untuk 1 password
pass (password-store) GPG encrypted Setup lebih kompleks

Kesimpulan

Metode .env + sudo -S adalah keseimbangan terbaik antara keamanan dan kemudahan untuk otomatisasi. Cocok untuk development server, lab, atau personal machine yang tidak shared dengan orang lain.


Dibuat oleh: TDCTF Security Academy - Cybersecurity Indonesia

PADA HALAMAN INI