- Как узнать домашнюю директорию любого пользователя Linux
- Где хранится системная информация о домашних каталогах пользователей в Linux
- Команда pwd в Unix
- Оператор ~ (тильда) в Debian
- Не могу войти в домашний каталог. Временный каталог будет использован.
- Olej
- Olej
- Xander
- Xander
- Вложения
- Olej
- Xander
- Olej
- Xander
- Olej
- Xander
- Olej
- Olej
- oko
- Перенос домашних каталогов пользователей при переходе с ОС Astra Linux Common Edition 2.12 на ОС Astra Linux Special Edition 1.7
- Перенос настроек окружения рабочего стола Fly
- Действия до переустановки ОС
- Действия после переустановки ОС
- Самостоятельный перенос пользователем своего домашнего каталога
- Действия до переустановки ОС
- Действия после переустановки ОС
Как узнать домашнюю директорию любого пользователя 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 можно так, поставив перед ним тильду ~ :
А теперь посмотреть содержимое этого файла:
[email protected]:~# cat ~ftp/welcome.msg Welcome, archive user %U@%R ! The local time is: %T This is an experimental FTP server. If you have any unusual problems, please report them via e-mail to .
Ну и то, к чему мы стремились: посмотреть путь к домашней директории пользователя:
Так гораздо удобнее, чем парсить и разбирать файл /etc/passwd . За нас всю эту работу делает операционная система! 😉
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉
Не могу войти в домашний каталог. Временный каталог будет использован.
Доброго времени суток! Переустановил ОС Astra Linux SE 1.6, без удаления каталога home. После добавления в домен и входом под доменовской учетной записью, возникла следующая ошибка. С чем может быть связано? Есть какие-либо решения?
Olej
New member
Прежде всего тем, что пользователь у вас по имени кажется вам тем же, но номер ему присвоен другой.
Показывайте:
Olej
New member
Xander
New member
Xander
New member
Прежде всего тем, что пользователь у вас по имени кажется вам тем же, но номер ему присвоен другой.
Показывайте:
Вложения
Olej
New member
Ну и чего же вы хотите?
Ваш текущий пользователь имеет uid:gid=3002:3005 (откуда вы их взяли?)
А каталог в старом /home принадлежит владельцу с uid:gid=1000:1000 . ну и ещё там у вас в /home по какому-то безобразию затесался root с 0:0 .
P.S. Никогда не показывайте простыни скриншотов — это вам не винЬдаус — копируйте с терминала только требуемые строки.
Xander
New member
Ну и чего же вы хотите?
Ваш текущий пользователь имеет uid:gid=3002:3005 (откуда вы их взяли?)
А каталог в старом /home принадлежит владельцу с uid:gid=1000:1000 . ну и ещё там у вас в /home по какому-то безобразию затесался root с 0:0 .
P.S. Никогда не показывайте простыни скриншотов — это вам не винЬдаус — копируйте с терминала только требуемые строки.
Olej
New member
Переустановить систему нормально.
У вас там в старом домашнем каталоге было что-то особо ценное? как память юности?
Даже если так:
— переименуйте старый домашний каталог в что-то мусорное типа XXX1
— установите чистую систему с новым домашним каталогом $HOME
— всё самое дорогое сердцу из старого каталога XXX1 перекопируете в новый $HOME, сменив владельца (команда chown)
— удалить безвозвратно XXX1
Xander
New member
Переустановить систему нормально.
У вас там в старом домашнем каталоге было что-то особо ценное? как память юности?
Даже если так:
— переименуйте старый домашний каталог в что-то мусорное типа XXX1
— установите чистую систему с новым домашним каталогом $HOME
— всё самое дорогое сердцу из старого каталога XXX1 перекопируете в новый $HOME, сменив владельца (команда chown)
— удалить безвозвратно XXX1
Спасибо. Вообще переустанавливал из-за неудачного входа пользователей домена. Где-то всё нормально, а где-то ни один пользователь домена не входит.
Olej
New member
Я не знаю про ваши домены . да и знать не хочу — но это всё надстройка над основными принципами файловой системы Linux:
— вы видите пользователя и представляете его себе по имени .
— но система знает о пользователях только их численные номера (id пользователя + id группы) .
— и все разрешения в системе распространяются только на номера пользователей
Вы можете создавать и пересоздавать пользователя в системе, и считать, что это всё тот же для вас пользователей по имени . но система каждый раз может присваивать создаваемому пользователю новый номер, и это для неё буду совершенно разные пользователи.
Xander
New member
Я не знаю про ваши домены . да и знать не хочу — но это всё надстройка над основными принципами файловой системы Linux:
— вы видите пользователя и представляете его себе по имени .
— но система знает о пользователях только их численные номера (id пользователя + id группы) .
— и все разрешения в системе распространяются только на номера пользователей
Вы можете создавать и пересоздавать пользователя в системе, и считать, что это всё тот же для вас пользователей по имени . но система каждый раз может присваивать создаваемому пользователю новый номер, и это для неё буду совершенно разные пользователи.
Olej
New member
olej@nvidia:~$ id uid=1000(olej) gid=1000(olej) группы=1000(olej),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),120(scanner),130(sambashare),132(vboxusers),133(docker)
(я показываю не в Astra, но это не имеет никакого значения)
uid = 1000 — id текущего пользователя
gid = 1000 — id его собственной группы
ниже перечислены группы в котоую включён пользователь с их id.
Вот так можете посмотреть id произвольного пользователя в системе:
olej@nvidia:~$ id sshd uid=123(sshd) gid=65534(nogroup) группы=65534(nogroup)
Olej
New member
olej@nvidia:~$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync .
olej@nvidia:~$ cat /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:syslog,olej tty:x:5: .
Только не вздумайте там ничего «поправить» — это первичная информация всякого UNIX — разнесёте систему вдребезги!
P.S. Если заинтересуют подробности формата этих строк (а там есть много любопытного) — читайте здесь: теневые пароли
oko
New member
to Xander
Гуглить в сторону правки файла /etc/fstab и его теневого аналога в Astra Linux Special Edition, заставив систему считать «старый» /home/имя_пользователя «новым». А также в сторону chown -R имя_пользователя /home/имя_пользователя. И разбираться с setfacl и установкой мандатных меток контроля целостности на данный каталог для данного пользователя.
Если же требуется быстрое решение, то да: смонтировать от sudo|root этот «старый» раздел в какой-нибудь /mnt/1 -> скопировать данные на съемный носитель -> переставить Astra Linux с 0 с полным затиранием старых разделов -> выполнить единичный вход под доменной учеткой нужного пользователя (система создаст новый /home/имя_пользователя) -> перенести данные со съемного носителя во вновь созданный /home/имя_пользователя.
Перенос домашних каталогов пользователей при переходе с ОС Astra Linux Common Edition 2.12 на ОС Astra Linux Special Edition 1.7
На момент публикации данной статьи переход с Astra Linux Common Edition 2.12 на Astra Linux Special Edition 1.7 возможен только путем переустановки ОС. При переустановке ОС без проведения дополнительных мероприятий все локальные домашние каталоги пользователей могут быть утеряны. Далее описываются действия, которые могут быть выполнены пользователем, не имеющим прав администратора, для сохранения и восстановления собственного домашнего каталога (т.е. пользовательских данных и настроек). Данные действия выполняются пользователем и ответственность за результат их выполнения полностью лежит на нем .
В статье подразумевается, что в соответствии с общепринятой практикой все данные и настройки пользователя находятся в его домашнем каталоге.
Описанные ниже действия по сохранению домашнего каталога (как локального, так и монтируемого) могут также быть применены для самостоятельного создания пользователем резервных копий своего домашнего каталога.
Администраторам систем для сохранения и переноса пользовательских данных следует использовать статью Архивирование и восстановление файлов с сохранением мандатных атрибутов.
Корректная работа обновленных приложений с настройками из предыдущих версий на целевой ОС не гарантируется.
Перенос настроек окружения рабочего стола Fly
Для переноса настроек окружения рабочего стола Fly можно использовать инструмент «Экспорт/Импорт «, встроенный в утилиту fly-admin-theme (Меню «Пуск» — Панель управления — Рабочий стол — Оформление Fly).
Действия до переустановки ОС
- Подключить USB-накопитель.
- Перейти в Меню «Пуск» — Панель управления — Рабочий стол — Оформление Fly и нажать кнопку Экспорт.
- Указать USB-накопитель или доступный для записи сетевой ресурс для сохранения файла настроек fly-settings.tgz и нажать Сохранить .
Действия после переустановки ОС
- Подключить USB-накопитель с файлом настроек.
- Перейти в Меню «Пуск» — Панель управления — Рабочий стол — Оформление Fly и нажать кнопку Импорт.
- Указать место расположения fly-settings.tgz .
- Нажать Да для перезапуска сессии.
Самостоятельный перенос пользователем своего домашнего каталога
Описанная процедура не требует совпадения идентификаторов пользователя в старой и новой ОС, однако, администраторам системы при создании учетных записей в новой системе следует использовать имена и числовые идентификаторы пользователей (UID) и групп (GID ), использовавшиеся в старой ОС. Также следует воспроизвести участие пользователей в группах. Нарушение этой рекомендации может привести к неработоспособности некоторых пользовательских приложений.
Для переноса локальных настроек и данных пользователя можно перенести домашний каталог пользователя на целевую ОС.
Действия до переустановки ОС
- Выполнить вход в систему со своей учетной записью.
- Подключить USB-накопи тель.
- Примонтировать раздел USB-накопителя с помощью кнопки Подключить всплывающего окна при подключении носителя:
- Открыть терминал, нажав .
- Опр еделить точку монтирования раздела на USB-накопителе с помощью команды:
Примерный вывод команды будет иметь вид:
Создать арх ив домашнего каталога пользователя кома ндой:
При создании архива домашнего каталога можно исключить подкаталоги, заведомо не содержащие полезных данных, с помощью опции —exclude . Например:
tar —xattrs —acls —exclude=.cache —exclude=.local/share/Trash -cvzf /media/user1/4ee4ca32/backup.tar.gz $HOME
Можно создать резервную копию каталогов, содержащих только необходимые данные. П ервоочередным каталогом с настройками приложений пользователя для переноса является ~/.config , настройки окружения рабочего стола, находящиеся в каталогах ~/.fly и ~/Desktops , также можно перенести описанным способом. Прочие каталоги вида ~/. <имя_программы>переносятся на усмотрение пользователя. Например:имя_программы>
Действия после переустановки ОС
- Выполнить вход в систему со своей учетной записью.
- Подключить USB-накопитель, примонтировать раздел с копией домашнего каталога и определить точку монтирования, как описано выше.
- Выполнить восстановление из архива с помощью команды: