Как я могу изменить свой собственный идентификатор пользователя?

В моей системе есть только один пользователь. Как я могу изменить его идентификатор пользователя с значения по умолчанию 1000?

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

Вы можете изменить его в /etc/passwd, /etc/group и /etc/shadow или вы используете одну из предпочтительных возможностей, описанных выше. Но - самое главное - вы должны изменить владельца всех файлов, принадлежащих пользователю.

Например, если старый идентификатор пользователя равен 1000, а новый - 5000:

find / -uid 1000 -exec chown -h 5000 {} +

И то же самое для идентификатора группы (если вы также измените его).

find / -gid 1000 -exec chgrp -h 5000 {} +

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

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

Вы можете загрузиться в режим восстановления (это опция, которая появляется при запуске компьютера или удержании клавиши shift сразу после завершения сообщений BIOS; Используйте ESC на компьютерах Dell под управлением OEM-Ubuntu). Это позволит вам войти в корневой сеанс. Вход в систему root и не ваша обычная учетная запись пользователя, вы сможете изменить свой UID.

Поскольку режим восстановления работает только в интерфейсе командной строки, после входа в корневой сеанс вам придется:

  1. Воспользуйся Инструкции BubbaJ по перемонтированию корневой файловой системы в режиме чтения-записи: mount -o remount,rw /.

  2. Воспользуйся Команда Луиса Альварадо: usermod -u NEW_UID your_username.

  3. Следовать инструкции ддеймеке чтобы обновить права доступа к файлам.
  4. Затем перезагрузите компьютер (reboot), так что вы можете загрузиться в обычном режиме.

Complete solution based on @AlexandreP. and @ddeimeke + official documentation. No reboot necessary.

Политика Debian/Ubuntu заключается в том, что если есть пользователь jim с идентификатором пользователя 1001, есть также группа jim с идентификатором группы 1001. Это решение также обновляет эти идентификаторы групп.

  1. Включите учетную запись root:

    sudo passwd root
  2. Если пользователь вошел в систему, затем выйдите из системы (также на виртуальных терминалах).
  3. Перейти к VT1: Ctrl-Alt-F1
  4. Войдите в систему как root и запустите это с указанным именем пользователя и старым / новым UID:

    # put the information we need in variablesusername=...old_uid=`id -u $username`  # looks up current (old) uidnew_uid=...# update the user ID and group ID for $usernameusermod -u $new_uid $usernamegroupmod -g $new_uid $username# update the file ownerships# NB: you cannot combine the next two chowns, or files where # only the uid xor the gid matches won't be updated  chown -Rhc --from=$old_uid $new_uid /    # change the user IDschown -Rhc --from=:$old_uid :$new_uid /  # change the group IDs
  5. Выйти из системы
  6. Войдите в систему как $username
  7. Отключите учетную запись root:

    sudo passwd -dl root

Если вы перейдете в консоль и наберете: usermod --help вы получите один из параметров, говорящий:

-u, --uid UID новый UID для учетной записи пользователя

итак, если вы хотите изменить UID для пользователя cyrex, то сделайте:

usermod -u 1000 cyrex

это изменило бы uid для cyrex с любого значения, которое он имел раньше, на 1000

Если вы хотите сделать это визуально, то сделайте это:

Идти к

>>СИСТЕМА -- АДМИНИСТРИРОВАНИЕ -- ПОЛЬЗОВАТЕЛИ И ГРУППЫ

Выберите себя из списка и нажмите на ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ

UID находится в конце этого окна.

  • Идти к >>>>Системное администрирование Пользователи и группы

alt text

  • Щелчок Дополнительные настройки и гото Передовой Вкладка там, внизу, вы увидите свой идентификатор пользователя.
  • Измените его и нажмите кнопку ОК.
    alt text

С помощью KDE: В меню Изменить Дополнительные настройки пользователя:

Переход от другого пользователя не работает для 1000, который является пользователем по умолчанию.

вы должны сделать это вручную - мой опыт

Сначала вам нужно войти в систему как root, по крайней мере, на некоторое время, поэтому давайте сделаем это возможным:

sudo passwd root

Перезагрузитесь, ctrl + alt + f1, чтобы переключиться на консоль, войдите в систему как root, выполните следующие действия (о владельце в домашнем каталоге позаботятся автоматически):

groupmod --gid NEWGID usernameusermod  --uid NEWUID username 

Для ваших файлов в местах, отличных от вашего домашнего каталога, к этому:

sudo chown -R username:username /path/to/files

Удалите и заблокируйте пароль root, если хотите. (Я стараюсь сохранить его):

passwd -dl root

Я последовал за ним ддеймеке инструкции со следующими изменениями:

  1. Я не вышел из системы, а вместо этого сделал sudo su
  2. Я не прикасался /etc/shadow

Я видел, как в других ответах упоминалось, что вы должны либо загрузиться в recovery, либо войти в систему как root. У меня была свежая установка Ubuntu 14, поэтому я был готов проверить, будет ли она работать без входа в систему как root. Кроме того, я делал это на экземпляре EC2 по SSH.

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

Из любопытства, каковы причины изменения идентификатора пользователя?

Жуан все понял правильно. В частности, я надеюсь сопоставить UID с пользователями в Mac OS X, чтобы общая файловая система имела требуемые разрешения в разных операционных системах.

Текущая версия Nethack (3.6.0) сохраняет игры, включая текущий uid в имени файла. Если вы хотите синхронизировать сохраненную игру между машинами, вам необходимо сопоставить uid. (использование символической ссылки непрактично)

Для всех серьезных намерений и целей он не поддерживается, и все ответы здесь являются хакерскими и рискованными в использовании.