From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <1489754664.29454.2.camel@tycho.nsa.gov> Subject: Re: newrole as su'ed root From: Stephen Smalley To: cgzones , selinux Date: Fri, 17 Mar 2017 08:44:24 -0400 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: On Fri, 2017-03-17 at 12:07 +0100, cgzones wrote: > Hi list, > I am using newrole v2.6 on Debian testing. The pam config > /etc/pam.d/newrole contains: > > #%PAM-1.0 > > @include common-auth > @include common-account > @include common-session > session  required pam_namespace.so unmnt_remnt no_unmount_on_close > > I log into the machine as a normal user: > > christian@debianSE:~$ id > uid=1001(christian) gid=1002(christian) > groups=1002(christian),1001(dosu) context=staff_u:staff_r:staff_t:s0 > christian@debianSE:~$ env > LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd= > 40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw= > 30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31: > *.arj=01;31:*.taz=01 > ;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.tx > z=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz= > 01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst= > 01;31:*.tzst=01;31:* > .bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31 > :*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01 > ;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz= > 01;31:*.cab=01;31:*. > jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=0 > 1;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xp > m=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35 > :*.mng=01;35:*.pcx=0 > 1;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.w > ebm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;3 > 5:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01 > ;35:*.flc=01;35:*.av > i=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.x > wd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35: > *.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00 > ;36:*.mka=00;36:*.mp > 3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*. > opus=00;36:*.spx=00;36:*.xspf=00;36: > SSH_CONNECTION=192.168.24.24 44134 192.168.24.100 12323 > LANG=en_GB.utf8 > XDG_SESSION_ID=80 > USER=christian > PWD=/home/christian > HOME=/home/christian > LC_CTYPE=en_GB.UTF-8 > SSH_CLIENT=192.168.24.24 44134 12323 > SSH_TTY=/dev/pts/0 > MAIL=/var/mail/christian > TERM=xterm-256color > SHELL=/bin/bash > LS_OPTIONS=--color=auto > SHLVL=1 > LOGNAME=christian > XDG_RUNTIME_DIR=/run/user/1001 > PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/us > r/local/games:/usr/games > _=/usr/bin/env > > Then change to superuser by su > > root@debianSE:/home/christian# id > uid=0(root) gid=0(root) groups=0(root) > context=staff_u:staff_r:staff_t:s0 > root@debianSE:/home/christian# env > LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd= > 40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw= > 30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31: > *.arj=01;31:*.taz=01 > ;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.tx > z=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz= > 01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst= > 01;31:*.tzst=01;31:* > .bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31 > :*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01 > ;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz= > 01;31:*.cab=01;31:*. > jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=0 > 1;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xp > m=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35 > :*.mng=01;35:*.pcx=0 > 1;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.w > ebm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;3 > 5:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01 > ;35:*.flc=01;35:*.av > i=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.x > wd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35: > *.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00 > ;36:*.mka=00;36:*.mp > 3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*. > opus=00;36:*.spx=00;36:*.xspf=00;36: > SSH_CONNECTION=192.168.24.24 44134 192.168.24.100 12323 > LANG=en_GB.utf8 > XDG_SESSION_ID=80 > USER=root > PWD=/home/christian > HOME=/root > LC_CTYPE=en_GB.UTF-8 > SSH_CLIENT=192.168.24.24 44134 12323 > SSH_TTY=/dev/pts/0 > MAIL=/var/mail/root > SHELL=/bin/bash > TERM=xterm-256color > LS_OPTIONS=--color=auto > SHLVL=2 > LOGNAME=root > XDG_RUNTIME_DIR=/run/user/1001 > PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin > _=/usr/bin/env > > > When I now want to change the role to sysadm_r with newrole, the > password for the normal user is required and the resulting sessions > sets USER and LOGNAME to the normal user > > root@debianSE:~# id > uid=0(root) gid=0(root) groups=0(root) > context=staff_u:sysadm_r:sysadm_t:s0 > root@debianSE:~# env > LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd= > 40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw= > 30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31: > *.arj=01;31:*.taz=01 > ;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.tx > z=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz= > 01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst= > 01;31:*.tzst=01;31:* > .bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31 > :*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01 > ;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz= > 01;31:*.cab=01;31:*. > jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=0 > 1;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xp > m=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35 > :*.mng=01;35:*.pcx=0 > 1;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.w > ebm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;3 > 5:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01 > ;35:*.flc=01;35:*.av > i=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.x > wd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35: > *.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00 > ;36:*.mka=00;36:*.mp > 3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*. > opus=00;36:*.spx=00;36:*.xspf=00;36: > USER=christian > PWD=/home/christian > HOME=/home/christian > LC_CTYPE=en_GB.UTF-8 > SHELL=/bin/bash > TERM=xterm-256color > LS_OPTIONS=--color=auto > SHLVL=1 > LOGNAME=christian > PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin > _=/usr/bin/env > > > Is this the desired behavior? I would like it to stay as root. Hmmm...Fedora policy doesn't allow use of su from staff_t; you have to newrole first and then su. Regardless, newrole uses the login uid if available, falling back to the real uid if not, for the identity used to re-authenticate and to set up the environment. If you want the environment preserved, use -p.