Скажите, что у меня есть home.tgz
и я хочу добавить его на только что установленную коробку Ubuntu.
Что мне нужно сделать, чтобы распаковать файл? Создать пользователей? А как насчет идентификаторов пользователей? Группы? Как насчет шифрования?
В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил Боба и добавил Джо (1001). Извините, я был неправ. Вам просто нужно переназначить владельца и группу домашних папок каждого пользователя каждому пользователю.
Это может показаться утомительным, но это только подробное объяснение трех шагов.
Вам нужны привилегии суперпользователя для выполнения этих задач обслуживания, поэтому перед каждой командой мы ставим sudo
, что дает нам эти привилегии.
В нашей новой установке Ubuntu:
sudo adduser alice
sudo chown -R alice\:alice /home/alice
Чтобы объяснить команды:
-R
означает рекурсивное применение владения, alice \: alice - это то, как мы указываем новый owner\:group
для файлов, и мы говорим chown сделать эту задачу на [ 115]. Теперь все файлы в / home / alice будут принадлежать ей, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет больше смысла.
Создайте новую учетную запись с тем же именем, тогда у нее будет тот же UID, что и у старой учетной записи. Я помню, что читал об этом где-то в списке рассылки, но не могу найти источник, где я его прочитал. Strike>
/home/
sid
) Если вы хотите упростить процесс, вам нужно сделать несколько вещей. Далее я предполагаю, что пользователь называется mark
.
cd ~mark && id mark > mark.identity
/home/mark
, тогда вы захотите cd /home && tar jcpf mark.tar.bz2 mark
cd /home && tar xjpf mark.tar.bz2
) #!/bin/bash USER="${1}" if [ ! -e "${USER}".identity ]; then echo "No identity file" exit fi GD=`awk '{ print $2 "${USER}".identity }' | sed -e "s/.*(//g" -e "s/).*//g"` GLIST=`awk '{ print $NF "{USER}".identity }' | sed -e "s/[a-z]*=//g" -e "s/[0-9]*(//g" -e "s/)//g"` for GROUP in ${GD} ${GLIST}; do getent group ${GROUP} >/dev/null STATUS=${?} if [ ${STATUS} -ne 0 ]; then groupadd ${GROUP} fi done useradd -g "${GD}" -G "${GLIST}" "${USER}"
Обратите внимание, что я только что написал здесь, я не проверял это.
Да, предполагается, что все группы существуют. Нетрудно расширить скрипт, чтобы проверить, существует ли каждая группа, и создать его, если нет. Вышеуказанные изменения должны позаботиться об этом.
Также обратите внимание, что это не позаботится о привилегиях, полученных с помощью sudo. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он будет делать, это настроить пользователя на те же группы, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.