Chcę przypisać 2 hasła do jednego konta. Chcę wiedzieć, 1) czy jest to możliwe, i 2) jakie są tego konsekwencje dla bezpieczeństwa?
Powodem, dla którego chcę to zrobić, jest to, że jestem obecnie zajęty lokalnymi testami i pomyślałem, że będzie to wygodne w niektórych szczególnych sytuacjach. Po kilku badaniach znalazłem coś o nazwie PAM , ale staram się znaleźć informacje o tym, jak działa instalacja / konfiguracja.
Używam Ubuntu 12.04.
sudo
aby użytkownik1 mógł uruchamiać polecenia jako użytkownik2. (sudo
nie służy tylko do uruchamiania poleceń jako root; może uruchamiać polecenia jak każdy użytkownik.)Odpowiedzi:
Tak, choć dość rzadkie, jest to zdecydowanie wykonalne.
Zamiast próbować wdrożyć go samodzielnie, ponieważ domyślna
/etc/password
/etc/shadow
metoda uwierzytelniania nie ma takiej konfiguracji, prostszym sposobem jest przekazanie uwierzytelnienia do zaplecza, które już obsługuje wiele haseł dla użytkownika.Dobrze znanym jest LDAP którego
userPassword
atrybut jest wielowartościowy zgodnie z RFC4519 :Przykładem potrzeby wielu wartości w atrybucie „userPassword” jest środowisko, w którym co miesiąc użytkownik powinien używać innego hasła generowanego przez jakiś zautomatyzowany system. W okresach przejściowych, takich jak ostatni i pierwszy dzień okresów, konieczne może być zezwolenie na stosowanie dwóch haseł dla dwóch kolejnych okresów w systemie.
Pomimo tego RFC, prawdopodobnie będziesz musiał zmienić konfigurację zasad haseł w większości implementacji serwera katalogów, aby to ustawienie zostało faktycznie zaakceptowane.
Po stronie Linuksa nic nie zabrania tego (tutaj podano nazwę konta
testuser
zarówno jako, jakpass1
ipass2
jakouserPassword
wartość atrybutu):Oto niektóre implikacje techniczne i związane z bezpieczeństwem tego rodzaju konfiguracji:
źródło
Właśnie próbowałem utworzyć 2 wpisy dla użytkownika w
/etc/shadow
pliku i to nie zadziałało. To, co kiedykolwiek było pierwsze, było hasłem, które zostało użyte.Przykład
Utworzono użytkownika testowego.
Ustaw hasło na „super123”:
Ręcznie edytuj
/etc/shadow
plik i dokonaj drugiego wpisu:Następnie spróbuj zalogować się na konto przy użyciu 2 haseł.
Pierwszy wpis w
/etc/shadow
tym, co zostanie użyte, wpis na drugiej pozycji nigdy nie działa, jeśli odwrócisz je w ten sposób:Następnie drugie hasło działa, a pierwsze nie.
Użyj sudo
To podejście jest całkowitym hackem, chciałbym po prostu użyć
sudo
, to częściowo dlategosudo
istnieje.Możesz dodać ten wpis do pliku sudoers (
/etc/sudoers
), który pozwoliłby użytkownikowi na uprawnienie Joe do robienia czegokolwiek, gdy:źródło
sudo
mogę to zrobić. +1Jeśli możesz to zrobić, prawdopodobnie nie powinieneś.
Konfiguracja PAM jest dość złożona i istnieje jeden truizm dotyczący mechanizmów uwierzytelniania: istnieje skończony zestaw poprawnych konfiguracji, ale nieskończony zestaw niepewnych konfiguracji. To prawie pewne, że jeśli spróbujesz coś zmienić i nie wiesz dokładnie, co robisz, to wszystko spieprzysz.
Jeśli istnieje wybór między bezpieczeństwem a „wygodą w określonych sytuacjach”, wybierz to pierwsze.
źródło
Możesz ustawić dwa różne nazwy użytkowników, każdy z hasłem, dla tego samego konta. Uruchom,
vipw
aby edytować/etc/passwd
ręcznie, zduplikuj istniejący wiersz dla konta, którym jesteś zainteresowany, i zmień nazwę użytkownika (i jeśli podoba ci się pole Gecos , katalog domowy i powłoka). Uruchomvipw -s
i zduplikuj wiersz dla tego użytkownika w/etc/shadow
. Zaloguj się pod nową nazwą użytkownika i uruchom,passwd
aby zmienić hasło dla nowej nazwy użytkownika. Masz teraz dwie różne nazwy użytkownika, z różnymi hasłami, dla tego samego konta (identyfikator użytkownika określa konto).To chyba nie jest dobry pomysł. W zależności od tego, co próbujesz zrobić, bardziej odpowiednie mogą być inne podejścia:
Utwórz kolejne konto i daj pierwszemu prawu do uruchamiania poleceń jak to konto w sudo:
źródło