Шаги по восстановлению домашнего каталога? (Идентификаторы пользователей и т. Д.)

Предположим, что у меня есть home.tgz и вы хотите удалить это в недавно установленном поле ubuntu.

Что мне нужно сделать до того, как я разблокирую файл? Создать пользователей? Как насчет идентификаторов пользователей? Группы? Как насчет шифрования?

5
задан 29 October 2010 в 13:17

18 ответов

Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, /home/ sid). Установите пароль. Утяните файл в домашний каталог пользователя. Измените право собственности, если вы не использовали те же UID и GID, что и раньше. Добавьте пользователя в любые другие группы, требуемые

Если вы хотите упростить процесс, вам нужно сделать пару вещей , В следующем случае я предполагаю, что пользователь называется mark.

Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, /home/ sid) Резервное копирование дома каталог из его родителя - например, если это /home/mark, тогда вы захотите cd /home && tar jcpf mark.tar.bz2 mark Установить пароль Определить членство в группе, имени пользователя и группе, а затем восстановить их. Это должно быть довольно доступным для сценариев, что-то неопределенно: #!/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. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он сделает, - установить пользователя с теми же группами, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.

4
ответ дан 25 July 2018 в 22:59
  • 1
    Это звучит довольно сложно. Есть ли более оптимизированные решения, если я хочу отказаться от полного домашнего каталога, например, для 5 пользователей? Или я должен был создать резервную копию больше, чем просто полный домашний каталог? – Martin 29 October 2010 в 16:03
  • 2
    Спасибо за обновление. Я предполагаю, что на машине есть дополнительные группы, я должен предпринять дополнительные шаги? – Martin 29 October 2010 в 18:02

В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил bob и добавил joe (1001). Извините, что я ошибся. Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя.

Это может показаться утомительным, но это просто подробное объяснение трех шагов.

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

В нашей новой установке Ubuntu:

# 1 создать пользователя account: sudo adduser alice # 2 разблокировать резервные копии файлов в ее новом домашнем каталоге # 3 сделать alice владельцем файлов: sudo chown -R alice\:alice /home/alice

Объяснить команды:

# 1 создать учетную запись пользователя: sudo adduser alice # 3 опция -R означает рекурсивно использовать право собственности, alice \: alice - это то, как мы указываем новый файл owner\:group для файлов, и мы говорим chown to выполните эту задачу на /home/alice.

Теперь все файлы в разделе / ​​home / alice будут принадлежать ей, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет смысл.

Создайте новую учетную запись пользователя с тем же именем, тогда она будет иметь тот же UID, что и старая учетная запись пользователя. Я помню, как я читал об этом в списке рассылки, но я не могу найти источник, где я его читал.

0
ответ дан 25 July 2018 в 22:59
  • 1
    Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя каждому пользователю. - извините, не смейтесь :-) – Martin 29 October 2010 в 17:58
  • 2
    @Martin, что я имею в виду, вам нужно запустить chown username:/ /home/userhome, чтобы установить владельца на имя пользователя, иначе пользователь не сможет читать / писать свои собственные файлы. – invert 2 November 2010 в 17:08
  • 3
    @KbM: О, хорошо. Так что это необходимо только для домашней директории / home / user, а не рекурсивно? – Martin 2 November 2010 в 18:26
  • 4
    Он должен включать все файлы и каталоги в пользовательский / домашний путь, поэтому да, он должен быть рекурсивным. Я обновляю свой ответ с помощью полных команд. – invert 2 November 2010 в 18:35
Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, /home/ sid). Установите пароль. Утяните файл в домашний каталог пользователя. Измените право собственности, если вы не использовали те же UID и GID, что и раньше. Добавьте пользователя в любые другие группы, требуемые

Если вы хотите упростить процесс, вам нужно сделать пару вещей , В следующем случае я предполагаю, что пользователь называется mark.

Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, /home/ sid) Резервное копирование дома каталог из его родителя - например, если это /home/mark, тогда вы захотите cd /home && tar jcpf mark.tar.bz2 mark Установить пароль Определить членство в группе, имени пользователя и группе, а затем восстановить их. Это должно быть довольно доступным для сценариев, что-то неопределенно: #!/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. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он сделает, - установить пользователя с теми же группами, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.

4
ответ дан 27 July 2018 в 01:53
  • 1
    Это звучит довольно сложно. Есть ли более оптимизированные решения, если я хочу отказаться от полного домашнего каталога, например, для 5 пользователей? Или я должен был создать резервную копию больше, чем просто полный домашний каталог? – Martin 29 October 2010 в 16:03
  • 2
    Спасибо за обновление. Я предполагаю, что на машине есть дополнительные группы, я должен предпринять дополнительные шаги? – Martin 29 October 2010 в 18:02

В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил bob и добавил joe (1001). Извините, что я ошибся. Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя.

Это может показаться утомительным, но это просто подробное объяснение трех шагов.

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

В нашей новой установке Ubuntu:

# 1 создать пользователя account: sudo adduser alice # 2 разблокировать резервные копии файлов в ее новом домашнем каталоге # 3 сделать alice владельцем файлов: sudo chown -R alice\:alice /home/alice

Объяснить команды:

# 1 создать учетную запись пользователя: sudo adduser alice # 3 опция -R означает рекурсивно использовать право собственности, alice \: alice - это то, как мы указываем новый файл owner\:group для файлов, и мы говорим chown to выполните эту задачу на /home/alice.

Теперь все файлы в разделе / ​​home / alice будут принадлежать ей, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет смысл.

Создайте новую учетную запись пользователя с тем же именем, тогда она будет иметь тот же UID, что и старая учетная запись пользователя. Я помню, как я читал об этом в списке рассылки, но я не могу найти источник, где я его читал.

0
ответ дан 27 July 2018 в 01:53
  • 1
    Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя каждому пользователю. - извините, не смейтесь :-) – Martin 29 October 2010 в 17:58
  • 2
    @Martin, что я имею в виду, вам нужно запустить chown username:/ /home/userhome, чтобы установить владельца на имя пользователя, иначе пользователь не сможет читать / писать свои собственные файлы. – invert 2 November 2010 в 17:08
  • 3
    @KbM: О, хорошо. Так что это необходимо только для домашней директории / home / user, а не рекурсивно? – Martin 2 November 2010 в 18:26
  • 4
    Он должен включать все файлы и каталоги в пользовательский / домашний путь, поэтому да, он должен быть рекурсивным. Я обновляю свой ответ с помощью полных команд. – invert 2 November 2010 в 18:35
Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, /home/ sid). Установите пароль. Утяните файл в домашний каталог пользователя. Измените право собственности, если вы не использовали те же UID и GID, что и раньше. Добавьте пользователя в любые другие группы, требуемые

Если вы хотите упростить процесс, вам нужно сделать пару вещей , В следующем случае я предполагаю, что пользователь называется mark.

Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, /home/ sid) Резервное копирование дома каталог из его родителя - например, если это /home/mark, тогда вы захотите cd /home && tar jcpf mark.tar.bz2 mark Установить пароль Определить членство в группе, имени пользователя и группе, а затем восстановить их. Это должно быть довольно доступным для сценариев, что-то неопределенно: #!/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. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он сделает, - установить пользователя с теми же группами, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.

4
ответ дан 31 July 2018 в 12:36
  • 1
    Это звучит довольно сложно. Есть ли более оптимизированные решения, если я хочу отказаться от полного домашнего каталога, например, для 5 пользователей? Или я должен был создать резервную копию больше, чем просто полный домашний каталог? – Martin 29 October 2010 в 16:03
  • 2
    Спасибо за обновление. Я предполагаю, что на машине есть дополнительные группы, я должен предпринять дополнительные шаги? – Martin 29 October 2010 в 18:02

В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил bob и добавил joe (1001). Извините, что я ошибся. Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя.

Это может показаться утомительным, но это просто подробное объяснение трех шагов.

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

В нашей новой установке Ubuntu:

# 1 создать пользователя account: sudo adduser alice # 2 разблокировать резервные копии файлов в ее новом домашнем каталоге # 3 сделать alice владельцем файлов: sudo chown -R alice\:alice /home/alice

Объяснить команды:

# 1 создать учетную запись пользователя: sudo adduser alice # 3 опция -R означает рекурсивно использовать право собственности, alice \: alice - это то, как мы указываем новый файл owner\:group для файлов, и мы говорим chown to выполните эту задачу на /home/alice.

Теперь все файлы в разделе / ​​home / alice будут принадлежать ей, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет смысл.

Создайте новую учетную запись пользователя с тем же именем, тогда она будет иметь тот же UID, что и старая учетная запись пользователя. Я помню, как я читал об этом в списке рассылки, но я не могу найти источник, где я его читал.

0
ответ дан 31 July 2018 в 12:36
  • 1
    Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя каждому пользователю. - извините, не смейтесь :-) – Martin 29 October 2010 в 17:58
  • 2
    @Martin, что я имею в виду, вам нужно запустить chown username:/ /home/userhome, чтобы установить владельца на имя пользователя, иначе пользователь не сможет читать / писать свои собственные файлы. – invert 2 November 2010 в 17:08
  • 3
    @KbM: О, хорошо. Так что это необходимо только для домашней директории / home / user, а не рекурсивно? – Martin 2 November 2010 в 18:26
  • 4
    Он должен включать все файлы и каталоги в пользовательский / домашний путь, поэтому да, он должен быть рекурсивным. Я обновляю свой ответ с помощью полных команд. – invert 2 November 2010 в 18:35
Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, /home/ sid). Установите пароль. Утяните файл в домашний каталог пользователя. Измените право собственности, если вы не использовали те же UID и GID, что и раньше. Добавьте пользователя в любые другие группы, требуемые

Если вы хотите упростить процесс, вам нужно сделать пару вещей , В следующем случае я предполагаю, что пользователь называется mark.

Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, /home/ sid) Резервное копирование дома каталог из его родителя - например, если это /home/mark, тогда вы захотите cd /home && tar jcpf mark.tar.bz2 mark Установить пароль Определить членство в группе, имени пользователя и группе, а затем восстановить их. Это должно быть довольно доступным для сценариев, что-то неопределенно: #!/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. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он сделает, - установить пользователя с теми же группами, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.

4
ответ дан 2 August 2018 в 04:21
  • 1
    Это звучит довольно сложно. Есть ли более оптимизированные решения, если я хочу отказаться от полного домашнего каталога, например, для 5 пользователей? Или я должен был создать резервную копию больше, чем просто полный домашний каталог? – Martin 29 October 2010 в 16:03
  • 2
    Спасибо за обновление. Я предполагаю, что на машине есть дополнительные группы, я должен предпринять дополнительные шаги? – Martin 29 October 2010 в 18:02

В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил bob и добавил joe (1001). Извините, что я ошибся. Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя.

Это может показаться утомительным, но это просто подробное объяснение трех шагов.

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

В нашей новой установке Ubuntu:

# 1 создать пользователя account: sudo adduser alice # 2 разблокировать резервные копии файлов в ее новом домашнем каталоге # 3 сделать alice владельцем файлов: sudo chown -R alice\:alice /home/alice

Объяснить команды:

# 1 создать учетную запись пользователя: sudo adduser alice # 3 опция -R означает рекурсивно использовать право собственности, alice \: alice - это то, как мы указываем новый файл owner\:group для файлов, и мы говорим chown to выполните эту задачу на /home/alice.

Теперь все файлы в разделе / ​​home / alice будут принадлежать ей, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет смысл.

Создайте новую учетную запись пользователя с тем же именем, тогда она будет иметь тот же UID, что и старая учетная запись пользователя. Я помню, как я читал об этом в списке рассылки, но я не могу найти источник, где я его читал.

0
ответ дан 2 August 2018 в 04:21
  • 1
    Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя каждому пользователю. - извините, не смейтесь :-) – Martin 29 October 2010 в 17:58
  • 2
    @Martin, что я имею в виду, вам нужно запустить chown username:/ /home/userhome, чтобы установить владельца на имя пользователя, иначе пользователь не сможет читать / писать свои собственные файлы. – invert 2 November 2010 в 17:08
  • 3
    @KbM: О, хорошо. Так что это необходимо только для домашней директории / home / user, а не рекурсивно? – Martin 2 November 2010 в 18:26
  • 4
    Он должен включать все файлы и каталоги в пользовательский / домашний путь, поэтому да, он должен быть рекурсивным. Я обновляю свой ответ с помощью полных команд. – invert 2 November 2010 в 18:35

В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил bob и добавил joe (1001). Извините, что я ошибся. Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя.

Это может показаться утомительным, но это всего лишь подробное объяснение трех шагов.

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

На нашей новой установке Ubuntu:

  • # 1 создать учетную запись пользователя: sudo adduser alice
  • # 2 разогнать резервные копии файлов в ее новом домашнем каталоге
  • # 3 сделать alice владельцем файлов: sudo chown -R alice \: alice / home / alice

Чтобы объяснить команды:

  • # 1 adduser создает каталог / home / alice для нас (помимо всего прочего)
  • # 3 опция -R означает, что рекурсивно используется свойство собственности, alice \: alice - это то, как мы указываем новый файл \: group для файлов, и мы рекомендуем chown выполнить эту задачу на / home / alice .

Теперь все файлы в / home / alice будут до нее, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет смысл.

Создайте новую учетную запись пользователя с тем же именем, тогда она будет иметь тот же UID, что и старая учетная запись пользователя. Я помню, как я читал об этом в списке рассылки, но я не могу найти источник, где я его читал.

0
ответ дан 4 August 2018 в 20:52
  1. Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, / home / sid )
  2. Установить пароль
  3. Отложить файл в домашний каталог пользователя
  4. Измените право собственности, если вы не использовали тот же UID и GID по-прежнему
  5. Добавьте пользователя в любые другие группы, необходимые

Если вы хотите упростить процесс, вам нужно сделать пару вещей , В следующем случае я предполагаю, что пользователь называется mark .

  1. Запишите членство в группе пользователя: cd ~ mark & ​​amp; & amp; & amp; & amp; id mark & ​​gt; mark.identity
  2. Резервное копирование домашнего каталога из его родителя - например, если это / home / mark , тогда вы захотите cd / home & amp; & amp; & amp; tar jcpf mark.tar.bz2 mark
  3. На новом хосте его восстановить в / home ( cd / home & amp; & tar xjpf mark.tar.bz2 )
  4. Определите членство в группе и имени пользователя и группе, а затем восстановите их. Это должно быть довольно доступным для сценариев, что-то неопределенно:
 #! / Bin / bash USER = "$ {1}", если [!  -e "$ {USER}". identity];  затем echo «Нет файла идентификатора» exit fi GD = `awk '{print $ 2" $ {USER} ". identity}' |  sed -e "s /.*(// g" -e "s /).*// g" `GLIST =` awk '{print $ NF "{USER}". identity}' |  sed -e "s / [az] * = // g" -e "s / [0-9] * (// g" -e "s /) // g" `для GROUP в $ {GD} $  {GList};  do getent group $ {GROUP}> / dev / null STATUS = $ {?}, если [$ {STATUS} -ne 0];  затем groupadd $ {GROUP} fi done useradd -g "$ {GD}" -G "$ {GLIST}" "$ {USER}" 

Обратите внимание, что я только что написал это здесь,


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

Заметим также, что это не позаботится о привилегиях, полученных через sudo. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он сделает, - установить пользователя с теми же группами, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.

4
ответ дан 4 August 2018 в 20:52

В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил bob и добавил joe (1001). Извините, что я ошибся. Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя.

Это может показаться утомительным, но это всего лишь подробное объяснение трех шагов.

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

На нашей новой установке Ubuntu:

  • # 1 создать учетную запись пользователя: sudo adduser alice
  • # 2 разогнать резервные копии файлов в ее новом домашнем каталоге
  • # 3 сделать alice владельцем файлов: sudo chown -R alice \: alice / home / alice

Чтобы объяснить команды:

  • # 1 adduser создает каталог / home / alice для нас (помимо всего прочего)
  • # 3 опция -R означает, что рекурсивно используется свойство собственности, alice \: alice - это то, как мы указываем новый файл \: group для файлов, и мы рекомендуем chown выполнить эту задачу на / home / alice .

Теперь все файлы в / home / alice будут до нее, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет смысл.

Создайте новую учетную запись пользователя с тем же именем, тогда она будет иметь тот же UID, что и старая учетная запись пользователя. Я помню, как я читал об этом в списке рассылки, но я не могу найти источник, где я его читал.

0
ответ дан 6 August 2018 в 04:26
  1. Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, / home / sid )
  2. Установить пароль
  3. Отложить файл в домашний каталог пользователя
  4. Измените право собственности, если вы не использовали тот же UID и GID по-прежнему
  5. Добавьте пользователя в любые другие группы, необходимые

Если вы хотите упростить процесс, вам нужно сделать пару вещей , В следующем случае я предполагаю, что пользователь называется mark .

  1. Запишите членство в группе пользователя: cd ~ mark & ​​amp; & amp; & amp; & amp; id mark & ​​gt; mark.identity
  2. Резервное копирование домашнего каталога из его родителя - например, если это / home / mark , тогда вы захотите cd / home & amp; & amp; & amp; tar jcpf mark.tar.bz2 mark
  3. На новом хосте его восстановить в / home ( cd / home & amp; & tar xjpf mark.tar.bz2 )
  4. Определите членство в группе и имени пользователя и группе, а затем восстановите их. Это должно быть довольно доступным для сценариев, что-то неопределенно:
 #! / Bin / bash USER = "$ {1}", если [!  -e "$ {USER}". identity];  затем echo «Нет файла идентификатора» exit fi GD = `awk '{print $ 2" $ {USER} ". identity}' |  sed -e "s /.*(// g" -e "s /).*// g" `GLIST =` awk '{print $ NF "{USER}". identity}' |  sed -e "s / [az] * = // g" -e "s / [0-9] * (// g" -e "s /) // g" `для GROUP в $ {GD} $  {GList};  do getent group $ {GROUP}> / dev / null STATUS = $ {?}, если [$ {STATUS} -ne 0];  затем groupadd $ {GROUP} fi done useradd -g "$ {GD}" -G "$ {GLIST}" "$ {USER}" 

Обратите внимание, что я только что написал это здесь,


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

Заметим также, что это не позаботится о привилегиях, полученных через sudo. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он сделает, - установить пользователя с теми же группами, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.

4
ответ дан 6 August 2018 в 04:26

В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил bob и добавил joe (1001). Извините, что я ошибся. Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя.

Это может показаться утомительным, но это всего лишь подробное объяснение трех шагов.

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

На нашей новой установке Ubuntu:

  • # 1 создать учетную запись пользователя: sudo adduser alice
  • # 2 разогнать резервные копии файлов в ее новом домашнем каталоге
  • # 3 сделать alice владельцем файлов: sudo chown -R alice \: alice / home / alice

Чтобы объяснить команды:

  • # 1 adduser создает каталог / home / alice для нас (помимо всего прочего)
  • # 3 опция -R означает, что рекурсивно используется свойство собственности, alice \: alice - это то, как мы указываем новый файл \: group для файлов, и мы рекомендуем chown выполнить эту задачу на / home / alice .

Теперь все файлы в / home / alice будут до нее, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет смысл.

Создайте новую учетную запись пользователя с тем же именем, тогда она будет иметь тот же UID, что и старая учетная запись пользователя. Я помню, как я читал об этом в списке рассылки, но я не могу найти источник, где я его читал.

0
ответ дан 7 August 2018 в 22:33
  1. Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, / home / sid )
  2. Установить пароль
  3. Отложить файл в домашний каталог пользователя
  4. Измените право собственности, если вы не использовали тот же UID и GID по-прежнему
  5. Добавьте пользователя в любые другие группы, необходимые

Если вы хотите упростить процесс, вам нужно сделать пару вещей , В следующем случае я предполагаю, что пользователь называется mark .

  1. Запишите членство в группе пользователя: cd ~ mark & ​​amp; & amp; & amp; & amp; id mark & ​​gt; mark.identity
  2. Резервное копирование домашнего каталога из его родителя - например, если это / home / mark , тогда вы захотите cd / home & amp; & amp; & amp; tar jcpf mark.tar.bz2 mark
  3. На новом хосте его восстановить в / home ( cd / home & amp; & tar xjpf mark.tar.bz2 )
  4. Определите членство в группе и имени пользователя и группе, а затем восстановите их. Это должно быть довольно доступным для сценариев, что-то неопределенно:
 #! / Bin / bash USER = "$ {1}", если [!  -e "$ {USER}". identity];  затем echo «Нет файла идентификатора» exit fi GD = `awk '{print $ 2" $ {USER} ". identity}' |  sed -e "s /.*(// g" -e "s /).*// g" `GLIST =` awk '{print $ NF "{USER}". identity}' |  sed -e "s / [az] * = // g" -e "s / [0-9] * (// g" -e "s /) // g" `для GROUP в $ {GD} $  {GList};  do getent group $ {GROUP}> / dev / null STATUS = $ {?}, если [$ {STATUS} -ne 0];  затем groupadd $ {GROUP} fi done useradd -g "$ {GD}" -G "$ {GLIST}" "$ {USER}" 

Обратите внимание, что я только что написал это здесь,


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

Заметим также, что это не позаботится о привилегиях, полученных через sudo. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он сделает, - установить пользователя с теми же группами, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.

4
ответ дан 7 August 2018 в 22:33

В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил bob и добавил joe (1001). Извините, что я ошибся. Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя.

Это может показаться утомительным, но это всего лишь подробное объяснение трех шагов.

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

На нашей новой установке Ubuntu:

  • # 1 создать учетную запись пользователя: sudo adduser alice
  • # 2 разогнать резервные копии файлов в ее новом домашнем каталоге
  • # 3 сделать alice владельцем файлов: sudo chown -R alice \: alice / home / alice

Чтобы объяснить команды:

  • # 1 adduser создает каталог / home / alice для нас (помимо всего прочего)
  • # 3 опция -R означает, что рекурсивно используется свойство собственности, alice \: alice - это то, как мы указываем новый файл \: group для файлов, и мы рекомендуем chown выполнить эту задачу на / home / alice .

Теперь все файлы в / home / alice будут до нее, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет смысл.

Создайте новую учетную запись пользователя с тем же именем, тогда она будет иметь тот же UID, что и старая учетная запись пользователя. Я помню, как я читал об этом в списке рассылки, но я не могу найти источник, где я его читал.

0
ответ дан 10 August 2018 в 10:40
  1. Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, / home / sid )
  2. Установить пароль
  3. Отложить файл в домашний каталог пользователя
  4. Измените право собственности, если вы не использовали тот же UID и GID по-прежнему
  5. Добавьте пользователя в любые другие группы, необходимые

Если вы хотите упростить процесс, вам нужно сделать пару вещей , В следующем случае я предполагаю, что пользователь называется mark .

  1. Запишите членство в группе пользователя: cd ~ mark & ​​amp; & amp; & amp; & amp; id mark & ​​gt; mark.identity
  2. Резервное копирование домашнего каталога из его родителя - например, если это / home / mark , тогда вы захотите cd / home & amp; & amp; & amp; tar jcpf mark.tar.bz2 mark
  3. На новом хосте его восстановить в / home ( cd / home & amp; & tar xjpf mark.tar.bz2 )
  4. Определите членство в группе и имени пользователя и группе, а затем восстановите их. Это должно быть довольно доступным для сценариев, что-то неопределенно:
 #! / Bin / bash USER = "$ {1}", если [!  -e "$ {USER}". identity];  затем echo «Нет файла идентификатора» exit fi GD = `awk '{print $ 2" $ {USER} ". identity}' |  sed -e "s /.*(// g" -e "s /).*// g" `GLIST =` awk '{print $ NF "{USER}". identity}' |  sed -e "s / [az] * = // g" -e "s / [0-9] * (// g" -e "s /) // g" `для GROUP в $ {GD} $  {GList};  do getent group $ {GROUP}> / dev / null STATUS = $ {?}, если [$ {STATUS} -ne 0];  затем groupadd $ {GROUP} fi done useradd -g "$ {GD}" -G "$ {GLIST}" "$ {USER}" 

Обратите внимание, что я только что написал это здесь,


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

Заметим также, что это не позаботится о привилегиях, полученных через sudo. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он сделает, - установить пользователя с теми же группами, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.

4
ответ дан 10 August 2018 в 10:40

В моем тесте vm я добавил bob (1001) и alice (1002). Я удалил bob и добавил joe (1001). Извините, что я ошибся. Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя.

Это может показаться утомительным, но это всего лишь подробное объяснение трех шагов.

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

На нашей новой установке Ubuntu:

  • # 1 создать учетную запись пользователя: sudo adduser alice
  • # 2 разогнать резервные копии файлов в ее новом домашнем каталоге
  • # 3 сделать alice владельцем файлов: sudo chown -R alice \: alice / home / alice

Чтобы объяснить команды:

  • # 1 adduser создает каталог / home / alice для нас (помимо всего прочего)
  • # 3 опция -R означает, что рекурсивно используется свойство собственности, alice \: alice - это то, как мы указываем новый файл \: group для файлов, и мы рекомендуем chown выполнить эту задачу на / home / alice .

Теперь все файлы в / home / alice будут до нее, и у нее не должно быть проблем с доступом к ее файлам. Надеюсь, что это имеет смысл.

Создайте новую учетную запись пользователя с тем же именем, тогда она будет иметь тот же UID, что и старая учетная запись пользователя. Я помню, как я читал об этом в списке рассылки, но я не могу найти источник, где я его читал.

0
ответ дан 13 August 2018 в 17:13
  • 1
    Вам просто нужно переназначить владельца и группу домашних владельцев каждого пользователя каждому пользователю. - извините, не согласитесь :-) – Martin 29 October 2010 в 17:58
  • 2
    @Martin, что я имею в виду, вам нужно запустить chown username: / / home / userhome , чтобы установить владельца на имя пользователя, иначе пользователь не сможет читать и писать свои собственные файлы. – invert 2 November 2010 в 17:08
  • 3
    @KbM: О, хорошо. Так что это необходимо только для домашней директории / home / user, а не рекурсивно? – Martin 2 November 2010 в 18:26
  • 4
    Он должен включать все файлы и каталоги под путь пользователя / дома, поэтому да, он должен быть рекурсивным. Я обновляю свой ответ с помощью полных команд. – invert 2 November 2010 в 18:35
  1. Создайте учетную запись пользователя, опционально с тем же UID и GID, что и раньше, и с домашним каталогом в том же месте (например, / home / sid )
  2. Установить пароль
  3. Отложить файл в домашний каталог пользователя
  4. Измените право собственности, если вы не использовали тот же UID и GID по-прежнему
  5. Добавьте пользователя в любые другие группы, необходимые

Если вы хотите упростить процесс, вам нужно сделать пару вещей , В следующем случае я предполагаю, что пользователь называется mark .

  1. Запишите членство в группе пользователя: cd ~ mark & ​​amp; & amp; & amp; & amp; id mark & ​​gt; mark.identity
  2. Резервное копирование домашнего каталога из его родителя - например, если это / home / mark , тогда вы захотите cd / home & amp; & amp; & amp; tar jcpf mark.tar.bz2 mark
  3. На новом хосте его восстановить в / home ( cd / home & amp; & tar xjpf mark.tar.bz2 )
  4. Определите членство в группе и имени пользователя и группе, а затем восстановите их. Это должно быть довольно доступным для сценариев, что-то неопределенно:
 #! / Bin / bash USER = "$ {1}", если [!  -e "$ {USER}". identity];  затем echo «Нет файла идентификатора» exit fi GD = `awk '{print $ 2" $ {USER} ". identity}' |  sed -e "s /.*(// g" -e "s /).*// g" `GLIST =` awk '{print $ NF "{USER}". identity}' |  sed -e "s / [az] * = // g" -e "s / [0-9] * (// g" -e "s /) // g" `для GROUP в $ {GD} $  {GList};  do getent group $ {GROUP}> / dev / null STATUS = $ {?}, если [$ {STATUS} -ne 0];  затем groupadd $ {GROUP} fi done useradd -g "$ {GD}" -G "$ {GLIST}" "$ {USER}" 

Обратите внимание, что я только что написал это здесь,


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

Заметим также, что это не позаботится о привилегиях, полученных через sudo. Это также не поможет, если у вас есть местная электронная почта или что-то еще. Все, что он сделает, - установить пользователя с теми же группами, что и раньше. Кроме того, если каталог уже существует, он перезаписывает его, поэтому требуется некоторое внимание.

4
ответ дан 13 August 2018 в 17:13
  • 1
    Это звучит довольно сложно. Есть ли более оптимизированные решения, если я хочу отказаться от полного домашнего каталога, например, для 5 пользователей? Или я должен был создать резервную копию больше, чем просто полный домашний каталог? – Martin 29 October 2010 в 16:03
  • 2
    Спасибо за обновление. Я предполагаю, что на машине есть дополнительные группы, я должен предпринять дополнительные шаги? – Martin 29 October 2010 в 18:02

Другие вопросы по тегам:

Похожие вопросы: