Re: libsemanage getpwent and nss-systemd incompability

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/09/2018 04:20 PM, Nicolas Iooss wrote:
> Hello,
> 
> While testing a systemd update on Arch Linux, I encountered the
> following message (in a Vagrant virtual machine):
> 
> # semanage fcontext -m -s sysadm_u -t user_home_t '/vagrant(/.*)?'
> libsemanage.get_home_dirs: Error while fetching users.  Returning list so far.
> 
> A quick debugging of get_home_dirs() in
> libsemanage/src/genhomedircon.c shows that the loop "while ((pwbuf =
> getpwent()) != NULL)" stops with pwbuf=NULL and errno=2 (ENOENT). My
> /etc/nsswitch.conf contains:
> 
> passwd: files mymachines systemd
> 
> If I remove "systemd" from this line, the error disappears. Therefore
> it seems that systemd's NSS module returns a ENOENT error when
> getpwent() is called. I have not found any clue in systemd's code [1]
> about such an error and I have not got much time to debug this issue.
> Does this occurs for someone else (using Fedora for example)?

Fedora ships with usepasswd=False in semanage.conf, so we'll never reach that code in a default configuration.
Fedora nsswitch.conf has following for passwd:
passwd:		files sss systemd

Removing usepasswd=False from semanage.conf, I see the same behavior with libsemanage 2.8, systemd 239, and glibc 2.27 on Fedora and it did not occur with systemd 238.  systemd v239 does introduce support into nss-systemd for looking up dynamic users, so this seems to be the cause. Not sure yet whether this represents a bug in libsemanage or systemd, but it appears to just be a warning and not fatal to operation.

> 
> For information, this issue occurs with SELinux release 2.8 (and git
> master branch), systemd 239.0 and glibc 2.27, on a system with SELinux
> in permissive mode.
> 
> Best,
> Nicolas
> 
> [1] https://github.com/systemd/systemd/blob/master/src/nss-systemd/nss-systemd.c
_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.



[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux