Ensure Polyphemus-Mitigation and properly drop privileges
authorFRIGN <dev@frign.de>
Wed, 7 Sep 2016 11:32:29 +0000 (13:32 +0200)
committerMarkus Teich <markus.teich@stusta.mhn.de>
Wed, 7 Sep 2016 22:36:45 +0000 (00:36 +0200)
commit22eba05f3683c12fa6a5f898d08c33704c9fbb73
treeb0e2da56c3082d2f803600d1b0a1ac46f513e31c
parent04143fd68dbc656905714eff5c208fadb3464e25
Ensure Polyphemus-Mitigation and properly drop privileges

Don't hide privilege drops inside readpw() and actually make it
configurable what you are dropping to in config.h.

The privilege drop comes after opening the Display because the
user "nobody" with "nogroup" can't do that.

So why do I call this strategy the Polyphemus-Mitigation?

"""
After the giant returns in the evening and eats two more of the men,
Odysseus offers Polyphemus some strong and undiluted wine given to him
earlier on his journey. Drunk and unwary, the giant asks Odysseus his
name, promising him a guest-gift if he answers. Odysseus tells him
"Οὖτις", which means "nobody" and Polyphemus promises to eat this
"Nobody" last of all. With that, he falls into a drunken sleep. Odysseus
had meanwhile hardened a wooden stake in the fire and now drives it into
Polyphemus' eye. When Polyphemus shouts for help from his fellow giants,
saying that "Nobody" has hurt him, they think Polyphemus is being
afflicted by divine power and recommend prayer as the answer.
"""

(source: https://en.wikipedia.org/wiki/Polyphemus)
config.def.h
config.mk
slock.c