Belajar Nano - Security: Lock & Permissions
Series/Belajar Nano/Episode 18
Episode 18 of 28

Belajar Nano - Security: Lock & Permissions

Memahami sisi keamanan nano: peringatan file read-only saat permission tidak bisa ditulis, perilaku nano 9.0+ terhadap file tanpa izin tulis, peran lock file melawan race condition, serta workflow aman mengedit file dengan permission ketat seperti /etc/shadow dan sshd_config

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 17 kalian menandai file besar dengan anchors, kita membahas sisi yang jarang dipikirkan: keamanan. Di lingkungan produksi, file yang kalian edit punya pemilik dan permission yang ketat — dan nano harus berinteraksi dengan itu dengan benar. Episode ini menjelaskan bagaimana nano menangani file read-only, apa fungsi lock file terhadap race condition, dan bagaimana perilaku nano berubah di versi 9.0+.

Mengapa keamanan penting? Karena file config yang kalian ubah sering kali adalah garis pertahanan sistem — sshd_config, sudoers, firewall. Mengeditnya dengan sembrono sama dengan membuka celah keamanan.

Peringatan File Read-Only

Saat kalian membuka file yang tidak punya izin tulis, nano menampilkan peringatan di status bar:

Buka file read-only
sudo chmod 444 ~/nano-lab/nginx.conf
nano ~/nano-lab/nginx.conf
text
[ File 'nginx.conf' is read-only ]

Di area title bar, status read-only ditandai dengan [ read-only ]. Kalian masih bisa mengetik, tetapi ^O tidak akan menimpa file — nano menawarkan menulis ke file lain (Write Out dengan nama baru) atau mengonfirmasi jika kalian punya izin lain.

Perilaku Nano 9.0+ untuk File Tidak Bisa Ditulis

Sejak nano 9.0, ada penyempurnaan: saat nano menyadari file tidak bisa ditulis (misalnya karena permission), ia memberi tahu lebih awal dan lebih jelas saat ^O — alih-alih diam-diam menawarkan menyimpan sebagai file baru, nano menampilkan peringatan bahwa file tidak writable dan menawarkan menyimpan ke file lain.

text
File is not writable; please choose a different name or cancel.

Perilaku ini melindungi kalian dari kejutan: tidak ada lagi "saya kira tersimpan, ternyata tidak" pada file kritis. Uji dengan:

Uji perilaku read-only di nano 9.x
sudo chmod 444 ~/nano-lab/nginx.conf
nano ~/nano-lab/nginx.conf   # ^O → peringatan tidak writable
sudo chmod 644 ~/nano-lab/nginx.conf

Lock File Melawan Race Condition

Race condition terjadi saat dua proses menulis file yang sama bersamaan — hasilnya bisa file korup atau perubahan hilang. Lock file .swp (episode 14) mencegah ini:

100%

Nano membuat lock file sebelum mengizinkan edit, dan menghapusnya setelah file ditutup dengan benar. Dua sesi nano di file yang sama tidak akan menimpa satu sama lain secara membabi buta.

Danger

Lock file adalah garis pertahanan, bukan pagar besi. Proses yang mati paksa bisa meninggalkan .swp (file tampak terkunci) — dan proses yang sengaja mengabaikan lock tetap bisa menulis. Untuk file yang sangat kritis, gunakan mekanisme kontrol versi (git) atau visudo yang punya lock sendiri.

Workflow Aman untuk File Permission Ketat

File dengan permission ketat seperti /etc/shadow (root-only) dan sudoers punya aturan main sendiri:

sudoers — selalu lewat visudo

Jangan pernah nano /etc/sudoers langsung. Gunakan visudo yang memvalidasi syntax sebelum menyimpan:

Edit sudoers dengan benar
sudo visudo

visudo memakai EDITOR (yang sudah kita set ke nano di episode 15) dan menolak menyimpan jika syntax salah — melindungi dari mengunci diri sendiri dari sudo.

sshd_config — backup + validasi

Pola aman edit sshd_config
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config
sudo sshd -t && echo "konfigurasi valid"

Jika sshd -t gagal, pulihkan backup sebelum restart:

Pulihkan jika gagal
sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config

Permission File yang Dibuat Nano

Saat nano membuat file baru, permission-nya mengikuti umask pengguna:

Cek umask dan file baru
umask            # contoh: 0022 → file baru 644
nano file-baru.txt
ls -l file-baru.txt   # -rw-r--r-- (644)

Untuk file yang berisi rahasia (misalnya kredensial), pertimbangkan mengetatkan umask untuk sesi itu:

Buat file dengan permission ketat
(umask 077 && nano kredensial.txt)
ls -l kredensial.txt   # -rw------- (600)

Tip

Kalau kalian menulis file berisi rahasia, pastikan permission akhirnya 600 (-rw-------). Kebiasaan umask 077 untuk sesi nano rahasia menyelamatkan dari file yang terbaca user lain.

Penutup

Pada episode 18 ini, kalian telah memahami sisi keamanan nano: permission, lock, dan workflow aman.

Inti yang harus dibawa pulang:

  • File read-only ditandai di title bar; ^O akan menawarkan nama file lain.
  • Nano 9.0+ memperingatkan dengan jelas saat file tidak writable.
  • Lock .swp mencegah race condition edit bersamaan.
  • sudoers hanya lewat visudo; sshd_config dengan backup + sshd -t.
  • File rahasia dibuat dengan umask 077 (permission 600).

Di episode 19 selanjutnya, kita akan membahas clipboard & OSC 52 — mengintegrasikan nano dengan clipboard sistem lewat protokol OSC 52, memakai || di Execute prompt untuk menempel, dan copy-paste antar terminal maupun aplikasi lain. Nano mulai berbicara dengan dunia GUI!

Belajar Nano - Security: Lock & Permissions | Belajar Nano