1.8.16-0ubuntu1.3 update breaks sudo with freeipa-client / sssd
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
sudo (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
ubuntu 16.04, enrolled with freeipa-client to FreeIPA 4.4.0 (under CentOS 7)
With sudo 1.8.16-0ubuntu1, everything is fine:
brian.candler@
[sudo] password for brian.candler:
root@api-dev:~#
After update to 1.8.16-0ubuntu1.3, it no longer works:
brian.candler@
brian.candler@
[sudo] password for brian.candler:
brian.candler is not allowed to run sudo on api-dev.
This is repeatable: downgrade sudo and it works again.
Seems very likely related to change made as part of #1607666, which changes how sudo policies are matched, but has unexpected regression.
--- Additional info ---
The sudo policy in IPA is extremely simple. It has a single rule, which says:
- applies to users in groups "system_
- applies to any host
- applies to any command
In LDAP under ou=sudoers tree, the groups are flattened out:
# system administrators on all hosts, sudoers, ipa.example.com
dn: cn=system administrators on all hosts,ou=
sudoRunAsGroup: ALL
objectClass: sudoRole
objectClass: top
sudoUser: brian.candler
sudoUser: ...
sudoUser: ... list more users
sudoUser: ...
sudoRunAsUser: ALL
sudoCommand: ALL
sudoHost: ALL
cn: system administrators on all hosts
Under cn=sudorules,
# 59ffb10a-
dn: ipaUniqueID=
ipaSudoRunAsUse
ipaSudoRunAsGro
description: admins have full sudo access on any host they can ssh into
cmdCategory: all
hostCategory: all
memberUser: cn=system_
memberUser: cn=security_
objectClass: ipasudorule
objectClass: ipaassociation
ipaEnabledFlag: TRUE
cn: system administrators on all hosts
ipaUniqueID: 59ffb10a-
I have no workaround other than downgrade.
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: sudo 1.8.16-0ubuntu1.3
ProcVersionSign
Uname: Linux 4.4.0-1016-aws x86_64
ApportVersion: 2.20.1-0ubuntu2.5
Architecture: amd64
Date: Wed May 3 16:01:23 2017
Ec2AMI: ami-a8d2d7ce
Ec2AMIManifest: (unknown)
Ec2Availability
Ec2InstanceType: t2.small
Ec2Kernel: unavailable
Ec2Ramdisk: unavailable
ProcEnviron:
TERM=xterm-
PATH=(custom, no user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: sudo
UpgradeStatus: No upgrade log present (probably fresh install)
VisudoCheck:
/etc/sudoers: parsed OK
/etc/sudoers.
/etc/sudoers.
Some additional info.
I enabled sudo debugging by creating /etc/sudo.conf containing:
Debug sudo /var/log/sudo-debug all@info sudoers- debug all@info
Debug sudoers /var/log/
With the newer (non-functioning) sudo, /var/log/sudo-debug contains:
May 3 18:55:50 sudo[8003] comparing dev 34817 to /dev/pts/1: match! @ sudo_ttyname_dev() /build/ sudo-40pSZP/ sudo-1. 8.16/src/ ttyname. c:336 addrs=10. 0.0.230/ 255.255. 255.0 xxxx:xxxx: xxxx:xxxx: :230/ffff: ffff:ffff: ffff:ffff: ffff:ffff: ffff fe80::1: xxxx:xxxx: xxxx/ffff: ffff:ffff: ffff:: dir=/usr/ lib/sudo/
May 3 18:55:50 sudo[8003] settings: run_shell=true
May 3 18:55:50 sudo[8003] settings: progname=sudo
May 3 18:55:50 sudo[8003] settings: network_
May 3 18:55:50 sudo[8003] settings: plugin_
May 3 18:55:51 sudo[8003] policy plugin returns 0
With the older (working) sudo, /var/log/sudo-debug contains:
May 3 19:00:19 sudo[8746] comparing dev 34817 to /dev/pts/1: match! @ sudo_ttyname_dev() /build/ sudo-g3ghsu/ sudo-1. 8.16/src/ ttyname. c:336 addrs=10. 0.0.230/ 255.255. 255.0 xxxx:xxxx: xxxx:xxxx: :230/ffff: ffff:ffff: ffff:ffff: ffff:ffff: ffff fe80::1: xxxx:xxxx: xxxx/ffff: ffff:ffff: ffff:: dir=/usr/ lib/sudo/ addrs=10. 0.0.230/ 255.255. 255.0 xxxx:xxxx: xxxx:xxxx: :230/ffff: ffff:ffff: ffff:ffff: ffff:ffff: ffff fe80::1: xxxx:xxxx: xxxx/ffff: ffff:ffff: ffff:: dir=/usr/ lib/sudo/
May 3 19:00:19 sudo[8746] settings: run_shell=true
May 3 19:00:19 sudo[8746] settings: progname=sudo
May 3 19:00:19 sudo[8746] settings: network_
May 3 19:00:19 sudo[8746] settings: plugin_
May 3 19:00:22 sudo[8746] policy plugin returns 1
May 3 19:00:22 sudo[8746] settings: run_shell=true
May 3 19:00:22 sudo[8746] settings: progname=sudo
May 3 19:00:22 sudo[8746] settings: network_
May 3 19:00:22 sudo[8746] settings: plugin_
May 3 19:00:22 sudo[8746] command info from plugin:
May 3 19:00:22 sudo[8746] 0: command=/bin/bash
May 3 19:00:22 sudo[8746] 1: runas_uid=0
May 3 19:00:22 sudo[8746] 2: runas_gid=0
May 3 19:00:22 sudo[8746] 3: runas_groups=0
May 3 19:00:22 sudo[8746] 4: closefrom=3
May 3 19:00:22 sudo[8746] 5: set_utmp=true
May 3 19:00:22 sudo[8746] 6: umask=022
May 3 19:00:22 sudo[8746] executed /bin/bash, pid 8754
May 3 19:00:22 sudo[8746] sudo_ev_add_v1: adding event 0x55e83b06c630 to base 0x55e83b07ea40
May 3 19:00:22 sudo[8746] sudo_ev_add_v1: adding event 0x55e83b078180 to base 0x55e83b07ea40
May 3 19:00:22 sudo[8746] signal pipe fd 10
May 3 19:00:22 sudo[8746] backchannel fd 5
May 3 19:00:22 sudo[8754] exec /bin/bash [/bin/bash]
May 3 19:00:22 sudo[8746] sudo_ev_scan_impl: 1 fds ready
May 3 19:00:22 sudo[8746] failed to read child status: EOF
May 3 19:00:22 sudo[8746] sudo_ev_del_v1: removing event 0x55e83b078180 from base 0x55e83b07ea40
(/var/log/ sudoers- debug is not created in either case)
Note "policy plugin returns 0" in the first case.