Bagaimana saya bisa memberikan kata sandi satu pengguna untuk penggunaan normal saat masuk, dan kata sandi lain untuk administrasi sistem dan akses sudo ? Saya ingin satu pengguna memiliki dua kata sandi.
sudo usermod -d /path/to/new/home
Bagaimana saya bisa memberikan kata sandi satu pengguna untuk penggunaan normal saat masuk, dan kata sandi lain untuk administrasi sistem dan akses sudo ? Saya ingin satu pengguna memiliki dua kata sandi.
sudo usermod -d /path/to/new/home
Jawaban:
Ada cara untuk melakukan ini dengan mengganti pengaturan PAM (Pluggable Authentication Module) untuk layanan sudo. Lakukan ini dengan risiko besar pada mesin Anda - jangan hanya menyalin dan menempel kecuali Anda memahami apa yang dilakukan perintah, dan selalu biarkan terminal root tetap terbuka - tes uji coba! - sebelum keluar, jika Anda perlu kembali dan memperbaiki sesuatu.
Saya sarankan membaca beberapa informasi tentang cara kerja PAM sehingga Anda tahu apa yang harus dilakukan jika rusak. Saya juga menyarankan sebagian besar pengguna mendekati masalah ini dari sudut yang berbeda (membuat akun pengguna terpisah untuk administrasi) karena solusinya mungkin rentan terhadap serangan tabel hash pada kata sandi Anda jika Anda belum menetapkan izin dengan benar.
Jika Anda bertekad untuk melanjutkan, Anda harus memasang modul PAM baru. pam_pwdfile menggunakan file tipe lama / etc / passwd untuk otentikasi, yang sangat bagus untuk menggunakan kata sandi yang berbeda untuk layanan yang berbeda. Ini tidak memberikan pengakuan akun - Anda dapat membuat pasangan nama pengguna / kata sandi untuk pengguna yang tidak ada di sistem. Karena kita akan menggunakannya untuk sudo, itu tidak masalah, karena kita hanya akan membiarkan sudo memeriksa akun yang ada dengan cara biasa.
sudo apt-get install libpam-pwdfile
Saya juga merekomendasikan untuk mengambil editor file htpasswd yang berguna. Benjamin Schweizer telah membuat editor praktis dengan python yang berfungsi dengan baik. Raih dari http://benjamin-schweizer.de/htpasswd_editor.html dan instal ketergantungannya:
sudo apt-get install python-newt
Hasilkan file format htpasswd menggunakan alat - sudo python htpasswd_editor sudo.passwd
. Masukkan nama pengguna dan kata sandi menggunakan nama pengguna yang sama yang akan Anda gunakan untuk sudo - satu untuk setiap pengguna yang akan menggunakannya. Salin ke tempat yang aman (saat menguji ini saya letakkan di /etc/sudo.passwd) dan membuatnya tidak dapat dibaca oleh pengguna biasa: chmod 660 /etc/sudo.passwd
sebagai root.
Pastikan file tersebut dimiliki oleh root dan tidak dapat dibaca oleh pengguna lain. Ini adalah kerentanan karena file tersebut berisi kata sandi hash, dan jika itu dapat dibaca atau ditulis oleh pengguna lain, itu akan merusak keamanan Anda. Karena alasan inilah saya tidak merekomendasikan metode ini pada mesin yang harus dijaga keamanannya.
Akhirnya, edit /etc/pam.d/sudo
file. Tambahkan baris berikut di atas @include ...
baris lain :
auth required pam_pwdfile.so pwdfile /etc/sudo.passwd
Jelas mengganti argumen terakhir dengan path ke file htpasswd yang Anda hasilkan. Komentari baris berikutnya: #@include common-auth
untuk memastikan menggunakan metode otentikasi baru.
Kata peringatan - Anda perlu mengedit /etc/pam.d/sudo
file dari terminal root. Jangan tutup ini tanpa pengujian! Jika ya, Anda mungkin tidak dapat masuk kembali (jika Anda telah merusak sesuatu), dan harus boot dari disk Pemulihan untuk memperbaiki sistem Anda. Tes sebelum keluar dengan membuka terminal baru dan coba gunakan sudo
. Anda harus menemukan bahwa itu tidak lagi berfungsi dengan kata sandi login biasa Anda, tetapi sebaliknya membutuhkan kata sandi baru yang Anda gunakan ketika Anda membuat file passwd. Untuk memperbarui file, gunakan alat yang berguna lagi.
Ada solusi yang lebih sederhana untuk pertanyaan asli dan cara saya menjalankan:
Selalu masuk sebagai pengguna non-admin dan kapan pun pengguna non-admin perlu melakukan apa pun "admin", cukup:
fab-user@fab-ux:/media/Data/Temp
$ su - fab-root
Password:
fab-root@fab-ux:~
$ sudo smartctl --all /dev/sdc
Ya, itu bukan yang Anda inginkan, tetapi itulah yang sebenarnya Anda butuhkan