<div dir="ltr"><div>







<p class=""><span class="">Hi</span> everyone,</p>
<p class=""><br></p>
<p class="">I've spent a couple of days digging around the web, watching logs, and poking things, and I'm stuck getting <span class="">sudo</span> working with IPA on a new box I've just set up. I have had it working in the past on a test box, but something about this box is blocking me, and I can't for the life of me figure out what.</p>
<p class=""><br></p>
<p class="">The basic symptom is that I can log into the <span class="">Ubuntu</span> box as an IPA user, but <span class="">sudo</span> is always denied:</p>
<p class=""><br></p>
<p class="">[root@security-core-1 log]# <span class="">ssh</span> <span class="">dru@jenkins</span></p>
<p class=""><span class="">dru@jenkins's</span> password: </p>
<p class="">...</p>
<p class="">Could not <span class="">chdir</span> to home directory /home/<span class="">dru</span>: No such file or directory</p>
<p class=""><span class="">dru@jenkins</span>:/$ <span class="">sudo</span> -l</p>
<p class="">[<span class="">sudo</span>] password for <span class="">dru</span>: </p>
<p class="">Sorry, user <span class="">dru</span> may not run <span class="">sudo</span> on <span class="">jenkins</span>.</p>
<p class=""><br></p>
<p class="">I've appended version output, <span class="">config</span> files, sample logs, and <span class="">ipa</span> <span class="">config</span> - which I think is all of the relevant material, but I'll gladly share more if it's needed.</p>
<p class=""><br></p>
<p class="">Thanks so much in advance for any debugging advice, hints, or help!</p>
<p class=""><br></p>
<p class="">Cheers,</p>
<p class=""><br></p>
<p class="">Andrew</p>
<p class=""><br></p>
<p class=""><br></p>
<p class=""><br></p>
<p class="">===========</p>
<p class="">Version info</p>
<p class="">===========</p>
<p class=""><br></p>
<p class="">Server:</p>
<p class=""># <span class="">ipa</span> --version</p>
<p class="">VERSION: 4.1.0, API_VERSION: 2.112</p>
<p class=""><br></p>
<p class=""># cat /etc/<span class="">redhat</span>-release</p>
<p class="">CentOS Linux release 7.1.1503 (Core)</p>
<p class=""><br></p>
<p class="">Client:</p>
<p class=""># cat /etc/<span class="">lsb</span>-release </p>
<p class="">DISTRIB_ID=<span class="">Ubuntu</span></p>
<p class="">DISTRIB_RELEASE=14.04</p>
<p class="">DISTRIB_CODENAME=trusty</p>
<p class="">DISTRIB_DESCRIPTION="<span class="">Ubuntu</span> 14.04.2 LTS"</p>
<p class=""><br></p>
<p class="">#<span class="">sssd</span> --version</p>
<p class="">1.11.5</p>
<p class=""><br></p>
<p class=""><br></p>
<p class=""><br></p>
<p class="">===========</p>
<p class=""><span class="">hostname</span>, <span class="">nisdomainname</span>, <span class="">config</span> files, etc.</p>
<p class="">===========</p>
<p class=""><br></p>
<p class="">On the client:</p>
<p class=""><br></p>
<p class=""># <span class="">hostname</span></p>
<p class=""><a href="http://jenkins.us-ca1.prod.mydomain.com">jenkins.us-ca1.prod.mydomain.com</a></p>
<p class=""><br></p>
<p class=""># <span class="">nisdomainname</span></p>
<p class=""><a href="http://mydomain.com">mydomain.com</a></p>
<p class=""><br></p>
<p class=""># <span class="">getent</span> <span class="">netgroup</span> <span class="">rdn</span> | <span class="">grep</span> $HOSTNAME</p>
<p class=""><span class="">rdn</span>                   (<a href="http://jenkins.us-ca1.prod.mydomain.com">jenkins.us-ca1.prod.mydomain.com</a>,-,<a href="http://mydomain.com">mydomain.com</a>)</p>
<p class=""><br></p>
<p class=""><br></p>
<p class=""># cat /etc/<span class="">sssd</span>/sssd.conf </p>
<p class="">[domain/<a href="http://mydomain.com">mydomain.com</a>]</p>
<p class=""><br></p>
<p class="">cache_credentials = True</p>
<p class="">krb5_store_password_if_offline = True</p>
<p class="">ipa_domain = <a href="http://mydomain.com">mydomain.com</a></p>
<p class="">id_provider = <span class="">ipa</span></p>
<p class="">auth_provider = <span class="">ipa</span></p>
<p class="">access_provider = <span class="">ipa</span></p>
<p class="">ldap_tls_cacert = /etc/<span class="">ipa</span>/ca.crt</p>
<p class="">ipa_hostname = <a href="http://jenkins.us-ca1.prod.mydomain.com">jenkins.us-ca1.prod.mydomain.com</a></p>
<p class="">chpass_provider = <span class="">ipa</span></p>
<p class="">ipa_server = _srv_, <a href="http://security-core-1.prod.mydomain.com">security-core-1.prod.mydomain.com</a></p>
<p class="">dns_discovery_domain = <a href="http://mydomain.com">mydomain.com</a></p>
<p class="">sudo_provider=<span class="">ipa</span></p>
<p class="">[<span class="">sssd</span>]</p>
<p class="">services = <span class="">nss</span>, <span class="">pam</span>, <span class="">ssh</span>, <span class="">sudo</span></p>
<p class="">config_file_version = 2</p>
<p class=""><br></p>
<p class="">domains = <a href="http://mydomain.com">mydomain.com</a></p>
<p class="">[<span class="">nss</span>]</p>
<p class=""><br></p>
<p class="">[<span class="">pam</span>]</p>
<p class=""><br></p>
<p class="">[<span class="">sudo</span>]</p>
<p class="">debug_level = 9</p>
<p class=""><br></p>
<p class="">[<span class="">autofs</span>]</p>
<p class=""><br></p>
<p class="">[<span class="">ssh</span>]</p>
<p class=""><br></p>
<p class="">[<span class="">pac</span>]</p>
<p class=""><br></p>
<p class=""><br></p>
<p class=""># cat /etc/nsswitch.conf </p>
<p class=""># /etc/nsswitch.conf</p>
<p class="">#</p>
<p class=""># Example configuration of GNU Name Service Switch functionality.</p>
<p class=""># If you have the `<span class="">glibc</span>-doc-reference' and `info' packages installed, try:</p>
<p class=""># `info <span class="">libc</span> "Name Service Switch"' for information about this file.</p>
<p class=""><br></p>
<p class=""><span class="">passwd</span>:         <span class="">compat</span> <span class="">sss</span></p>
<p class="">group:          <span class="">compat</span> <span class="">sss</span></p>
<p class="">shadow:         <span class="">compat</span></p>
<p class=""><br></p>
<p class="">hosts:          files <span class="">dns</span></p>
<p class="">networks:       files</p>
<p class=""><br></p>
<p class="">protocols:      <span class="">db</span> files</p>
<p class="">services:       <span class="">db</span> files</p>
<p class=""><span class="">ethers</span>:         <span class="">db</span> files</p>
<p class=""><span class="">rpc</span>:            <span class="">db</span> files</p>
<p class=""><br></p>
<p class=""><span class="">netgroup</span>:       <span class="">nis</span> <span class="">sss</span></p>
<p class=""><span class="">sudoers</span>:        files <span class="">sss</span></p>
<p class=""><br></p>
<p class=""><br></p>
<p class="">===================</p>
<p class="">Host & group & user info in IPA</p>
<p class="">===================</p>
<p class=""><br></p>
<p class=""># <span class="">ipa</span> host-show <a href="http://jenkins.us-ca1.prod.mydomain.com">jenkins.us-ca1.prod.mydomain.com</a></p>
<p class="">  Host name: <a href="http://jenkins.us-ca1.prod.mydomain.com">jenkins.us-ca1.prod.mydomain.com</a></p>
<p class="">  Certificate: ...</p>
<p class="">  Principal name: host/<a href="mailto:jenkins.us-ca1.prod.mydomain.com@MYDOMAIN.COM">jenkins.us-ca1.prod.mydomain.com@MYDOMAIN.COM</a></p>
<p class="">  Password: False</p>
<p class="">  Member of host-groups: <span class="">rdn</span></p>
<p class="">  Member of <span class="">Sudo</span> rule: priv_sudo_anywhere, dru_security</p>
<p class="">  <span class="">Keytab</span>: True</p>
<p class="">  Managed by: <a href="http://jenkins.us-ca1.prod.mydomain.com">jenkins.us-ca1.prod.mydomain.com</a></p>
<p class="">  Subject: CN=<a href="http://jenkins.us-ca1.prod.mydomain.com">jenkins.us-ca1.prod.mydomain.com</a>,O=<a href="http://MYDOMAIN.COM">MYDOMAIN.COM</a></p>
<p class="">  Serial Number: 14</p>
<p class="">  Serial Number (hex): 0xE</p>
<p class="">  Issuer: CN=Certificate Authority,O=<a href="http://MYDOMAIN.COM">MYDOMAIN.COM</a></p>
<p class="">  Not Before: Fri <span class="">Apr</span> 10 17:43:10 2015 UTC</p>
<p class="">  Not After: Mon <span class="">Apr</span> 10 17:43:10 2017 UTC</p>
<p class="">  Fingerprint (MD5): ...</p>
<p class="">  Fingerprint (SHA1): ...</p>
<p class="">  SSH public key fingerprint: ...</p>
<p class=""><br></p>
<p class=""># <span class="">ipa</span> <span class="">sudorule</span>-show priv_sudo_anywhere</p>
<p class="">  Rule name: priv_sudo_anywhere</p>
<p class="">  Description: Allow anyone with priv_sudo_anywhere to actually run <span class="">sudo</span> anywhere</p>
<p class="">  Enabled: TRUE</p>
<p class="">  Command category: all</p>
<p class="">  RunAs User category: all</p>
<p class="">  RunAs Group category: all</p>
<p class="">  User Groups: priv_sudo_anywhere</p>
<p class="">  Hosts: <a href="http://jenkins.us-ca1.prod.mydomain.com">jenkins.us-ca1.prod.mydomain.com</a></p>
<p class="">  Host Groups: security, <span class="">dev</span>-infrastructure, <span class="">rdn</span>, <span class="">dev</span>, <span class="">prod</span></p>
<p class=""><br></p>
<p class=""># <span class="">ipa</span> group-show priv_sudo_anywhere</p>
<p class="">  Group name: priv_sudo_anywhere</p>
<p class="">  Description: Give the privilege to SSH anywhere.</p>
<p class="">  GID: 19000007</p>
<p class="">  Member users: <span class="">dru</span>, ...</p>
<p class="">  Member groups: role_prod_engineer</p>
<p class="">  Member of <span class="">Sudo</span> rule: priv_sudo_anywhere, ...</p>
<p class="">  Member of HBAC rule: sudo_anywhere_anywhere</p>
<p class="">  Indirect Member users: ....</p>
<p class=""><br></p>
<p class=""><br></p>
<p class="">===================</p>
<p class="">Relevant (I think) log entries</p>
<p class="">===================</p>
<p class=""><br></p>
<p class=""># tail -f /<span class="">var</span>/log/<span class="">sssd</span>/sssd_sudo.log</p>
<p class="">...</p>
<p class="">(Fri <span class="">Apr</span> 17 17:20:16 2015) [<span class="">sssd</span>[<span class="">sudo</span>]] [sbus_dispatch] (0x4000): <span class="">dbus</span> <span class="">conn</span>: 0x15b6520</p>
<p class="">(Fri <span class="">Apr</span> 17 17:20:16 2015) [sssd[sudo]] [sbus_dispatch] (0x4000): Dispatching.</p>
<p class="">(Fri Apr 17 17:20:16 2015) [sssd[sudo]] [sbus_message_handler] (0x4000): Received SBUS method [ping]</p>
<p class="">....</p>
<p class=""><br></p>
<p class="">(From a different attempt to run sudo)</p>
<p class=""><br></p>
<p class=""># tail -f /var/log/auth.log</p>
<p class="">...</p>
<p class="">Apr 17 17:20:55 jenkins sshd[3335]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=<a href="http://security-core-1.prod.mydomain.com">security-core-1.prod.mydomain.com</a>  user=dru</p>
<p class="">Apr 17 17:20:55 jenkins sshd[3335]: pam_sss(sshd:auth): authentication success; logname= uid=0 euid=0 tty=ssh ruser= rhost=<a href="http://security-core-1.prod.mydomain.com">security-core-1.prod.mydomain.com</a> user=dru</p>
<p class="">Apr 17 17:20:56 jenkins sshd[3335]: Accepted password for dru from 10.100.0.1 port 39910 ssh2</p>
<p class="">Apr 17 17:20:56 jenkins sshd[3335]: pam_unix(sshd:session): session opened for user dru by (uid=0)</p>
<p class="">Apr 17 17:20:56 jenkins sshd[3335]: pam_systemd(sshd:session): Failed to create session: No such file or directory</p>
<p class="">Apr 17 17:21:10 jenkins sudo: pam_unix(sudo:auth): authentication failure; logname=dru uid=19000001 euid=0 tty=/dev/pts/3 ruser=dru rhost=  user=dru</p>
<p class="">Apr 17 17:21:11 jenkins sudo: pam_sss(sudo:auth): authentication success; logname=dru uid=19000001 euid=0 tty=/dev/pts/3 ruser=dru rhost= user=dru</p>
<p class="">Apr 17 17:21:11 jenkins sudo:      dru : command not allowed ; TTY=pts/3 ; PWD=/ ; USER=root ; COMMAND=list</p></div></div>