Использование .NET Core, C #, Linux
Я немного обыскал и не могу ничего найти. Может быть, это невозможно, и мне нужен другой подход?
Может ли кто-нибудь указать мне, как получить список каталогов для заданного пути для определенного имени пользователя?
Я использую службу веб-приложений как Root, но мне нужно проверить и вернуть каталоги и файлы для данного имени пользователя (пароль не доступен) - чтобы сообщить о каталогах и файлах, к которым данное имя пользователя имеет доступ для чтения.
Скажите, например, "/ opt / mydata /", и там у меня будет несколько каталогов, которые я буду создавать вручную и устанавливать разрешения для каждой группы пользователей. То есть «/ opt / mydata / user_1_readable» будет возвращено, когда я создаю список каталогов для user1 (потому что этот пользователь находится в соответствующей группе разрешений, или является владельцем, или он установлен для всех для чтения), но не будет возвращен для user2 (этот пользователь не в правильной группе).
По сути, я хочу «выдать себя за» или в Linux, сделать эквивалент «sudo su user1» и сообщить, какие каталоги / файлы доступны для чтения в «/ opt / mydata /» для данного пользователя.
Я могу получить список каталогов и файлы, работающие как Root. Что я не могу сделать / не знаю, как получить список каталогов для конкретного пользователя. Все примеры, которые я нашел и попробовал, относятся только к Windows Identity и Windows Security.
например. Я нашел этот пример, но он, кажется, относится к «Mono», который я не запускаю, но по сути я действительно хочу сделать что-то вроде этого:
// Impersonate a user
using (WindowsIdentity newId = new WindowsIdentity("user1"))
using (WindowsImpersonationContext impersonatedUser = newId.Impersonate())
{
var content = _fileProvider.GetDirectoryContents(uri);
}
Есть какая-нибудь сторонняя библиотека или другой способ, пожалуйста?
Ресурс:
Изменить текущего пользователя Linux в приложении C #, работающем с Mono?