Fix for Samba server masking world writeable perm off
Jeremy Allison
jra at samba.org
Tue Feb 26 16:45:15 UTC 2019
On Tue, Feb 26, 2019 at 04:44:21PM +0000, Rowland Penny via samba-technical wrote:
> On Tue, 26 Feb 2019 18:31:55 +0200
> Alexander Bokovoy via samba-technical <samba-technical at lists.samba.org>
> wrote:
>
> > On ti, 26 helmi 2019, Jeremy Allison via samba-technical wrote:
> > > On Tue, Feb 26, 2019 at 06:11:20PM +0200, Alexander Bokovoy wrote:
> > > > >
> > > > > Is it possible some of the pam calls are setting a
> > > > > umask internally ?
> > > > Yes, most likely session phase is setting them -- either in
> > > > pam_limits or in pam_systemd.
> > >
> > > Hmmm. Should we then explicitly set umask(0) after
> > > making the pam session calls ? It's setting the
> > > umask for smbd which is unwanted.
> > My understanding is that this is indeed a valid approach. At least,
> > manual page daemon(7) (from systemd suite) states for SysV daemons:
> >
> > 10. In the daemon process, reset the umask to 0, so that the
> > file modes passed to open(), mkdir() and suchlike directly control the
> > access mode of the created files and directories.
> >
> > Further, it states for new-style daemons (integrated with systemd):
> >
> > Note that new-style init systems guarantee execution of daemon
> > processes in a clean process context: it is guaranteed that the
> > environment block is sanitized, that the signal handlers and
> > mask is reset and that no left-over file descriptors are passed.
> >
> > Daemons will be executed in their own session, with standard
> > input connected to /dev/null and standard output/error
> > connected to the systemd-journald.service(8) logging service, unless
> > otherwise configured. The umask is reset.
> >
> > So, the expectation is that a daemon has umask reset to 0. However,
> > neither case accounts for interaction with PAM stack. In PAM
> > documentation there is no explanation what to expect from session
> > stack either, while side effects are kind of covered (in
> > pam_open_session(3)) by claiming that application should have enough
> > privileges to perform those operations that, for example, create
> > directories.
> >
> > I suspect we should treat each PAM session as kind of a separate
> > instance launch in terms of our environment being clobbered. So
> > resetting umask to 0 is probably a valid thing.
> >
> >
>
> What happens if you do not use systemd ?
It's not a systemd thing, it's a PAM thing :-(.
More information about the samba-technical
mailing list