On 2/18/25 4:26 AM, Daniel P. Berrangé wrote:
On Mon, Feb 17, 2025 at 03:11:56PM -0500, Laine Stump wrote:
> On 2/17/25 5:28 AM, Daniel P. Berrangé wrote:
>> On Mon, Feb 17, 2025 at 02:14:49AM -0500, Laine Stump wrote:
>>> But sometimes XDG_RUNTIME_DIR isn't set in the user's environment.
>>
>> Do you have examples of scenarios in which this happens, and
>> yet the /run/user/NNNN directory is still being created, as
>> that rather sounds like something is broken outside of libvirt.
>
> After seeing the bug report, I replicated the situation by ssh'ing in as a
> user that hadn't previously logged in, and then unsetting XDG_RUNTIME_DIR. I
> hadn't thought there might be some other case where the user could be logged
> in but XDG_RUNTIME_DIR had never been set.
>
> But after seeing your question I tried running
>
> sudo $someuser virsh list
NB, that is the classic sudo usage trapdoor, because they didn't
make "-i" (aka --login) the default, so your environment is not
populated correctly.
I'd hope that when passing sudo -i ... it will do the right
thing
It seems not. If I login as $someuser, start a guest, then in a separate
terminal window from root run:
sudo -u $someuser -i virsh list
It returns an empty list (the same as if I omit the -i). By running the
same command without "virsh list", I'm given a shell instance, and
within that shell I can see that $UID, $USER, and $EUID are all set, but
$XDG_RUNTIME_DIR is not.