作为后台服务/应用程序运行时,如何获取在 Linux 中控制 GUI 的当前帐户的用户名?

问题描述 投票:0回答:0

我有一个场景,我需要将我的应用程序部署为在后台运行的具有管理员权限的服务。 该应用程序是使用 C# .Net 创建的 启动服务的例子:

sudo systemctl start example.service

但我需要获取使用 linux 操作系统(例如 ubuntu)的当前活动帐户的用户名。我需要用户名,因为我需要构建用户文档路径,例如:

/home/username/Documents

在那里存储一些文件。它需要位于用户文档路径中,因为会有另一个没有管理员权限的应用程序主动修改那里的文件,所以我不能将文件放在 /usr/share 中,因为它在这里需要管理员权限。

我在终端中尝试了一些命令,例如here

sudo echo $USER

但他们都没有给我想要的。作为后台服务运行时,它要么给我 root 要么为空,而不是当前帐户的用户名

“last”和“who”等其他命令为我提供了当前登录用户名的列表,但它没有告诉我当前哪个用户正在控制显示/用户界面。

最坏的情况是我需要在 /usr/share/my_own_folder 中更改我自己的文件夹以允许任何人读/写该文件夹中的任何内容 还有其他选择吗?谢谢你。

c# linux systemd
© www.soinside.com 2019 - 2024. All rights reserved.