
{"id":51221,"date":"2026-05-18T13:22:46","date_gmt":"2026-05-18T13:22:46","guid":{"rendered":"https:\/\/ubuntuhandbook.org\/?p=51221"},"modified":"2026-05-18T13:22:46","modified_gmt":"2026-05-18T13:22:46","slug":"gaze-facial-login-authentication-linux","status":"publish","type":"post","link":"https:\/\/ubuntuhandbook.org\/index.php\/2026\/05\/gaze-facial-login-authentication-linux\/","title":{"rendered":"Gaze &#8211; Simple New Facial Login &#038; Authentication Method for Linux"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-thumbnail wp-image-51222\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-logoicon-250x250.webp\" alt=\"\" width=\"250\" height=\"250\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-logoicon-250x250.webp 250w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-logoicon-300x300.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-logoicon-700x700.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-logoicon-768x768.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-logoicon.webp 1200w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/p>\n<p>Want to use your face to sign in or run process that needs authentication in your computer? There&#8217;s a new project to do the job in Linux!<\/p>\n<p>It&#8217;s <a href=\"https:\/\/github.com\/GunduLabs\/gaze\" target=\"_blank\" rel=\"noopener\">Gaze<\/a>, a free open-source Rust written app that provides simple GTK4 + libadwaita user interface for managing facial authentication, while, a CLI tool is also available for command line users.<\/p>\n<p><!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51223\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-enroll-700x445.webp\" alt=\"\" width=\"610\" height=\"388\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-enroll-700x445.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-enroll-300x191.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-enroll-768x488.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-enroll.webp 1072w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>I&#8217;ve written about how to set up the <a href=\"https:\/\/ubuntuhandbook.org\/index.php\/2024\/10\/howdy-ubuntu-2404\/\" target=\"_blank\" rel=\"noopener\">Windows Hello style facial authentication<\/a> in Ubuntu through howdy. It works, but not so friendly for beginners, and <a href=\"https:\/\/github.com\/boltgolt\/howdy\" target=\"_blank\" rel=\"noopener\">howdy<\/a> now is moving quite slowly.<\/p>\n<p><b>To make life easy, gaze was born that provides a stupid simple interface to configure to use your face for Linux login, screen unlock, running sudo command or other processes that need user authentication.<\/b><\/p>\n<p>Gaze runs entirely on users&#8217; local devices with no cloud dependency, and, it integrates with PAM for login and lock screen, and works with any standard webcam. And, it provides:<\/p>\n<ul>\n<li><code>gazed<\/code> &#8211; a daemon that communicates over DBus. It runs silently as a background service, and captures a frame from your webcam when authentication is requested, then compares it against stored enrollments.<\/li>\n<li><code>pam-gaze<\/code> &#8211; a PAM module to manage authentications.<\/li>\n<li><code>gaze-gui<\/code> &#8211; provides a simple user interface to manage face ID.<\/li>\n<li><code>gaze<\/code> &#8211; a command line interface to manage face ID.<\/li>\n<li><code>gaze-gnome-extension<\/code> &#8211; an extension for GNOME users for lock screen authentication.<\/li>\n<\/ul>\n<h3>Install &amp; set up Gaze:<\/h3>\n<p><b>NOTE: Gaze can currently be spoofed with a photo. Don&#8217;t use it on production machine! And, it so far only support modern Intel\/AMD platform.<\/b><\/p>\n<p>Gaze provides official installer packages for Debian, Ubuntu, Fedora, Arch Linux, and their based Linux distributions, which are available to download at the link below:<\/p>\n<div class=\"wp-block-buttons aligncenter\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-vivid-cyan-blue-to-vivid-purple-gradient-background has-text-color has-background\" href=\"https:\/\/github.com\/GunduLabs\/gaze\/releases\" target=\"_blank\" rel=\"noreferrer noopener\">Download Gaze (under Assets)<\/a><\/div>\n<\/div>\n<p>Select download <code>gaze<\/code>, <code>gaze-gui<\/code>, and <code>gaze-gnome-extension<\/code> (for GNOME desktop), then click open &amp; install via your system software app, e.g., App Center for Ubuntu 24.04\/26.04, Gnome Software for Fedora Workstation.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51224\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/download-gaze-700x446.webp\" alt=\"\" width=\"610\" height=\"389\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/download-gaze-700x446.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/download-gaze-300x191.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/download-gaze-768x489.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/download-gaze.webp 1359w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>After installed the tool, <b>restart computer.<\/b><\/p>\n<p>Then, you may open terminal (Ctrl+Alt+T) and run the command below to check if the daemon is running actively:<\/p>\n<pre>systemctl status gazed<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51226\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gazed-daemon-700x424.webp\" alt=\"\" width=\"610\" height=\"369\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gazed-daemon-700x424.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gazed-daemon-300x182.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gazed-daemon-768x466.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gazed-daemon.webp 810w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>Then, launch Gaze GUI for the graphical interface to add your face ID, configure security level. While, advanced users may run <code>gaze --help<\/code> and do them in command line.<\/p>\n<p><i>NOTE: Higher security level may cause more authentication failures.<\/i><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-51225\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-gui.webp\" alt=\"\" width=\"510\" height=\"550\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-gui.webp 510w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-gui-278x300.webp 278w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/p>\n<p>After added your face ID, launch &#8220;Gnome Extensions&#8221; or &#8220;Extension Manager&#8221; (both available in Ubuntu App Center, Fedora Gnome Software), enable gaze extension and enable facial authentication for lock screen its preferences.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51227\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-extension-700x317.webp\" alt=\"\" width=\"610\" height=\"276\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-extension-700x317.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-extension-300x136.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-extension-768x348.webp 768w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/gaze-extension.webp 1442w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<h3>Known issues and Workarounds<\/h3>\n<p><b>1.<\/b> For Debian and Ubuntu, the <b>0.1.0<\/b> version incorrectly built the <code>pam-gaze<\/code> module libraries into <code>\/lib\/${MULTIARCH}<\/code>, which causes the facial authentication not function.<\/p>\n<p>To workaround the issue, run command to move them to the correct place:<\/p>\n<pre>sudo mv \/usr\/lib\/\\$\\{MULTIARCH\\}\/security\/* \/usr\/lib\/x86_64-linux-gnu\/security\/<\/pre>\n<p><b>2.<\/b> Also for Debian and Ubuntu, the priority of gaze module (version 0.1.0) is lower than the default password authentication. <b>Meaning it will always ask for password authentication first, if failed, it then fall back to gaze facial authentication.<\/b><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51228\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/passwordauth-first-700x550.webp\" alt=\"\" width=\"610\" height=\"479\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/passwordauth-first-700x550.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/passwordauth-first-300x236.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/passwordauth-first.webp 759w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>To workaround the issue, try configuring the <code>\/usr\/share\/pam-configs\/gaze<\/code> file and set priority to higher than 256 (e.g., 260).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-51229\" src=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/fix-priority-700x500.webp\" alt=\"\" width=\"610\" height=\"436\" srcset=\"https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/fix-priority-700x500.webp 700w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/fix-priority-300x214.webp 300w, https:\/\/ubuntuhandbook.org\/wp-content\/uploads\/2026\/05\/fix-priority.webp 723w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>Finally, re-run <code>sudo pam-auth-update<\/code> and make sure &#8220;Gaze Face Authentication&#8221; goes before the &#8220;Unix authentication&#8221;, finally restart computer to apply changes.<\/p>","protected":false},"excerpt":{"rendered":"<p>Want to use your face to sign in or run process that needs authentication in your computer? There&#8217;s a new project to do the job in Linux! It&#8217;s Gaze, a free open-source Rust written app that provides simple GTK4 + libadwaita user interface for managing facial authentication, while, a CLI tool is also available for [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":51222,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52],"tags":[2039],"class_list":["post-51221","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-app-review","tag-security"],"_links":{"self":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/51221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/comments?post=51221"}],"version-history":[{"count":0,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/posts\/51221\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media\/51222"}],"wp:attachment":[{"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/media?parent=51221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/categories?post=51221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ubuntuhandbook.org\/index.php\/wp-json\/wp\/v2\/tags?post=51221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}