From df1b0f8c3692831828e4312444f4b672878103d5 Mon Sep 17 00:00:00 2001 From: Michel Decima Date: Fri, 8 Oct 2021 10:50:20 +0200 Subject: [PATCH] feat: add GDM customization disable fingerprint and smartcard login add a banner text and logo on login screen --- Notes_gdm.md | 13 +++++++++++++ debian/install | 2 ++ debian/postinst | 4 ++++ debian/postrm | 23 +++++++++++++++++++++++ etc/dconf/db/gdm.d/01-banner | 4 ++++ etc/dconf/db/gdm.d/02-logo | 3 +++ etc/dconf/db/gdm.d/03-smartcard | 2 ++ etc/dconf/profile/gdm | 3 +++ images/orange-48.png | Bin 0 -> 1517 bytes images/yourdev-logo.xcf | Bin 0 -> 11482 bytes usr/share/plymouth/yourdev-logo.png | Bin 0 -> 5136 bytes 11 files changed, 54 insertions(+) create mode 100644 Notes_gdm.md create mode 100644 debian/install create mode 100644 debian/postrm create mode 100644 etc/dconf/db/gdm.d/01-banner create mode 100644 etc/dconf/db/gdm.d/02-logo create mode 100644 etc/dconf/db/gdm.d/03-smartcard create mode 100644 etc/dconf/profile/gdm create mode 100644 images/orange-48.png create mode 100644 images/yourdev-logo.xcf create mode 100644 usr/share/plymouth/yourdev-logo.png diff --git a/Notes_gdm.md b/Notes_gdm.md new file mode 100644 index 0000000..cb70849 --- /dev/null +++ b/Notes_gdm.md @@ -0,0 +1,13 @@ +Pour désactiver le login avec smartcard, je me suis inspiré de la +documentation [GNOME - Disallow login using a fingerprint] propose de +créer un profil `user` pour `dconf`, hélas, ça ne fonctionne pas ! +En revanche, avec un profil `gdm` comme dans [GNOME - Add a greeter logo to +the login screen], c'est bon, on observe le comportement attendu, lorsque +le dongle PKI est présent dans le port USB, c'est bien un login/password +qui est demandé par GDM. +Documentation pas à jour ? + +[GNOME - Add a greeter logo to the login screen]: https://help.gnome.org/admin/system-admin-guide/stable/login-logo.html.en +[GNOME - Display a text banner on the login screen]: https://help.gnome.org/admin/system-admin-guide/stable/login-banner.html.en +[GNOME - Disallow login using a fingerprint]: https://help.gnome.org/admin/system-admin-guide/stable/login-fingerprint.html.en + diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..a75e237 --- /dev/null +++ b/debian/install @@ -0,0 +1,2 @@ +etc +usr diff --git a/debian/postinst b/debian/postinst index bb9f1f2..7b3ab6d 100644 --- a/debian/postinst +++ b/debian/postinst @@ -3,6 +3,10 @@ set -e case "$1" in configure) + # enable GDM customization + if [ -x /usr/bin/dconf ] ; then + dconf update + fi # Configure PAM for credential cache apt-mark manual libpam-ccreds >/dev/null || true if [ -e /usr/share/pam-configs/ccreds-check ] ; then diff --git a/debian/postrm b/debian/postrm new file mode 100644 index 0000000..3929002 --- /dev/null +++ b/debian/postrm @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +case "$1" in + purge) + # forget GDM customization + if [ -x /usr/bin/dconf ] ; then + dconf update + fi + ;; + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + + +#DEBHELPER# + +exit 0 diff --git a/etc/dconf/db/gdm.d/01-banner b/etc/dconf/db/gdm.d/01-banner new file mode 100644 index 0000000..e8b3f94 --- /dev/null +++ b/etc/dconf/db/gdm.d/01-banner @@ -0,0 +1,4 @@ +[org/gnome/login-screen] +banner-message-enable=true +banner-message-text='Welcome to Yourdev!' + diff --git a/etc/dconf/db/gdm.d/02-logo b/etc/dconf/db/gdm.d/02-logo new file mode 100644 index 0000000..b9d9d31 --- /dev/null +++ b/etc/dconf/db/gdm.d/02-logo @@ -0,0 +1,3 @@ +[org/gnome/login-screen] +logo='/usr/share/plymouth/yourdev-logo.png' +fallback-logo='/usr/share/plymouth/ubuntu-logo.png' diff --git a/etc/dconf/db/gdm.d/03-smartcard b/etc/dconf/db/gdm.d/03-smartcard new file mode 100644 index 0000000..8070286 --- /dev/null +++ b/etc/dconf/db/gdm.d/03-smartcard @@ -0,0 +1,2 @@ +[org/gnome/login-screen] +enable-smartcard-authentication=false diff --git a/etc/dconf/profile/gdm b/etc/dconf/profile/gdm new file mode 100644 index 0000000..817afc5 --- /dev/null +++ b/etc/dconf/profile/gdm @@ -0,0 +1,3 @@ +user-db:user +system-db:gdm +file-db:/usr/share/gdm/greeter-dconf-defaults diff --git a/images/orange-48.png b/images/orange-48.png new file mode 100644 index 0000000000000000000000000000000000000000..eea524142f894d47f9c64b86c81f61023f3bc3c1 GIT binary patch literal 1517 zcmZvce>l?#9LK-2wMA(^Sn{hDhMnWSZ2Ga-+5Fl_MytfB(M-a~E&Wn9hWzGm`F%?( ziIZ^;i@G|AHNSS@5_OU!N+S8$&8_FT=eg&e=bq1x_w#vwp4aEkPbzbtySA2r761U+ z47!W2TEQ>1UPIjn**v9MV4+kmDga2cH+&9Sr=D@g=)PV6aLyb61R?-fQCosH0B}kT zPO$-iTnGSq(WT8k4(bIw*wftwSo;#zZwy|ltz>`4rCy+ANRXLgL^i-6cU~OazU}o(&qzCDM!7;khr42!g z!=YOfQ-uf?vr7CD@5`97b`d)fs`3M7hGSb=8d|>3LK0gd0*+)-y3Q6azh3=ydAw^a zZY>3UQ@A$p_&#(_;DAHQ|6f)vU)C5uVz7o60avc*nqXP&(796lW1ee0#c{i1C~NKp zZ*qK+go#L{pO;k5u-Eb?L#FZk#D1{F2aSrB-L!A{>(nyRwzP@p5}|LRJ4A#?xR<>5pzb(-!@mW5b2g z(vt4{Zzkq#NO|}ukVkHG^)&r<<^g!PF{RuPmR9wh*Nw|R{W&qE9|up51y5T^gZz8# z&YE|pEWITWPu!@g6lW*{iz%q zOdIfzG4~-Ad3DI;*G}r?;@)O~VLJ{QVV&D^G+}TW>d@W*r-xcS#xIukeZJUuvHgzT z5)YYsQIL0Qb``yGSD(`;Ny}4eEvWGIAG2f(XB!PCD+#yo%)MO7fT8~T(YESmCoFord%)-}>|-?-v0KmiwWQHE}a{qD!pUQ4 zU$;^{6!Jp)B2K3oka+D{|KStQ<^qGeNd-tD8Lxb>J(7c3P@anR1iN|KjO@aNWJkUp zYT`G&M9QFULVe)Fa?vs@{pjhj;;i@1-dV^8*+s4niif>~ql#wdXR5p@ZJ_wKPuniJ z`}t-YhbSCwmXD<$Iv&+(;rnsONw_Jo%qTw9e)Y^8l#@_BqV&twc3ylF`M{u6WEdJo zp@kUdO+?R_1X_z$8GigD*VoK7nEa#L`;$f|K2zg%cRi;~#@UnwtJ0SmCS~%<;i^b> zpU+ElZCQ{Q8rim__bA>tL1sd9qUwJ|_1=>T!V7ON)u+w}cQD1v@{$CsNxv7{Ayza9 z9v+igS5RRb-R-2-=eh?#75dze?7Xn}T=`H(M{mq1jLgCQK!k)}dJ!n%v+@iUY4*|a zM#Bp9o@Am7i!pl>#w!3I@Il5%POY|3r=L!L9l?Dbw6bT5%=IaaM>@%O9OdydMQuK1 zx$}vn63_Qcg~YeqzV)`-P@V@?qF-(rnmcEdnG#O8^{`9Qkko0RKh;JbszF&6ETl=D zGG?a{24~3aeofm7bUb-m*$I^T=#6O&Du}=iy*p6ComKxsJm1xi&k5p(kdMWLs0FYC z?QE?<|p4p{0E4P;)HR}{tFOUwj?r0BHR80Sj-scssVuE Ly3eJS#!mPfnD3D% literal 0 HcmV?d00001 diff --git a/images/yourdev-logo.xcf b/images/yourdev-logo.xcf new file mode 100644 index 0000000000000000000000000000000000000000..fb5c0be2dead977e41493e340537f9c7e3c1de5c GIT binary patch literal 11482 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 literal 0 HcmV?d00001