sudo-touchid: Service does not work after upgrade
This worked for me until some point recently, possibly due to an OS upgrade. I upgraded the package to see if that would fix things:
❯ brew install artginzburg/tap/sudo-touchid
Running `brew update --preinstall`...
==> Auto-updated Homebrew!
Updated 3 taps (homebrew/core, homebrew/cask and homebrew/services).
<snip>
sudo-touchid 0.2 is already installed but outdated (so it will be upgraded).
==> Downloading https://github.com/artginzburg/sudo-touchid/releases/download/0.3/sudo-touchid.sh
==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/389117398/ee
######################################################################## 100.0%
==> Upgrading artginzburg/tap/sudo-touchid
0.2 -> 0.3
==> Caveats
To restart artginzburg/tap/sudo-touchid after an upgrade:
sudo brew services restart artginzburg/tap/sudo-touchid
Or, if you don't want/need a background service you can just run:
/opt/homebrew/opt/sudo-touchid/bin/sudo-touchid
==> Summary
🍺 /opt/homebrew/Cellar/sudo-touchid/0.3: 5 files, 4.5KB, built in 1 second
==> Running `brew cleanup sudo-touchid`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
Removing: /opt/homebrew/Cellar/sudo-touchid/0.2... (5 files, 3.4KB)
Warning: Directory not empty @ dir_s_rmdir - /opt/homebrew/Cellar/sudo-touchid/0.2
❯ sudo brew services start sudo-touchid
Password:
Warning: Taking root:admin ownership of some sudo-touchid paths:
/opt/homebrew/Cellar/sudo-touchid/0.3/bin
/opt/homebrew/Cellar/sudo-touchid/0.3/bin/sudo-touchid
/opt/homebrew/opt/sudo-touchid
/opt/homebrew/opt/sudo-touchid/bin
/opt/homebrew/var/homebrew/linked/sudo-touchid
This will require manual removal of these paths using `sudo rm` on
brew upgrade/reinstall/uninstall.
/Library/LaunchDaemons/homebrew.mxcl.sudo-touchid.plist: service already bootstrapped
Bootstrap failed: 37: Operation already in progress
Error: Failure while executing; `/bin/launchctl bootstrap system /Library/LaunchDaemons/homebrew.mxcl.sudo-touchid.plist` exited with 37.
❯ sudo brew services stop sudo-touchid
Stopping `sudo-touchid`... (might take a while)
==> Successfully stopped `sudo-touchid` (label: homebrew.mxcl.sudo-touchid)
❯ sudo brew services start sudo-touchid
Warning: Taking root:admin ownership of some sudo-touchid paths:
/opt/homebrew/Cellar/sudo-touchid/0.3/bin
/opt/homebrew/Cellar/sudo-touchid/0.3/bin/sudo-touchid
/opt/homebrew/opt/sudo-touchid
/opt/homebrew/opt/sudo-touchid/bin
/opt/homebrew/var/homebrew/linked/sudo-touchid
This will require manual removal of these paths using `sudo rm` on
brew upgrade/reinstall/uninstall.
==> Successfully started `sudo-touchid` (label: homebrew.mxcl.sudo-touchid)
After the above, sudo
still requires my password. It appears the script has not changed the files in the expected ways:
❯ cat /etc/pam.d/sudo
# sudo: auth account password session
auth sufficient pam_smartcard.so
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
❯ cat /etc/pam.d/sudo.bak
2022/02/16 11:03:31 open /etc/pam.d/sudo.bak: no such file or directory
I tried uninstalling via brew
(requiring manually removing /opt/homebrew/Cellar/sudo-touchid/{0.2,0.3}
) but it’s the same result.
Manually running /opt/homebrew/opt/sudo-touchid/bin/sudo-touchid
fixes the issue.
About this issue
- Original URL
- State: open
- Created 2 years ago
- Comments: 20 (8 by maintainers)
Just now realised I have the same issue.
sudo brew services list
gives status “stopped” forsudo-touchid
, and I did not stop it. I’m assuming a macOS upgrade happened at weekends, but not sure entirely.Maybe launch daemons are automatically stopped on system upgrade now. Or maybe it’s Homebrew’s logic. Need to check.
UPD: I think “stopped” as a status does not mean that the service is not active, but rather means that the specified command was executed and is not running right now. Which is expected since the command is not active, it just runs and quits. But I can confirm that
sudo-touchid
did not automatically run in my case.