如何让服务知道当前用户名

时间:2014-12-18 09:24:40

标签: linux upstart login-name

在Ubuntu中有一个以root用户身份运行的守护进程。 我必须知道守护进程的登录用户名或uid。

虽然我已经搜索并测试了像whoami这样的命令或功能,我是谁还是geteuid,但我没有得到我想要的结果。

有人能让我知道解决方案吗?

2 个答案:

答案 0 :(得分:1)

启动脚本运行时没有用户登录。

通常,守护进程由root启动,但有时,它们使用专用用户ID,因为软件是以这种方式编写的,或者是因为启动脚本以这种方式设置它们。例如,在基于Debian的发行版上,Web服务器以www-data运行,因此,如果有人以某种方式攻击Web服务器,则他们对系统的访问权限非常有限。但是如何配置它取决于哪个守护进程以及它的启动脚本和配置是什么样的。

如果它是您自己的守护程序而您没有编写它或将其配置为切换用户ID,则它将以root运行。

如果你的守护进程是某种服务器,它需要在运行时知道哪个客户端正在连接,(你真的需要重新解释你的问题但是)这主要是客户端如何连接到服务器的功能,而不是如何服务器已启动。

答案 1 :(得分:0)

像这样的小脚本可能会解决您的问题

echo "uid is ${UID}"
echo "username is ${USERNAME}"