
Я в немного странной ситуации. Недавно я работал над переходом с Debian на Arch, и мой домашний раздел для обоих указывает на один и тот же раздел (разные имена пользователей, так что это не проблема).
Я хочу сделать одно из двух:
- Настройте пользователя в Arch с тем же именем пользователя и группой, что и в Debian, и все заработает! ИЛИ
- Переместить файлы, которые я хочу использовать совместно с домашними папками, в их собственный раздел и смонтировать его с помощью fstab.
Для второго у меня около 150 ГБ файлов, которые нужно переместить в отдельный раздел, и у меня около 15 ГБ свободного места на домашнем разделе. Поэтому я бы хотел как-то создать раздел ext4 на 10 ГБ, переместить около 10 ГБ файлов, снова расширить раздел, снова переместить файлы и т. д., пока все файлы не будут перемещены в отдельный раздел.
Я могу сделать это вручную, но было бы проще, если бы я мог сказать: «Переместить файлы размером около 10 ГБ отсюда туда, а затем изменить их размер и повторять, пока не закончатся файлы».
Возможно ли это вообще?
решение1
Файлы данных и конфигурации в каталогах /home/долженбыть независим от дистрибутивов, поскольку он связан с приложениями, а не с ОС. Некоторые дистрибутивы могут настраивать свои версии приложений, например, для использования других имен папок /home/rob
, но вам не нужно делать ничего, кроме переименования папки или символической ссылки, чтобы она соответствовала тому, что ожидает приложение.
Таким образом, создание пользователя в Arch, имеющего прямой доступ к файлам и каталогам, уже присутствующим в домашних каталогах Debian, не должно вызвать особых проблем.
Первое, что вам нужно сделать, это узнать UID пользователя Debian и убедиться, что он такой же, как и в Arch. UID — это «реальный» идентификатор пользователя, тот, с которым вы входите в систему, — это просто человеческое представление uid. Допустим, ваш пользователь Arch — 'rob', а домашний директор rob — /home/rob
:
$ ls -alnd /home/rob
drwxr-xr-x 94 1000 1000 12288 Jul 3 21:36 /home/rob
UID и GID (идентификатор группы) — это третий и четвертый столбцы. Таким образом, эта папка принадлежит uid 1000 и gid 1000. На стороне Debian это будет соответствовать имени пользователя и имени группы, которые вам знакомы в passwd:
$ grep 1000 /etc/passwd
rob:x:1000:1000:,,,,:/home/rob:/bin/bash
$ grep 1000 /etc/group
rob:x:1000:
Итак, вы можете видеть, что в этом случае имя группы также 'rob'. Это выбор распределения — некоторые по умолчанию создают пользователей с основной группой с тем же именем, а некоторые создают группу users
(часто gid 100) и делают ее основной. С точки зрения сортировки это не имеет большого значения, особенно если вы единственный пользователь.
Я не помню, что делает Arch, но предполагаю, что он создает users
группу с gid 100.
Поэтому нам просто нужно создать нового пользователя rob
, указать ему папку и убедиться, что он настроен с правильным uid:
$ adduser --home /home/rob --uid 1000 --no-create-home --gid 100 rob
Или, если вы хотите сначала создать группу для Роба, сделайте следующее:
$ adduser --group --gid 1000 rob
Затем
$ adduser --home /home/rob --uid 1000 --no-create-home --gid 1000 rob
Теперь установите пароль для учетной записи rob.
$ passwd rob
И войдите в систему, и у него должен быть доступ, как и в Arch.
решение2
Вариант №1 имеет хорошие шансы сработать. Вам просто нужно сделать так, чтобы uid и gid совпадали. Используйте groupadd -g
и , useradd -u
чтобы добавить их в базу данных пользователей с вручную выбранными uid и gid, совпадающими с теми, которые вы найдете в Debian с помощьюid -a
find /home -printf 'user %u %U\ngroup %g %G\n' | sort -u
Надеюсь, список содержит только uid и gid для ваших непривилегированных учетных записей пользователей, а те, что из другой системы, сообщаются либо с текущими именами, либо как числа без имени. Если один и тот же uid или gid появляется в списке дважды с двумя разными именами, все сложнее.
Для тех, которые сообщаются без имен, используйте groupadd -g gid group
и useradd -u uid -g gid username
для создания записей в базе данных пользователей, указав им их имена. Затем запустите, passwd username
чтобы установить пароль для созданного вами пользователя.