NETCore Linux Sudo编写常规用户可写/拥有的文件



所以我在Linux上从名为"x"的用户帐户运行此命令:

sudo dotnet App.dll

App.dll确实做到了:

File.WriteAllText("App.txt", "Text");

"x"或普通用户无法对该文件进行写访问。它归root所有。我如何写它,使它不是一个根用户文件,而是在从sudo运行时?我知道我可以授予文件用户名的访问权/所有权,但如果我不知道用户名是"x",该怎么办?

我对Linux知之甚少。我只是在写一个简单的工具来配置一些文件。它需要写一些root用户拥有的文件,也需要写一些用户拥有的文档。

我甚至不确定我的问题是否有意义。我想写一个没有sudo应用程序执行中的(锁定的(图标覆盖的文件。

经过更激烈的谷歌搜索,我发现我可以通过运行获得调用sudoUIDGID的用户

env | grep SUDO

或通过C#:

var groupId = int.Parse(Environment.GetEnvironmentVariable("SUDO_GID"));
var userId = int.Parse(Environment.GetEnvironmentVariable("SUDO_UID"));
var user = Environment.GetEnvironmentVariable("SUDO_USER");

所以我可以执行:

chgrp GID File.txt
chown UID File.txt

或使用/bin/bash -c "command":的Process.Start

var command1 = $"chgrp {groupId} Test.txt";
var command2 = $"chown {userId} Test.txt";

以将该文件提供给启动CCD_ 5的用户。

最新更新