Page MenuHomeFreeBSD

The daemon(8) -u option should set USER, HOME and SHELL environment variables
ClosedPublic

Authored by sobomax on Aug 12 2022, 12:02 AM.
Tags
None
Referenced Files
F165238119: D36148.id109209.diff
Fri, Aug 7, 2:12 AM
F165186646: D36148.id109209.diff
Thu, Aug 6, 2:52 PM
Unknown Object (File)
Thu, Aug 6, 10:50 AM
Unknown Object (File)
Wed, Aug 5, 9:18 AM
Unknown Object (File)
Sat, Jul 25, 10:00 PM
Unknown Object (File)
Tue, Jul 21, 9:04 AM
Unknown Object (File)
Thu, Jul 16, 11:04 PM
Unknown Object (File)
Tue, Jul 14, 1:11 AM
Subscribers

Details

Summary

Unlike what su, jexec, sudo etc while running program under specific user, the daemon(8) does not set USER, HOME and SHELL environment variables just leaving them be at their current values. This is probably not what user expects in such situation.

Current behavior:

$ sudo daemon -u nobody printenv; sleep 1
[...]
USER=root
HOME=/root
SHELL=/bin/sh
[...]
Test Plan

Expected behavior:

$ sudo daemon -u nobody printenv; sleep 1
USER=nobody
HOME=/nonexistent
SHELL=/usr/sbin/nologin

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped