Re: run_init messes up terminal settings

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

 



On Mon, Jun 26, 2017 at 11:50:10AM -0400, Stephen Smalley wrote:
> On Mon, 2017-06-26 at 15:26 +0200, Dominick Grift wrote:
> > On Mon, Jun 26, 2017 at 09:08:16AM -0400, Stephen Smalley wrote:
> > > On Sat, 2017-06-24 at 12:20 +0200, Laurent Bigonville wrote:
> > > > Hello,
> > > > Russell opened the following bug regarding run_init in the debian
> > > > bts:
> > > > ====
> > > > [...]
> > > > It turns out that the problem was not running $(arch), but
> > > > running
> > > > run_init in 
> > > > the shell it spawned.  Below is an example of reproducing this,
> > > > the
> > > > first time 
> > > > run_init performs as expected.  The second time is fails without
> > > > me
> > > > even 
> > > > typing a password or pressing ENTER.  The result is the same with
> > > > any
> > > > command, 
> > > > but ls is just a good example.  This happens no matter what shell
> > > > is
> > > > spawned 
> > > > (whether it's ssh, su, or just an Xterm), run_init seems
> > > > generally
> > > > broken with 
> > > > the 4.9.0-2-amd64/4.9.13-1 kernel at least.
> > > > 
> > > > NB I can't rule out the possibility of a kernel bug at this
> > > > stage.  But at 
> > > > this time it seems best to assume it's a run_init bug until
> > > > proven
> > > > otherwise.
> > > > 
> > > > Sorry for the inconvenience Andreas.
> > > > 
> > > > # run_init ls /boot
> > > > Authenticating root.
> > > > Password: 
> > > > config-4.9.0-2-amd64      lost+found                System.map-
> > > > 4.9.0-
> > > > 3-amd64
> > > > config-4.9.0-3-amd64      memtest86+.bin            vmlinuz-
> > > > 4.9.0-2-
> > > > amd64
> > > > grub                      memtest86+_multiboot.bin  vmlinuz-
> > > > 4.9.0-3-
> > > > amd64
> > > > initrd.img-4.9.0-2-amd64  real
> > > > initrd.img-4.9.0-3-amd64  System.map-4.9.0-2-amd64
> > > > # run_init ls /boot
> > > > Authenticating root.
> > > > Password: 
> > > > run_init: incorrect password for root
> > > > authentication failed.
> > > > # 
> > > > ====
> > > > I can reproduce this with 2.7-rc3, run_init is compiled with pam
> > > > and
> > > > audit support.
> > > > An idea what could happen here?
> > > > Regards,
> > > > Laurent Bigonville
> > > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863187
> > > 
> > > I don't think this could have ever worked under run_init since
> > > open_init_pty was introduced (originally from Debian); note that
> > > open_init_pty does alter terminal settings.
> > > 
> > > I don't quite follow the example given above.  It shows executing
> > > run_init twice with ls /boot as the arguments, which is not running
> > > run_init within run_init.  That works fine for me.
> > > 
> > > If I try something like:
> > > run_init run_init ls /boot
> > > which actually runs run_init within run_init, then that also works
> > > for
> > > me without problem.
> > > 
> > > If I try something like:
> > > run_init /bin/bash
> > > then I lose any echoing of input characters to the shell (due to
> > > open_init_pty turning it off), but I can enter commands and execute
> > > them, or run stty sane to regain echoing.  But I don't think that
> > > has
> > > ever been supported since the introduction of open_init_pty in 2005
> > > (policycoreutils 1.21.2).  What's the use case for it?
> > > 
> > > Side bar: run_init (and open_init_pty) are no longer packaged by
> > > Fedora
> > > since systemd renders it unnecessary, and even prior to that,
> > > Fedora
> > > policy enabled DIRECT_INITRC=y in build.conf, and therefore
> > > run_init
> > 
> > Correct me if i am wrong but fedora has DIRECT_INITRC=n AFAICT
> > 
> > https://src.fedoraproject.org/cgit/rpms/selinux-policy.git/tree/selin
> > ux-policy.spec#n173
> > https://src.fedoraproject.org/cgit/rpms/selinux-policy.git/tree/selin
> > ux-policy.spec#n393
> > 
> > I vaguely recall that in a strict environment one still might need
> > run_init for the `update aliases` functionality in redhar-based
> > distributions.. i might be wrong though
> 
> run_init is no longer packaged in Fedora at all (see
> policycoreutils.spec, which removes it during %install so that it will
> not be packaged).  Looking at the ChangeLog, this happened in 2012:
> * Mon Nov 5 2012 Dan Walsh <dwalsh@xxxxxxxxxx> - 2.1.12-25
> - Remove run_init, no longer needed with systemd.
> 
> Thus, DIRECT_INITRC=y is no longer required either, for the same reason
> (obsoleted by systemd).  Prior to that change, Fedora built with
> DIRECT_INITRC=y for -targeted policy; only -mls and -strict built with
> DIRECT_INITRC=n and needed run_init.

Maybe, I recall that previously Fedora use to hack around DIRECT_INITRC with unconfined_t but AFAICR it always applied to sysadm_t.
Does not make any difference though. However I do, kind of, wonder if sysadm_t is currently able to update the aliases db with sendmail (but then again it has been a long time since redhat shipped with sendmail enabled by default)

Nevertheless, gentoo relies on run_init for openrc, and in debian systemd is optional (i think)

Normally I am all for removing as much as possible, but with run_init I have mixed feelings, because systemd has been and is a headache IMHO

No one was able to confirm it but last lime i tried the "service enable/disable" access vector was broken. Atleast with good old sysvinit/upstart we didnt have to depend selinux extension code to be able to control this as it was all transparent.

> 
> > 
> > > wasn't required for typical operation (maybe under -mls policy it
> > > was
> > > still needed, not sure). Possibly we should move run_init out of
> > > policycoreutils into its own subdirectory in the selinux userspace
> > > tree
> > > to reflect this transition and start deprecating it.
> > > 
> > 
> > 

-- 
Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8  02D5 3B6C 5F1D 2C7B 6B02
https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
Dominick Grift

Attachment: signature.asc
Description: PGP signature


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

  Powered by Linux