Gunakan satu kata sandi untuk administrasi dan lainnya untuk login sistem


10

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.


1
Mengapa tidak membuat 2 akun saja, satu untuk penggunaan normal dan yang lain diizinkan menggunakan sudo.
Luis Alvarado

tidak, saya hanya membutuhkannya dalam satu akun
Varun Sridharan

Mengapa Anda perlu ini menjadi satu akun? Anda dapat membuat akun terpisah dengan akses sudo tetapi tanpa folder rumah yang terpisah kemudian menambahkan pengguna ini ke grup yang sama dengan pengguna normal dan mengaturnya untuk menggunakan folder rumah yang sama dengansudo usermod -d /path/to/new/home
Warren Hill

@Sarun Saya memperbarui jawaban saya dengan langkah-langkah yang bekerja untuk saya sejak Anda terakhir berkomentar. Bisakah Anda memeriksanya dan memberi tahu saya jika itu berhasil untuk Anda?
Aaron D

Jawaban:


16

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.passwdsebagai 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/sudofile. 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-authuntuk memastikan menggunakan metode otentikasi baru.

Kata peringatan - Anda perlu mengedit /etc/pam.d/sudofile 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.


saya perlu menjalankan di Ubuntu apakah ada cara lain
Varun Sridharan

Saya memperbarui jawabannya - Saya telah menguji metode ini dan melakukan apa yang Anda inginkan, jika saya telah memahami pertanyaan Anda dengan benar. Silakan dicoba.
Aaron D

1
+50 hadiah. @ Aaron jawaban Anda menjawab pertanyaan saya . Terima kasih!!!
Robbie Wxyz

Saya senang Anda menemukannya berguna!
Aaron D

1

Ada solusi yang lebih sederhana untuk pertanyaan asli dan cara saya menjalankan:

  • buat satu pengguna non-admin
  • buat pengguna admin

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.