Невозможно войти в домашний каталог, временный каталог будет использоваться Astra Linux

Обновлено: 24.11.2024

Общий доступ к сетевым файлам (NFS) – это протокол, позволяющий обмениваться каталогами и файлами с другими клиентами Linux по сети. Общие каталоги обычно создаются на файловом сервере, на котором запущен серверный компонент NFS. Пользователи добавляют к ним файлы, которые затем предоставляются другим пользователям, имеющим доступ к папке.

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

Это часть нашей серии статей о Linux в Azure.

Из этой статьи вы узнаете:

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

Установка NFS-сервера

Вот как установить ядро ​​NFS — это компонент сервера, который позволяет машине предоставлять каталоги как общие ресурсы NFS.

В Ubuntu и Debian:

sudo apt-get update
sudo apt install nfs-kernel-server

В CentOS и Fedora:

yum -y установить nfs-utils
apt-get установить nfs-kernel-server

Создать корневой каталог NFS

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

sudo mkdir /mnt/myshareddir

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

Определить доступ для клиентов NFS в файле экспорта

Чтобы предоставить доступ клиентам NFS, нам нужно определить файл экспорта. Файл обычно находится в /etc/exports

Отредактируйте файл /etc/exports в текстовом редакторе и добавьте одну из следующих трех директив.

Все приведенные ниже директивы используют параметры rw , которые разрешают чтение и запись, sync , который записывает изменения на диск перед тем, как разрешить пользователям доступ к измененному файлу, и no_subtree_check , что означает, что NFS не проверяет, доступен ли каждый подкаталог. пользователю.

Для включения доступа к одному клиенту

Для включения доступа к нескольким клиентам

Чтобы разрешить доступ ко всей подсети

Как сделать общий ресурс NFS доступным для клиентов

Теперь вы можете сделать общий каталог доступным для клиентов с помощью команды exportfs. После выполнения этой команды необходимо перезапустить ядро ​​NFS.

Если у вас включен брандмауэр, вам также потребуется открыть доступ к брандмауэру с помощью команды sudo ufw allow.

Теперь, когда мы настроили сервер NFS, давайте посмотрим, как предоставить общий доступ к папке, определенной как общий ресурс NFS, с компьютером Linux, смонтировав его на локальном компьютере.

Установка клиентских пакетов NFS

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

В Ubuntu и Debian:

обновление sudo apt
установка sudo apt nfs-common

В CentOS и Fedora:

sudo yum установить nfs-utils

Временное подключение файлового ресурса NFS

Вы можете подключить папку NFS к определенному месту на локальном компьютере, известному как точка подключения, с помощью следующих команд.

  1. Создайте локальный каталог — это будет точка подключения общего ресурса NFS. В нашем примере мы назовем папку /var/locally-mounted.
    1. Подключите общий файловый ресурс, выполнив команду mount следующим образом. Если команда выполнена успешно, вывод невозможен.

    sudo mount -t nfs 192.168.20.100:/myshareddir /var/locally-mounted

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

    1. Чтобы убедиться, что общий ресурс NFS успешно смонтирован, выполните команду mount или df -h .

    Постоянное подключение файловых ресурсов NFS

    Удаленные каталоги NFS могут автоматически монтироваться при запуске локальной системы. Вы можете указать это в файле /etc/fstab. Чтобы файловый ресурс NFS монтировался локально при запуске, необходимо добавить в этот файл строку с соответствующими сведениями о файловом ресурсе.

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

    1. Создайте локальный каталог, который будет использоваться для подключения общей папки.
      1. Отредактируйте файл /etc/fstab с помощью команды nano или любого текстового редактора.
      2. Добавьте строку, определяющую общий ресурс NFS. Вставьте символ табуляции между каждым параметром. Он должен отображаться как одна строка без разрывов строк.

      Последние три параметра указывают параметры NFS (которые мы устанавливаем по умолчанию), дамп файловой системы и проверку файловой системы (обычно они не используются, поэтому мы устанавливаем их на 0).

      1. Теперь подключите общую папку с помощью следующей команды. При следующем запуске системы папка будет смонтирована автоматически.

      Azure NetApp Files: замена облачного сервера NFS

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

      Azure NetApp Files — это облачная служба, предлагающая высокопроизводительное файловое хранилище корпоративного класса для предприятий. Он поддерживает NFS версии 3.1 и выше.

      Azure NetApp Files поддерживает все типы производственных рабочих нагрузок и обеспечивает встроенную высокую доступность. Вы можете выбрать уровень и производительность службы, а также выполнять мгновенные снимки ваших данных.

      Экстремальная производительность файлов

      Используйте ведущую в отрасли технологию NetApp для переноса самых ресурсоемких файловых рабочих нагрузок Linux и Windows в Azure. Azure NetApp Files обеспечивает задержку менее миллисекунды и производительность, эквивалентную той, которую вы могли бы достичь с локальным сервером без операционной системы.

      Azure NetApp Files поддерживает три уровня производительности: Standard, Premium и Ultra. Вы можете предоставить общий доступ к файлам на любом уровне одним щелчком мыши.

      Интегрированное управление данными

      Azure NetApp Files интегрируется со сложными бизнес-нагрузками, такими как SAP HANA, высокопроизводительные вычисления (HPC), бизнес-приложения (LOB) и инфраструктура виртуальных рабочих столов (VDI). Для этих и многих других корпоративных рабочих нагрузок он предлагает интегрированное управление данными и осведомленность о приложениях для резервного копирования и моментальных снимков.

      Центральное управление

      Вы можете управлять файловыми ресурсами с помощью портала Azure или интерфейса командной строки, команд PowerShell или REST API, как и в любой другой службе Azure. Azure NetApp Files поддерживает несколько протоколов хранения в одной службе, включая NFSv3, SMB3.1.x и NFSv4.1. Это позволяет переносить рабочие нагрузки в облако по модели «подними и перенеси», не требуя изменения кода.

      Перенос с уверенностью

      При миграции больших корпоративных рабочих нагрузок передачи данных rsync недостаточно. С помощью Azure NetApp Files вы можете легко управлять крупномасштабной передачей данных и синхронизацией.

      Служба обеспечивает шифрование данных в соответствии со стандартом FIPS 140-2, управление доступом на основе ролей (RBAC), аутентификацию Active Directory и списки управления доступом (ACL). Azure NetApp Files соответствует основным отраслевым сертификатам, таким как HIPAA, SOC и GDPR. Эти и другие функции корпоративного уровня означают, что вы можете с полной уверенностью перенести любую корпоративную рабочую нагрузку в облако.

      Мы уже знаем, как создавать файлы определенного размера в Linux. Создание файлов заданного размера может быть полезным во многих случаях. Например, после развертывания нового файлового сервера вам может потребоваться проверить лимит загрузки, максимальный размер загрузки, скорость загрузки файлов и т. д. В таких случаях вы можете создавать файлы определенного размера и тестировать их на своем файловом сервере. Существует также специальный инструмент командной строки под названием «mktemp» для создания временных файлов и каталогов. Команда mktemp безопасно создает временный файл или каталог и печатает его имя. Все файлы и каталоги будут сохранены во временном каталоге системы, то есть /tmp. Таким образом, вам не нужно вручную очищать их. После перезагрузки системы временные файлы исчезнут.

      Учебник по команде mktemp с примерами

      Mktemp является частью пакета GNU coreutils. Так что не заморачивайтесь с установкой. Сейчас мы увидим несколько практических примеров.

      Чтобы создать новый временный файл, просто запустите:

      Вы увидите вывод, как показано ниже:

      Как видно из вывода, в каталоге /tmp создается новый временный файл со случайным именем «tmp.U0C3cgGFpk». Этот файл просто пустой файл.

      Вы также можете создать временный файл с указанным суффиксом. Следующая команда создаст временный файл с расширением «.txt»:

      Как насчет временного каталога? Да, это тоже возможно! Чтобы создать временный каталог, используйте параметр -d.

      Это создаст случайный пустой каталог в папке /tmp.

      Пример вывода:

      Все файлы будут созданы с разрешением u+rw, а каталоги — с разрешением u+rwx, без ограничений umask. Другими словами, результирующий файл будет иметь права на чтение и запись для текущего пользователя, но не для группы или других лиц.И результирующий каталог будет иметь права на чтение, запись и выполнение для текущего пользователя, но не разрешения для групп или других.

      Вы можете проверить права доступа к файлу с помощью команды «ls»:

      Проверьте права доступа к каталогу с помощью команды «ls»:

      Рекомендуемое чтение:

      Создавайте временные файлы или каталоги с произвольными именами с помощью команды mktemp

      Как я уже сказал, все файлы и каталоги создаются со случайными именами файлов. Мы также можем создать временный файл или каталог с произвольным именем. Для этого просто добавьте не менее 3 последовательных «X» в конце имени файла, как показано ниже.

      Точно так же, чтобы создать каталог, просто запустите:

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

      Кроме того, как вы могли заметить, X в имени файла заменены случайными символами. Однако вы можете добавить любой суффикс по вашему выбору.

      Например, я хочу добавить «блог» в конце имени файла. Следовательно, моя команда будет:

      Теперь у нас есть суффикс «блог» в конце имени файла.

      Если вы не хотите создавать какой-либо файл или каталог, вы можете просто выполнить пробный запуск, как показано ниже.

      Зачем нам вообще нужен mktemp?

      Вы можете задаться вопросом, зачем нам нужен «mktemp», если мы можем легко создавать пустые файлы с помощью команды «touch filename». Команда mktemp в основном используется для создания временных файлов/каталогов со случайным именем. Так что нам не нужно утруждать себя выяснением имен. Так как mktemp рандомизирует имена, конфликтов имен не будет. Кроме того, mktemp безопасно создает файлы с разрешением 600 (rw) и каталоги с разрешением 700 (rwx), поэтому другие пользователи не могут получить к нему доступ. Дополнительные сведения см. на справочных страницах.

      Как воспроизвести

      pip install -vvv --no-deps --no-cache-dir -U importlib-metadata==1.1.3

      Временное решение
      Отключить связку ключей

      Вывод

      Текст был успешно обновлен, но возникли следующие ошибки:

      msyim прокомментировал 12 июня 2020 г.

      Какое решение? У меня такая же проблема после перезагрузки Ubuntu 18.04

      JohnVillalovos прокомментировал 12 июня 2020 г.

      Есть ли какое-нибудь решение? У меня такая же проблема после перезагрузки Ubuntu 18.04

      Не решение, но в качестве обходного пути я добавил следующее в файл ~/.bashrc

      pradyunsg прокомментировал 30 августа 2020 г.

      AstraLuma прокомментировала 7 сентября 2020 г.

      Я только что получил это на Debian Testing, gnome.

      Однако в свежей среде этого не происходит. Только один с установленной поэзией.

      (Вероятно, добавление пакета ключей не по умолчанию.)

      psacawa прокомментировал 5 октября 2020 г. •

      прокомментировал kousu 29 декабря 2020 г. •

      Кроме того, это особенно мешает, если я работаю с реальным tty (например, Ctrl-Alt-F3) вместо эмулятора терминала с графическим интерфейсом. Там pip зависает, но не запрашивает, потому что приглашение открыто в X11, и я его не вижу -- и pip не может продолжить -- пока я не переключусь (Ctrl-Alt-F7) и отмените его там.

      прокомментировал kousu 30 декабря 2020 г.

      И во-вторых, очень

      kousu прокомментировал 1 января 2021 г. •

      поэтому при входе в систему через lightdm он появляется:

      и pip, чтобы напечатать это приглашение и оставить это «ВНИМАНИЕ: брелок ..»:

      Как только я это обнаружил, избавиться от него было легко:

      это плюс перезагрузка, успешно отключившая pip, беспокоит меня:

      sjlongland прокомментировал 2 января 2021 г.

      Требования к паролю только для установки пакета, когда пароль не нужен, раздражали, но, к счастью, для продолжения работы потребовалось всего несколько нажатий клавиши ESC.

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

      skrat прокомментировал 5 января 2021 г.

      Кто-нибудь может объяснить, почему появилось такое странное поведение? Или ссылку на документ, объясняющий это? Очень неприятно осознавать, что такой ключевой для экосистемы инструмент можно так легко испортить.

      прокомментировал zvolsky 8 января 2021 г.

      То же самое, Debian-Testing + KDE. Это действительно странное поведение (стиль MS Windows), особенно от pipenv. Брелок сообщает «Требуется какое-то приложение» вместо «Требуется pip». Модальный диалог приводит к тому, что все зависает, у него есть 2 варианта (Отмена/Открыть). При нажатии Cancel диалоговое окно немедленно повторяется. Пожалуйста, предотвратите это.

      micahscopes прокомментировал 14 января 2021 г.

      Я тоже это понимаю, и это очень смущает

      dan-1d прокомментировал 22 января 2021 г.

      Добавьте меня в список тех, кто потратил ЧАСЫ на поиски. Спасибо за обходной путь

      kousu прокомментировал 17 марта 2021 г. •

      Но gnome-keyring вернулся:

      Chromium не вызывает приглашение gnome-keyring, как это было раньше, поэтому я попытался полностью отключить его, а не решать только для людей. Но теперь единственное, что я нашел до сих пор, что вызывает это, это pip.

      Прокомментировал SchizoDuckie 20 мая 2021 г. •

      Хорошо, я добавлю один к миксу для всех вас.
      Я запускаю ansible на wsl2 и просто хочу обновиться до последней версии, для которой требуется python3 с pip3.

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

      $ sudo nano /usr/lib/python3/dist-packages/keyring/core.py
      Закомментируйте последнюю строку:

      Результат: Пип снова пылает, и я могу жить дальше.

      JelteF прокомментировал 1 июня 2021 г.

      У меня была проблема с WSL2: DISPLAY был установлен, но X-сервер не работал. Это привело к тому, что pip завис на связке ключей. Исправление для меня было просто:

      ShaneEverittM прокомментировал 7 июня 2021 г.

      У меня была проблема на WSL2, когда был установлен DISPLAY, но X-сервер не работал. Это привело к тому, что pip завис на связке ключей. Исправление для меня было просто:

      Это было для меня. Я выполнял некоторую переадресацию отображения через X-сервер для запуска Qemu с использованием WSL и забыл, что у меня установлен дисплей, но сервер отображения не запущен!

      analkumar2 прокомментировал 28 июня 2021 г.

      У меня была проблема на WSL2, когда был установлен DISPLAY, но X-сервер не работал. Это привело к тому, что pip завис на связке ключей. Исправление для меня было просто:

      Та же проблема. После запуска моего xserver он работал на WSL2.

      mzpqnxow прокомментировал 17 июля 2021 г.

      Я не уверен, что шпагат будет работать без брелока, но сброс настроек DISPLAY не помог :/

      У меня есть несколько серверов CentOS, которые используют центральную аутентификацию с помощью Winbind для нашего контроллера домена Windows Server. Это настроено таким образом, что если новый пользователь входит на сервер, для него локально создается новая папка /home/username.

      Я хотел бы хранить все каталоги /home на каждом сервере в одном месте (например, во внешней общей папке NFS), чтобы в сети была только одна копия домашней папки каждого пользователя.

      Участвуйте, чтобы выиграть еженедельные подарочные карты (от 100 евро), Oculus и наушники/колонки

      Конкурс завершается 27 марта 2022 г. Конкурсы Каждую неделю узнайте больше о том, как Red Hat может помочь вам добиться простоты и цифровых инноваций, и ответьте на вопрос. Детали конкурса Просмотреть все конкурсы

      33 ответа

      Это очень стандартно. Используйте автомонтирование, чтобы сделать процесс прозрачным. Делитесь домами всех через NFS с центрального сервера NFS (файлового сервера или NAS, не имеет значения).

      По автомонтированию, я предполагаю, что использую для этого autofs?

      Спасибо, я попробую и вернусь к вам.

      Сейчас у меня десятки тысяч пользователей на этой установке.

      Именно то, что я хочу услышать. Похоже, мне нужен стандартный общий ресурс NFS, который у меня есть, а затем настроить autofs для монтирования каждого пользователя / домашнего каталога при входе в систему. Это так работает?

      Да, обычно вы указываете /etc/auto.master на /etc/auto.home и настраиваете его там. Таким образом, он подключается только тогда, когда это необходимо, и не волнуется, если он отключается. Прекрасно работает. примерно так, как UNIX предполагается использовать сегодня.

      Но когда я вхожу через SSH, я сразу же выхожу из системы

      Я проверил /var/log/secure и увидел следующее:

      Если я изменю /etc/auto.home

      Затем я могу войти в систему, но папка с моим именем пользователя не создается

      Сал8273

      Похоже, /home/domain.local не существует. Также похоже, что в каталоге nas.domain.local:/mnt/Volume1 есть каталог с именем domain.local. В этом случае файл auto.home должен отражать путь самого низкого уровня, содержащий дома всех пользователей:

      Autofs не создает каталоги, а только монтирует их. Кроме того, вы должны сделать все необходимое, чтобы точка монтирования для дома пользователя была "/home/username".

      Спасибо, я внес некоторые изменения на основе вашего сообщения:

      У NAS теперь есть папка /mnt/Volume1/domain.local

      Но по-прежнему получаю отключение, когда я пытаюсь войти с SSH с моей учетной записью AD, эта ошибка находится в /var/log/secure

      Сал8273

      Попробуйте добавить прямое сопоставление для этого пользователя. Настройте строку *перед* общей строкой в ​​/etc/auto.home следующим образом:

      Это должно смонтировать домашний каталог пользователя из NAS напрямую в /home/username. Кроме того, каково значение дома пользователя в /etc/passwd - это /home/username? Текст «domain.local» нигде не должен появляться в домашнем пути пользователя. Это грязно и его следует избегать. Совершенно нормально сопоставить /home/username с server:/name/of/directory/many/levels/down, но он должен монтироваться как /home/username. Ошибка в вашем журнале показывает часть пути, которая ему не принадлежит.

      Следующее, что нужно сделать, это проверить, не связана ли проблема с общим доступом, попробовав смонтировать каталог из NAS непосредственно на клиентский компьютер. Вы не можете монтировать под /home, потому что теперь он находится под контролем автомонтирования. Вы можете попробовать смонтировать его в /mnt или создать каталог в /tmp. Если вы не можете смонтировать его, значит, к нему не предоставлен общий доступ, и его необходимо повторно открыть с NAS.

      Поскольку я использую аутентификацию AD с winbind, в этом файле нет записи для пользователя

      Я установил вот так, и все в порядке

      Я не был уверен, почему я получаю: PAM не может создать каталог /home/domain.local/myusername, потому что я больше не прошу смонтировать /home/domain.local /username, поэтому я понял, что должен изменить это в /etc/samba/smb.conf

      mkhomedir_helper: PAM не может создать каталог /home/admgbarker: разрешение отклонено

      Меня смущает прямое сопоставление пользователей, какую строку добавить?

      Все больше и больше похоже на странную проблему с разрешениями:

      Я вручную подключил общий ресурс NAS с правами root и создал в нем папку пользователей

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

      "-bash-4.1$" для начала выглядит странно, кроме того, в папке пользователей отсутствуют папки профиля bash

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

      Обновление: кажется, что компьютеру необходимо создать папку пользователей, чтобы он мог поместить туда все скрытые файлы bash, но мы не можем этого сделать из-за проблем с разрешениями

      Сал8273

      Подождите! Ожидаете ли вы, что автомонтировщик *создаст* домашние каталоги пользователей. Не будет - autofs монтирует только то, что есть. Причина, по которой вы получили «mkhomedir_helper: PAM не удалось создать каталог /home/admgbarker: разрешение отклонено», заключалась в том, что папка «admgbarker» не существовала на общем ресурсе NAS, что вы исправили. Общая папка NAS должна содержать домашние каталоги всех пользователей, чтобы их можно было смонтировать при входе пользователя в систему. Вам придется сделать это вручную. Легко, как пирог со смолой. После того, как вы его создали, он был смонтирован, но возникла проблема с правами доступа.

      Проблема с правами доступа, возникающая после монтирования каталога, связана с тем, что хост Linux не может сопоставить имя пользователя или группу владельцев файлов NAS. В NFS любой UID, который система не может сопоставить, по умолчанию преобразуется в «никто», чтобы предотвратить несанкционированный доступ и особенно для предотвращения запуска исполняемых файлов SUID от имени действительного пользователя. Да, он старый и не очень безопасный, но так оно и есть.

      Вам нужно будет поиграться с разрешениями общего доступа от NAS. Сначала я попытался бы войти в систему как пользователь, стать пользователем root, перейти к домашнему пользователю и выполнить команду «chown -R username:group .», чтобы изменить владельца. важно, какой номер вы используете.Если вы используете tar для копирования/перемещения пользовательских каталогов, вам нужно будет запустить его с «xfp», чтобы убедиться, что права доступа к файлу (владелец, группа, rwx и т. д.) сохранены, поэтому пользователи действительно будут владеть их файлы.

      Я попросил вас попробовать прямую карту пользователей, чтобы проверить, будет ли она работать. Я не знал, что целевой каталог не существует или что у вас был неверный шаблон, и я пытался определить, можно ли сопоставить сам каталог. Вы должны удалить эту строку, если вы добавили ее для тестирования.Что делает сопоставление пользователя за пользователем, так это привязывает конкретного пользователя к определенному каталогу. Если у вас его нет, то «*» поймает всех действительных пользователей, если они все живут в одном месте. Если у вас есть дома, расположенные на 3 разных общих ресурсах NAS, вам потребуется преобразовать карту в карту для каждого пользователя.

      Если вы копируете пользовательские каталоги на NAS из локальных ящиков, все должно быть в порядке, пока копируются права собственности и разрешения. Чтобы убедиться, что вы монтируете правильный каталог, после входа в систему введите «df -k». чтобы убедиться, что каталог смонтирован NFS.

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

      Читайте также: