Как узнать домашнюю директорию любого пользователя Linux
Для того, чтобы правильно и безопасно хранить данные на сервере, (особенно, если на этом сервере несколько пользователей), следует точно знать, где располагаются их домашние папки, до которых у пользователей есть доступ (у каждого в свою, но нет доступа в чужие папки с чужими данными). Например, для того, чтобы дать пользователю доступ по ftp только к его данным или подсказать полный путь до его www-директории. В этой статье рассмотрим то, как узнать домашнюю директорию любого пользователя Linux несколькими способами.
Где хранится системная информация о домашних каталогах пользователей в Linux
При создании нового пользователя в Unix-системах, каждому пользователю обязательно домашний каталог. О том, где и как располагается запись о домашней директории пользователя в файле /etc/passwd , подробно описано в → этой статье. Для понимания вопроса сейчас требуется знать, что это предпоследнее (шестое) поле home в строке записи пользователя в этом файле:
login : password : UID : GID : GECOS : home : shell
Поэтому, можно в цикле обходить этот файл в поиске записи нужного пользователя, разбивать строку на подстроки и брать значение 6-го поля. Но это слишком длинный способ. Есть короче и проще. 😉
Команда pwd в Unix
Команда pwd выводит текущий путь к директории, в которой находится пользователь. Выполнив команду pwd , получим этот путь:
У пользователя root в Unix по умолчанию домашней директорией является /root .
Оператор
(тильда) в Debian
Другой способ того, как определить домашнюю директорию текущего пользователя. Достаточно посмотреть значение оператора
Результат не сильно отличается от предыдущего, но к
можно добавлять дополнительные пути к папкам и/или файлам пользователя, используя её как точку отсчёта в домашней директории пользователя. Что сильно облегчает работу с написанием относительных путей (относительно не только корня файловой системы, но и корня домашней папки пользователя).
Ещё одним полезным свойством
является то, что с помощью этого оператора можно получить путь до домашней директории любого пользователя в системе (если конечно пользователь есть в системе, то есть прописан в файле /etc/passwd , например посмотреть содержимое домашнего каталога пользователя ftp можно так, поставив перед ним тильду
А теперь посмотреть содержимое этого файла:
Ну и то, к чему мы стремились: посмотреть путь к домашней директории пользователя:
Так гораздо удобнее, чем парсить и разбирать файл /etc/passwd . За нас всю эту работу делает операционная система! 😉
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Выберите, то, чем пользуетесь чаще всего:
How to find a user's home directory on linux or unix?
How do I find the home directory of an arbitrary user from within Grails? On Linux it’s often /home/user. However, on some OS’s, like OpenSolaris for example, the path is /export/home/user.
![]()
directory constant help you in any way?
13 Answers 13
Normally you use the statement
to get the home directory of the user on any platform. See the method documentation for getProperty to see what else you can get.
There may be access problems you might want to avoid by using this workaround (Using a security policy file)
For UNIX-Like systems you might want to execute » echo
username » using the shell (so use Runtime.exec() to run <"/bin/sh", "-c", "echo
username' seems like the neatest answer. I see so many people who type 'cd /home/username' instead of 'cd
username' . Of course, you should never shell out, if you don't have to.
seems to do the trick if you're signed in as the user whose home directory you're looking for.
user ) is not one of the required features of such shell. Linux distributions use BASH as /bin/sh , for which tilde expansion works. If you run echo
using /bin/sh under some other UNIX OS, you can get back just the tilde (e.g. "
" ) instead of home directory path.
Try this on Java:
For an arbitrary user, as the webserver:
You can use the environment variable $HOME for that.
If you want to find a specific user’s home directory, I don’t believe you can do it directly.
When I’ve needed to do this before from Java I had to write some JNI native code that wrapped the UNIX getpwXXX() family of calls.
I assume you want to find the home directory of a DIFFERENT user. Obviously getting the «user.home» property would be the easiest way to get the current user home directory.
To get an arbitrary user home directory, it takes a bit of finesse with the command line:
Now technically, we should have a thread waiting on the stdout and stderr so the buffers don’t fill up and lock up the process, but I’d sure hope the buffer could at least hold a single username. Also, you might want to check the result to see if it starts with
root (or whatever username you used) just to make sure the user does exist and it evaluated correctly.
Hope that helps. Vote for this answer if it does as I’m new to contributing to SO and could use the points.
Как мне указать домашний каталог в Linux?
Команда ls используется для вывода списка файлов или каталогов в Linux и других операционных системах на базе Unix. Так же, как вы перемещаетесь в проводнике файлов или Finder с помощью графического интерфейса, команда ls позволяет по умолчанию вывести список всех файлов или каталогов в текущем каталоге и в дальнейшем взаимодействовать с ними через командную строку.
Как мне найти свой домашний каталог в Linux?
Чтобы перейти в домашний каталог, используйте «cd» или «cd
» Для перехода на один уровень вверх по каталогу используйте «cd ..». Для перехода к предыдущему каталогу (или назад) используйте «cd -»
Как мне вывести список содержимого домашнего каталога?
1.1 Список файлов и каталогов
Ваш домашний каталог имеет то же имя, что и ваше имя пользователя, например, ee91ab, и именно там хранятся ваши личные файлы и подкаталоги. Команда ls (строчная L и строчная S) перечисляет содержимое вашего текущего рабочего каталога.
Как мне найти свой домашний каталог?
Путь к вашему домашнему каталогу будет в верхней части дерева файлов в левой части файлового менеджера.
Как мне получить список файлов в каталоге?
См. Следующие примеры:
- Чтобы вывести список всех файлов в текущем каталоге, введите следующее: ls -a Это список всех файлов, включая. точка (.)…
- Чтобы отобразить подробную информацию, введите следующее: ls -l chap1 .profile. …
- Чтобы отобразить подробную информацию о каталоге, введите следующее: ls -d -l.
Каков полный путь к вашему домашнему каталогу?
Итак, если вы находитесь в своем домашнем каталоге, полный путь: с.т. как / home / sosytee / my_script . Для вашего домашнего каталога есть «ярлык»
, то есть вы также можете написать
/ my_script. Но это, конечно, приведет к разному пути для каждого пользователя.
Как мне открыть все файлы в каталоге в Linux?
Открыть файл в Linux
- Откройте файл с помощью команды cat.
- Откройте файл, используя команду less.
- Откройте файл с помощью команды more.
- Откройте файл с помощью команды nl.
- Откройте файл с помощью команды gnome-open.
- Откройте файл с помощью команды head.
- Откройте файл с помощью команды tail.
Текущий каталог?
Текущий каталог каталог, в котором пользователь работает в данный момент. Каждый пользователь всегда работает в каталоге. … Командная строка в bash, который является оболочкой по умолчанию в Linux, содержит имя пользователя, имя компьютера и имя текущего каталога.
В чем разница между корневым каталогом и домашним каталогом?
Корневой каталог содержит все остальные каталоги, подкаталоги и файлы в системе.
.
Разница между корневым и домашним каталогом.
| Корневая директория | Домашний каталог |
|---|---|
| В файловой системе Linux все находится в корневом каталоге. | Домашний каталог содержит данные конкретного пользователя. |
Какой у вас рабочий каталог?
Из Википедии, бесплатной энциклопедии. В вычислениях рабочий каталог процесса каталог иерархической файловой системы, если таковой имеется, динамически связанный с каждым процессом. Иногда его называют текущим рабочим каталогом (CWD), например, функцией BSD getcwd (3) или просто текущим каталогом.
Вывод домашнего каталога пользователя по его id
Доброго времени суток. Такой вопрос. Есть ли команда, которая выводит по id пользователя его домашний каталог. Так уж сложились звезды на этикетке коньяка, что есть пользователь v.pupkin, а домашний каталог у него v.popkin. И переименовать, Вы не поверите, мешает много факторов. И такой случай мешает в написании скриптов. Например:
Подозреваю конечно, что мне нужна доза RTFM, но и нагуглись тоже не смог. У самой id, как я понял, таких ключей нет.