Как найти корневой каталог пользователя на Linux или Unix?

после многих исследований я пытаюсь, как это работает, но я хочу знать, работает индекс или нет

public async Task<ActionResult> Index1(Recherche m)
    {
        //var rentals = userIndex(m);
        var userIndex = Builders<Utilisateur>.IndexKeys;
        var indexModel = new CreateIndexModel<Utilisateur>(userIndex.Ascending(x => x.login));
        await context.utilisateurs.Indexes.CreateOneAsync(indexModel).ConfigureAwait(false);

        var filter = new BsonDocument("login", "admin");

        var rentals = await context.utilisateurs.Find(filter).ToListAsync();
         var model = new userList
         {
             Utilisateurs = rentals,
             Motcle = m
         };
        return View(model);
    }
45
задан Dmitry Pashkevich 22 November 2013 в 16:05
поделиться

9 ответов

Для Подобных UNIX систем Вы могли бы хотеть выполниться" echo ~username" использование оболочки (так использование Runtime.exec() для выполнения {"/bin/sh", "-c", "echo ~username"}).

45
ответ дан Joachim Sauer 26 November 2019 в 20:52
поделиться

userdir префикс (например, '/home' или '/export/home') мог быть элементом конфигурации. Затем приложение может добавить произвольное имя пользователя к тому пути.

Протест: Это разумно не взаимодействует с ОС, таким образом, Вам не повезло бы, если бы это была система Windows с userdirs на различных дисках, или на Unix с домашним расположением dir как/home/f/foo,/home/b/bar.

0
ответ дан Jeff 26 November 2019 в 20:52
поделиться

Можно ли проанализировать/etc/passwd?

, например:

 cat /etc/passwd | awk -F: '{printf "User %s Home %s\n",  $1, $6}'
0
ответ дан Mark 26 November 2019 в 20:52
поделиться

Найдите обертку Java для getpwuid/getpwnam(3) функции, они просят у системы информацию о пользователе uid или именем для входа в систему, и Вы возвращаете всю информацию включая корневой каталог по умолчанию.

1
ответ дан Keltia 26 November 2019 в 20:52
поделиться

Для нахождения корневого каталога для пользовательского НЕЧТО в системе выхода UNIX используйте ~FOO. Для текущего пользователя используйте ~.

1
ответ дан Yuliy 26 November 2019 в 20:52
поделиться

Если Вы хотите найти корневой каталог определенного пользователя, я не полагаю, что можно сделать это непосредственно.

, Когда я должен был сделать это прежде от Java, я должен был написать некоторый собственный код JNI, который перенес семейство UNIX getpwXXX() вызовов.

3
ответ дан Alnitak 26 November 2019 в 20:52
поделиться

Можно использовать переменную среды $HOME для этого.

3
ответ дан Torsten Marek 26 November 2019 в 20:52
поделиться

Обычно Вы используете оператор

String userHome = System.getProperty( "user.home" );

для получения корневого каталога пользователя на любой платформе. См. документацию метода для getProperty для наблюдения то, что еще можно получить.

могут быть проблемы доступа, которых Вы могли бы хотеть избежать при помощи этот обходное решение (Используя файл политики безопасности)

69
ответ дан Community 26 November 2019 в 20:52
поделиться

For an arbitrary user, as the webserver:

private String getUserHome(String userName) throws IOException{
    return new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec(new String[]{"sh", "-c", "echo ~" + userName}).getInputStream())).readLine();
}
5
ответ дан 26 November 2019 в 20:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: