pam_setcred parameter
Radovan Sroka <[email protected]> Mon, 21 Jan 2019 11:54:58 +0100
| Newsgroups | gmane.comp.tools.sudo.devel |
|---|---|
| Message-ID | <CAD_08=-fEycS1b1_ne_4uFeTHU-uyw-acqYk_0vZ+vRP53h4HQ@mail.gmail.com> |
Hi Todd, I think that sudo uses pam_setcred incorrectly. https://www.sudo.ws/repos/sudo/rev/ec23c3bf41bb After this commit sudo uses PAM_REINITIALIZE_CRED instead of PAM_ESTABLISH_CRED which is wrong. Reinitialize flag can be used only in case when Establish was already used and there was some change like UID or something. Some pam modules like pam_cap.so ignore Reinitialize and support only Establish and that's why it is not working with sudo since that commit and does not apply capabilities to new process. Steps to Reproduce: [root@rhel7u3-5 ~]# useradd netdiag [root@rhel7u3-5 ~]# setcap cap_net_raw+ei /usr/sbin/tcpdump [root@rhel7u3-5 ~]# echo "cap_net_raw+ei netdiag" > /etc/security/capability.conf [root@rhel7u3-5 ~]# cat /etc/pam.d/sudo #%PAM-1.0 auth optional pam_cap.so auth include system-auth account include system-auth password include system-auth session optional pam_keyinit.so revoke session required pam_limits.so After commit: [root@rhel7u3-5 ~]# sudo -u netdiag /usr/sbin/tcpdump -i lo tcpdump: lo: You don't have permission to capture on that device (socket: Operation not permitted) Before commit: [root@rhel7u3-5 ~]# sudo -u netdiag /usr/sbin/tcpdump -i lo tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes I suggest to use only Established or both as subsequent calls. -- -- --------------------------------------------------------- Radovan Sroka Software Engineer | Security Technologies | Red hat, Inc. ____________________________________________________________ sudo-workers mailing list <[email protected]> For list information, options, or to unsubscribe, visit: https://www.sudo.ws/mailman/listinfo/sudo-workers