ŹRÓDŁO Postanowiłem utworzyć domyślne hasło użytkownika dla nowych instalacji Guix.


W systemach Guix ustawienie wstępnego hasła jest bardzo proste. Polega na wypełnieniu jednego dodatkowego pola w konfiguracji użytkowników.

Definicja wstępnego hasła

ŹRÓDŁO Aby zdefiniować wstępne hasło, należy zmienić domyślną wartość #f pola password w zbiorze user-account. Podręcznik Guix sugeruje wykorzystanie wbudowanej funkcji crypt do posolenia treści hasła.

Moja obecna konfiguracja użytkownika wygląda tak:

(gnu:system:accounts:user-account
  (name                 uid1000-name)
  (group                "users")
  (supplementary-groups groups)
  (uid                  1000)
  (comment              "Marek Paśnikowski")
  (home-directory       "/home/marek"))

ŹRÓDŁO Szukając dobrego miejsca na wstawienie pola password zauważyłem, że kolejność pól w moim kodzie nie zgadza się z kolejnością pól w definicji tego zbioru.

Stwierdziłem również, że wstępne hasło będzie jednakowe dla wszystkich instalowanych użytkowników. Powinno być ono zdefiniowane więc w oddzielnym module, dedykowanym dla części wspólnej wszystkich użytkowników.

(define-public initial-password
  (crypt "tymczasowehaslodonatychmiastowejzmiany" "dluganieskomplikowanasoldohasla"))
(gnu:system:accounts:user-account
  (name                 uid1000-name)
  (password             deployment:users:initial-password)
  (uid                  1000)
  (group                "users")
  (supplementary-groups groups)
  (comment              "Marek Paśnikowski")
  (home-directory       "/home/marek"))

DO ZROBIENIA Przy okazji tworzenia modułu centralnego dla wszystkich użytkowników, uświadomiłem sobie zasadność centralizacji listy numerów użytkowników. Taki centralny słownik numerów pozwoliłby na względnie łatwe zmienianie tych numerów w przyszłości. A szczególnie przydatny byłby do identyfikacji jaki następny numer jest obecnie wolny do użycia przez nowego użytkownika.

Wpływ na istniejące hasła

Obawiając się wpływu tej zmiany na już istniejące konta użytkownika wykonałem testową rekonfigurację.


Okazało się, że moje obawy były niepotrzebne. Nadal mogę logować się starym hasłem.

ZROBIONE Pozostało upewnić się, że ta nowa funkcjonalność faktycznie działa przy definicji nowego użytkownika.