Saya ingin menetapkan 2 kata sandi untuk satu akun. Yang ingin saya ketahui adalah 1) apakah ini mungkin, dan 2) apa implikasi keamanan dari ini?
Alasan saya ingin melakukan ini adalah karena saya sedang sibuk dengan beberapa pengujian lokal, dan saya pikir akan lebih mudah dalam beberapa situasi tertentu. Setelah beberapa penelitian saya menemukan sesuatu yang disebut PAM , tetapi saya berjuang untuk menemukan informasi tentang cara kerja instalasi / konfigurasi.
Saya menjalankan Ubuntu 12.04.
sudo
untuk memungkinkan user1 untuk menjalankan perintah sebagai user2. (sudo
bukan hanya untuk menjalankan perintah sebagai root; ia dapat menjalankan perintah seperti pengguna mana pun.)Jawaban:
Ya, meskipun sangat jarang, ini pasti bisa dilakukan.
Alih-alih mencoba mengimplementasikannya sendiri karena
/etc/password
/etc/shadow
metode otentikasi berbasis default tidak memiliki ketentuan untuk konfigurasi seperti itu, cara yang lebih sederhana adalah dengan mendelegasikan otentikasi ke back-end yang sudah mendukung banyak kata sandi untuk pengguna.Yang terkenal adalah LDAP yang
userPassword
atributnya multinilai menurut RFC4519 :Contoh kebutuhan untuk beberapa nilai dalam atribut 'userPassword' adalah lingkungan di mana setiap bulan pengguna diharapkan menggunakan kata sandi berbeda yang dihasilkan oleh beberapa sistem otomatis. Selama periode transisi, seperti hari terakhir dan pertama periode, mungkin perlu untuk mengizinkan dua kata sandi untuk dua periode berturut-turut untuk valid dalam sistem.
Meskipun dengan RFC ini, Anda mungkin perlu mengubah konfigurasi kebijakan kata sandi pada sebagian besar implementasi server direktori agar pengaturan ini benar-benar diterima.
Di sisi Linux, tidak ada yang melarang untuk melakukannya (di sini akun bernama
testuser
diberi keduanyapass1
danpass2
sebagaiuserPassword
nilai atribut):Berikut adalah beberapa implikasi terkait teknis dan keamanan dari jenis konfigurasi itu:
sumber
Saya hanya mencoba membuat 2 entri untuk pengguna dalam
/etc/shadow
file dan itu tidak berhasil. Entri yang pertama kali adalah entri kata sandi yang digunakan.Contoh
Dibuat pengguna uji.
Setel kata sandi ke "super123":
Edit
/etc/shadow
file secara manual dan buat entri kedua:Kemudian cobalah masuk dengan akun menggunakan 2 kata sandi.
Entri pertama
/etc/shadow
adalah yang digunakan, entri di posisi kedua tidak pernah berfungsi, jika Anda membalik seperti ini:Kemudian kata sandi kedua berfungsi dan yang pertama tidak.
Gunakan sudo
Pendekatan ini adalah peretasan total, saya hanya akan menggunakan
sudo
, itu sebagian mengapasudo
ada.Anda dapat menambahkan entri ini ke file sudoers Anda (
/etc/sudoers
) yang akan memungkinkan pengguna untuk melakukan apa pun seperti Anda:sumber
sudo
bisa melakukan itu .. +1Jika Anda bisa melakukan ini, Anda mungkin seharusnya tidak melakukannya.
Konfigurasi PAM agak rumit dan ada satu kebenaran tentang mekanisme otentikasi: ada satu set terbatas konfigurasi yang benar tetapi satu set tak terbatas konfigurasi tidak aman. Ini membuatnya hampir pasti bahwa jika Anda mencoba mengubah sesuatu dan tidak tahu persis apa yang Anda lakukan, Anda akan mengacaukan semuanya.
Jika pilihannya antara keamanan dan "nyaman dalam beberapa situasi tertentu", pilih yang pertama.
sumber
Anda dapat menetapkan dua nama pengguna yang berbeda, masing-masing dengan kata sandi, untuk akun yang sama. Jalankan
vipw
untuk mengedit/etc/passwd
secara manual, menduplikasi baris yang ada untuk akun yang Anda minati dan mengubah nama pengguna (dan jika Anda suka bidang Gecos , direktori home dan shell). Jalankanvipw -s
dan duplikat baris untuk pengguna itu di/etc/shadow
. Masuk di bawah nama pengguna baru dan jalankanpasswd
untuk mengubah kata sandi untuk nama pengguna baru. Anda sekarang memiliki dua nama pengguna yang berbeda, dengan kata sandi yang berbeda, untuk akun yang sama (ID pengguna adalah yang menentukan akun).Ini mungkin bukan ide yang bagus. Bergantung pada apa yang Anda coba lakukan, pendekatan lain mungkin lebih tepat:
Buat akun lain dan berikan akun pertama hak untuk menjalankan perintah seperti akun dengan sudo:
sumber