как узнать домашнюю директорию пользователя linux

Как узнать домашнюю директорию любого пользователя Linux

Для того, чтобы правильно и безопасно хранить данные на сервере, (особенно, если на этом сервере несколько пользователей), следует точно знать, где располагаются их домашние папки, до которых у пользователей есть доступ (у каждого в свою, но нет доступа в чужие папки с чужими данными). Например, для того, чтобы дать пользователю доступ по ftp только к его данным или подсказать полный путь до его www-директории. В этой статье рассмотрим то, как узнать домашнюю директорию любого пользователя Linux несколькими способами.

Где хранится системная информация о домашних каталогах пользователей в Linux

login : password : UID : GID : GECOS : home : shell

Поэтому, можно в цикле обходить этот файл в поиске записи нужного пользователя, разбивать строку на подстроки и брать значение 6-го поля. Но это слишком длинный способ. Есть короче и проще. 😉

Команда pwd в Unix

Оператор

Другой способ того, как определить домашнюю директорию текущего пользователя. Достаточно посмотреть значение оператора

Результат не сильно отличается от предыдущего, но к

можно добавлять дополнительные пути к папкам и/или файлам пользователя, используя её как точку отсчёта в домашней директории пользователя. Что сильно облегчает работу с написанием относительных путей (относительно не только корня файловой системы, но и корня домашней папки пользователя).

Ещё одним полезным свойством

А теперь посмотреть содержимое этого файла:

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

Источник

Навигация по файлам и директориям

В прошлый раз мы хаотично вводили текст в командную строку Linux и получали сообщения об ошибках. Все это время мы находились внутри домашнего каталога. Сегодня мы попытаемся разобраться как перемещаться по папкам при помощи команд и просматривать их содержимое.

Но для начало необходимо понять устройство файловой структуры Linux. Она представляет собой иерархическую структуру. То есть файловая система организована на подобии директорий (они же папки и каталоги), в которых расположены иные директории и файлы. Верхняя директория файловой системы называется корневой директорией. Внутри корневой директории расположены файлы и директории, которые содержат файлы и директории.

В графическом интерфейсе структура директорий выглядит следующим образом.

В отличии от файловой организации Windows, где корневыми директориями являются диски, в Linux есть единственное дерево и только одна корневая директория, которая не ассоциируется с каким либо физическим дисковым устройством. Различные диски могут быть подключены как поддеревья (директории) внутри этого дерева.

Читайте также:  Атлант что это такое в медицине

Разморозим нашу виртуальную машину и сделаем первые шаги в освоении организации файловой структуры Linux 🙂

Рабочая директория и её содержание

Так как интерфейс командной строки не может графически показать файловую структуру, существует иной способ ее представления. Представим, что дерево файлов является лабиринтом, в котором мы находимся. В каждый момент мы находимся в одной из директорий данного лабиринта. Внутри нее мы видим путь к родительской директории, файлы и пути во вложенные директории.

Директория в которой мы находимся называется рабочей директорией. Чтобы узнать имя рабочей директории, воспользуемся командой pwd (print working directory — вывести рабочую директорию).

Введем команду pwd в окно терминала.

Источник

Как узнать домашнюю директорию любого пользователя Linux

Для того, чтобы правильно и безопасно хранить данные на сервере, (особенно, если на этом сервере несколько пользователей), следует точно знать, где располагаются их домашние папки, до которых у пользователей есть доступ (у каждого в свою, но нет доступа в чужие папки с чужими данными). Например, для того, чтобы дать пользователю доступ по ftp только к его данным или подсказать полный путь до его www-директории. В этой статье рассмотрим то, как узнать домашнюю директорию любого пользователя Linux несколькими способами.

Где хранится системная информация о домашних каталогах пользователей в Linux

login : password : UID : GID : GECOS : home : shell

Поэтому, можно в цикле обходить этот файл в поиске записи нужного пользователя, разбивать строку на подстроки и брать значение 6-го поля. Но это слишком длинный способ. Есть короче и проще. 😉

Команда pwd в Unix

Оператор

Другой способ того, как определить домашнюю директорию текущего пользователя. Достаточно посмотреть значение оператора

Результат не сильно отличается от предыдущего, но к

можно добавлять дополнительные пути к папкам и/или файлам пользователя, используя её как точку отсчёта в домашней директории пользователя. Что сильно облегчает работу с написанием относительных путей (относительно не только корня файловой системы, но и корня домашней папки пользователя).

Ещё одним полезным свойством

А теперь посмотреть содержимое этого файла:

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

Источник

Как найти домашний каталог пользователя в linux или unix?

Как найти домашний каталог произвольного пользователя из Grails? В Linux это часто /home / user. Однако в некоторых ОС, таких как OpenSolaris, например, путь /export/home/user.

Читайте также:  как ребенок знает что ему пора рождаться

13 ответов

для UNIX-подобных систем вы можете выполнить» echo

username » использование оболочки (поэтому используйте Runtime.exec() для выполнения <"/bin/sh", "-c", "echo

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

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

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

попробуйте это на Java:

для произвольного пользователя, а на сервер:

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

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

вот реальный случай и решение:

у вас есть скрипт, который пользователь должен запустить через судо. Скрипт должен получить доступ к домашней папке пользователя. Вы не можете ссылаться

«. Он по-прежнему работает так, как вы ожидаете.

Я предполагаю, что вы хотите найти домашний каталог другого пользователя. Очевидно, получение «пользователя».главная » свойство будет самый простой способ получить текущий домашний каталог пользователя.

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

теперь технически у нас должен быть поток, ожидающий stdout и stderr, поэтому буферы не заполняются и не блокируют процесс, но я уверен, что буфер может по крайней мере содержать одно имя пользователя. Кроме того, вы можете проверить результат, чтобы увидеть, начинается ли он с

root (или любое имя пользователя, которое вы использовали), чтобы убедиться, что пользователь существует и правильно оценивается.

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

чтобы найти домашний каталог для пользователя FOO в системе UNIX-ish, используйте

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

Источник

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

Как найти домашний каталог произвольного пользователя из Grails? В Linux это часто /home/user. Однако на некоторых ОС, например OpenSolaris, путь/export/home/user.

Читайте также:  Ацетат что за материал для очков

13 ответов

Для UNIX-подобных систем вам может потребоваться выполнить » echo

username » с помощью оболочки (поэтому используйте Runtime.exec() для запуска <"/bin/sh", "-c", "echo

username» кажется лучшим ответом. Я вижу так много людей, которые набирают «cd / home / username» вместо «cd

похоже, поможет, если вы вошли в систему как пользователь, чей домашний каталог вы ищете.

используя /bin/sh в другой ОС UNIX, вы можете получить только тильду (например, «

» ) вместо пути к домашней директории.

username а не просто echo

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

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

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

Попробуйте это на Java:

Для произвольного пользователя, в качестве веб-сервера:

Если вы пытаетесь сделать это для имени пользователя, которое вы не можете жестко закодировать, это может быть сложно. Конечно echo

Вот реальный мир и решение:

У вас есть script, который пользователь должен выполнить через sudo. script должен получить доступ к домашней папке пользователя. Вы не можете ссылаться на

«. Он по-прежнему работает так, как вы ожидаете.

$SUDO_USER» | bash) «эхо эхо? что?»

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

Я предполагаю, что вы хотите найти домашний каталог РАЗЛИЧНОГО пользователя. Очевидно, что получение свойства user.home было бы самым простым способом получить текущий домашний каталог пользователя.

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

Теперь технически мы должны ожидать поток на stdout и stderr, чтобы буферы не заполняли и не блокировали процесс, но я надеялся, что буфер, по крайней мере, может содержать одно имя пользователя. Кроме того, вы можете проверить результат, чтобы узнать, начинается ли он с

root (или любого другого имени пользователя), чтобы убедиться, что пользователь существует и правильно его оценил.

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

Источник

Советы мастера