Konteks
Saya suka bekerja di depan umum di laptop saya, tetapi saya juga suka menggunakan sudo tanpa kata sandi. Berdasarkan apa yang saya ketahui sekarang, saya akan menggunakan NOPASSWD
opsi dalam sudoers
file saya , tetapi tentu saja siapa pun dapat menggunakan sudo seperti yang mereka inginkan.
Satu pemikiran penting yang muncul di benak saya adalah bahwa program penguncian ada. Namun, saya lebih suka menggunakan flash drive (dan menggunakannya hanya untuk sudo) karena (1) lebih cepat, (2) lebih mudah daripada memasukkan kata sandi saya, dan (3) Saya tidak peduli dengan orang yang mengakses konten saya atau melakukan kejahatan. hal-hal: laptop akan berada di depan umum di sekitar orang lain, dan satu-satunya kekayaan intelektual di laptop saya adalah proyek Angular yang sangat dasar.
Selain itu, saya dan orang lain mungkin ingin mencegah penyalahgunaan sudo pada komputer yang tidak menjalankan lingkungan X atau Wayland. Pekerjaan saya saat ini membutuhkan browser web modern, tetapi jika saya pernah memiliki kesempatan untuk tidak menggunakan X dan hanya menggunakan multiplexer, saya melakukan itu - laptop saya agak tua dan lambat.
Pertanyaan
Apa yang ingin saya lakukan adalah meletakkan keyfile pada flash drive, dan cukup tancapkan flash drive ketika saya di laptop, dan keluarkan ketika saya menjauh darinya.
Jadi, inilah tiga pertanyaan saya yang berasal dari masalah ini:
- Apakah ini mungkin dengan sudo apa adanya?
- Jika tidak, apakah saya dapat menulis program yang memungkinkan saya melakukan ini?
- Jika demikian, bahasa apa yang paling baik untuk menulis program ini?
(4. [Mungkin pertanyaan asing] Mungkinkah paket ini terpisah atau apakah perlu garpu foro?)
Catatan
Jika itu relevan, pengaturan saya adalah Arch Linux dengan bspwm, tidak ada lingkungan desktop. Sebagian besar pekerjaan saya adalah pengembangan web di urxvt / vim dan memeriksanya dengan Chrome.
rootpw
flag di/etc/sudoers
file dan mengaturpam_usb
untuk login root.Jawaban:
Saya tidak yakin saya mengerti mengapa
NOPASSWD
opsi ini tidak memenuhi kebutuhan Anda dengan sendirinya, tetapi jika Anda ingin memerlukan kehadiran flash drive saya dapat memikirkan sesuatu yang hampir bisa melakukan apa yang Anda cari.Ini lebih merupakan solusi, tetapi Anda bisa membuat pengguna administratif lokal, katakan
superuser
, dan memberikansudo
hak tanpa kata sandi pengguna , yaitu menambahkan baris berikut ke/etc/sudoers
file Anda :Anda kemudian dapat menonaktifkan login kata sandi dan mengkonfigurasi otentikasi SSH hanya kunci untuk pengguna itu, yaitu menjalankan
passwd -l superuser
dan menambahkan bait berikut ke Anda/etc/ssh/sshd_config
:Kemudian buat pasangan kunci SSH untuk pengguna ini. Tambahkan kunci publik ke
/home/superuser/.ssh/authorized_keys
dan letakkan kunci pribadi di flash drive Anda. Kemudian ketika Anda ingin menggunakansuperuser
akun, masukkan flash-drive Anda dan ssh kesuperuser
akun menggunakan kunci pribadi Anda. Dan voila! Anda sekarang memiliki kata sandisudo
untuk pengguna Anda. Tentu saja Anda masih harus keluar dari sesi shell setelah selesai - mencabut flash drive tidak akan cukup. Meskipun saya kira Anda juga dapat mengatur kait prekomand untuk memeriksa kunci pribadi dan keluar secara otomatis jika tidak ada (atau jika tidak valid).sumber