Я пишу программу, намереваясь запустить ее с помощью демона/сервиса/нет- войдите в систему пользователя aaa.
Пользователь aaa является частью группыshareabc иsharedef.
Файл конфигурации для этой программы будет выглядеть так:
Код: Выделить всё
{
... other config ...
"locations": [
{
"id": "workflow1",
"location": "/shr/abc",
"group": "shareabc"
},
{
"id": "workflow2",
"location": "/shr/def",
"group": "sharedef"
},
],
... other config ...
}
- принадлежит root:shareabc
Код: Выделить всё
/shr/abc - принадлежит root:sharedef
Код: Выделить всё
/shr/def
Какой код C# мне использовать нужно сделать так, чтобы создавалась папка с владельцем aaa:shareabc вместо aaa:aaa?
Запуск программы от имени пользователя aaa группыshareabc не является решением, так как:
- Есть некоторые файлы, которые должны быть aaa:aaa, и есть другие, которые должно быть aaa:shareabc. Изменение текущего пользователя/группы или изменение настроек файловой системы по умолчанию просто сдвигают проблему, а не решают ее.
- Я столкнулся бы с той же проблемой, когда он попытается записать в папку /shr/def с использованием владельца aaa:sharedef.
Код: Выделить всё
Directory.CreateDirectory("/shr/abc/myfolder1", UnixFileMode.UserRead | UnixFileMode.UserWrite | UnixFileMode.UserExecute | UnixFileMode.GroupRead | UnixFileMode.GroupWrite | UnixFileMode.GroupExecute | UnixFileMode.OtherRead | UnixFileMode.OtherExecute);Подробнее здесь: https://stackoverflow.com/questions/791 ... ns-c-sharp
Мобильная версия