A update failed and now my sudo powers are gone!

I tried to do an update using yay and it failed with the result:

-> Failed to install layer, rolling up to next layer.error:error installing repo package

I tried to run yay again and I get the message:

 -> error refreshing databases - fork/exec /usr/bin/sudo: exec format error

Tried snapper undochange to roll everything back and got:

bash: /usr/bin/sudo: cannot execute binary file: Exec format error

Now anything I sudo gets this error. Is my sudo privileges gone or completely borked?

can you still access root as SU?

sudo -s ?

No access.

Actually, I do have access if I directly login in a different TTY session directly as root. Still don’t know what to do to fix the problem though. I tried to use snapper undochange but I get an error:

Inside su show us the output of the following two commands:

groups USERNAME
cat /etc/sudoers

[root@Desktop-Endeavour jeremiah]# groups jeremiah
sys wheel rfkill vboxusers libvirt jeremiah
[root@Desktop-Endeavour jeremiah]# cat /etc/sudoers
## sudoers file.
##
## This file MUST be edited with the 'visudo' command as root.
## Failure to use 'visudo' may result in syntax or file permission errors
## that prevent sudo from running.
##
## See the sudoers man page for the details on how to write a sudoers file.
##

##
## Host alias specification
##
## Groups of machines. These may include host names (optionally with wildcards),
## IP addresses, network numbers or netgroups.
# Host_Alias    WEBSERVERS = www1, www2, www3

##
## User alias specification
##
## Groups of users.  These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias    ADMINS = millert, dowdy, mikef

##
## Cmnd alias specification
##
## Groups of commands.  Often used to group related commands together.
# Cmnd_Alias    PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
#                           /usr/bin/pkill, /usr/bin/top
#
# Cmnd_Alias    REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
#
# Cmnd_Alias    DEBUGGERS = /usr/bin/gdb, /usr/bin/lldb, /usr/bin/strace, \
#                           /usr/bin/truss, /usr/bin/bpftrace, \
#                           /usr/bin/dtrace, /usr/bin/dtruss
#
# Cmnd_Alias    PKGMAN = /usr/bin/apt, /usr/bin/dpkg, /usr/bin/rpm, \
#                        /usr/bin/yum, /usr/bin/dnf,  /usr/bin/zypper, \
#                        /usr/bin/pacman

##
## Defaults specification
##
## You may wish to keep some of the following environment variables
## when running commands via sudo.
##
## Locale settings
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file.  Note that other programs use HOME to find   
## configuration files and this may lead to privilege escalation!
# Defaults env_keep += "HOME"
##
## X11 resource path settings
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
##
## Desktop path settings
# Defaults env_keep += "QTDIR KDEDIR"
##
## Allow sudo-run commands to inherit the callers' ConsoleKit session
# Defaults env_keep += "XDG_SESSION_COOKIE"
##
## Uncomment to enable special input methods.  Care should be taken as
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to use a hard-coded PATH instead of the user's to find commands
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
##
## Uncomment to restore the historic behavior where a command is run in
## the user's own terminal.
# Defaults !use_pty
##
## Uncomment to send mail if the user does not enter the correct password.
# Defaults mail_badpass
##
## Uncomment to enable logging of a command's output, except for
## sudoreplay and reboot.  Use sudoreplay to play back logged sessions.
## Sudo will create up to 2,176,782,336 I/O logs before recycling them.
## Set maxseq to a smaller number if you don't have unlimited disk space.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!REBOOT !log_output
# Defaults maxseq = 1000
##
## Uncomment to disable intercept and log_subcmds for debuggers and
## tracers.  Otherwise, anything that uses ptrace(2) will be unable
## to run under sudo if intercept_type is set to "trace".
# Defaults!DEBUGGERS !intercept, !log_subcmds
##
## Uncomment to disable intercept and log_subcmds for package managers.
## Some package scripts run a huge number of commands, which is made
## slower by these options and also can clutter up the logs.
# Defaults!PKGMAN !intercept, !log_subcmds

##
## Runas alias specification
##

##
## User privilege specification
##
root ALL=(ALL:ALL) ALL

## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL:ALL) ALL

## Same thing without a password
# %wheel ALL=(ALL:ALL) NOPASSWD: ALL

## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL:ALL) ALL

## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw  # Ask for the password of the target user
# ALL ALL=(ALL:ALL) ALL  # WARNING: only use this together with 'Defaults targetpw'

## Read drop-in files from /etc/sudoers.d
@includedir /etc/sudoers.d
[root@Desktop-Endeavour jeremiah]# 

You don’t seem to have sudo privileges. Try the following things posted in the link below. Of course with your username instead of wolf.

Or do as @thefrog said. Both paths are viable.

Weird, some people got this bug over the last few days.

1 Like

if you are still part of the wheel group just uncomment the command

uncomment the one you wish to use. and this should restore your sudo

1 Like

@I0F and @thefrog, tried both of your solutions, restarted the computer after each, and still no sudo.

I think there might be a bad update. I am scared to update my other computer until I get this solved. Not having sudo powers sucks!

can you still access root with SU?

Yeah, just no sudo.

As root (su) run:

pacman -Syu sudo

Post any error messages if there are any.

3 Likes

Your issue seems to be with a possibly “corrupt” /usr/bin/sudo.

The solution linked to above wouldn’t work in this case as you have confirmed yourself.

Try the suggestion in the previous post!

1 Like

So, I think it was a corrupt sudo file since one of the updates was sudo and it looks like it was interrupted because my btrfs system was full. I booted into a live session and am performing a balance.

pam, an authentication library program, was updated recently and you are one the many across many distros who suffered the law of intended permission consequences. my post here addresses an early question OP had re: origin. seems to fit the bill. I’m seeing login/keyring/etc stuff from cursory reading.

Well, could not get it figured out. I did git it to rollback a few updates using snapper and regained sudo, but the drive was still to full and it looks like a lot of files were corrupted. I just deleted a bunch of crap, balanced it, then recovered back to the only snapshot that worked which was taken back in April.

On a good note, all 1385 updates installed just fine after updating the keyrings and updating the mirrors.

2 Likes