Есть ли способ заставить System.Diagnostics.Process уважать второстепенные группы пользователей Linux? - PullRequest
3 голосов
/ 17 мая 2019

Помощь!

Запуск .NET CORE в Linux .

У меня проблемы с открытием файла, к которому у меня есть права доступа для чтения на основе вторичной группы в Linux. Чтобы проверить это, я просто выполняю команду Linux "id" для текущего пользователя:

var proc = new System.Diagnostics.Process();
proc.StartInfo.UserName = "JohnNonRootUser";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = "id";
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();

while (!proc.StandardOutput.EndOfStream)
{
    sb.AppendLine(proc.StandardOutput.ReadLine());
}
var resID = sb.ToString();

Результат:

uid=1002(JohnNonRootUser) gid=1002(JohnNonRootUser) groups=1002(JohnNonRootUser)

Но если я делаю это вручную из командной строки, это правильно:

JohnNonRootUser@mybox:/$ id
uid=1002(JohnNonRootUser) gid=1002(JohnNonRootUser) groups=1002(JohnNonRootUser),1003(SomeOtherGroup)

Может кто-нибудь дать мне знать, как мне обойти это, пожалуйста?

...