On Fri, Jan 19, 2018 at 11:34:37AM +0100, Dominick Grift wrote:
> On Fri, Jan 19, 2018 at 11:19:51AM +0100, Dominick Grift wrote:
> > The default_type functionality is too limited because it assumes that all 
> > login programs associate the same type with a given role
> > 
> > This is not the case
> > 
> > For example:
> > 
> > default_type for local_login: joe.role:joe.type
> > default_type for sshd: joe.role:joe_ssh_server.type
> > default_type for cockpit joe.role:joe_cockpit_bridge.type
> 
> The thing is that login programs these day's often dont just run a shell on 
> behalf of users directly.
> There is often an intermediate process that should not be associated with the 
> shell type ideally
> 
> For example sshd uses pam_selinux to associate a context with the privileged 
> user sshd process. This process needs
> all kinds of extra permissions for tunneling, forwarding, chroots etc.
> 
> this privileged process then runs a shell on half of the user:
> 
> sshd -> user "priv" sshd process -> user shell
> 
> This works because it uses pam_selinux for the user "priv" sshd manual 
> process transition, and then i can use a transparent automatic type 
> transition to associate a context with the shell (user_sshd.type -> shell -> 
> user.type)
> 
> Same with cockpit:
> cockpits_session -> user cockpit bridge -> user shell
> 
> unlike local_login:
> login -> user shell

I other words: There is no such thing as a "default_type". The default type 
associated with a given role can vary per login program.

> 
> > 
> > etc
> > 
> > So pam_selinux "select_context" can only support a single login program due 
> > to this
> > 
> > I do not understand why default_type is needed in the first place. The 
> > contexts/users/ file is more specific:
> > 
> > /etc/selinux/TYPE/contexts/users/joe.user:
> > sys.role:login.type:s0 joe.role:joe.type:s0 joe1.role:joe1.type:s0
> > sys.role:sshd.type:s0 joe.role:joe_ssh_server.type:s0 
> > joe1.role:joe1_ssh_server.type:s0
> > sys.role:cockpit_session.subj:s0 joe.role:joe_cockpit_bridge.type:s0 
> > joe1:joe1_cockpit_bridge.type:s0
> > 
> > ie. its already specified that for example joe1.type is default type for 
> > joe1.role for local_login and that joe1_ssh_server.type is default type for 
> > joe1.role for sshd
> > 
> > So unless i am overlooking something, the default_type file is redundant 
> > and it actually adds an extra file to configure
> > 
> > -- 
> > Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8  02D5 3B6C 5F1D 2C7B 6B02
> > https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
> > Dominick Grift
> 
> 
> 
> -- 
> Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8  02D5 3B6C 5F1D 2C7B 6B02
> https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
> Dominick Grift



-- 
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

Reply via email to