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

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

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

49
задан 4 April 2014 в 22:54

8 ответов

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

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

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

Поскольку режим восстановления только работает в интерфейсе командной строки, когда-то вошел в корневую сессию, Вы будете иметь к:

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

  2. Используйте команду Luis Alvarado: usermod -u NEW_UID your_username.

  3. Следуйте инструкциям ddeimeke для обновления полномочий файла.
  4. Затем перезагрузите свой компьютер (reboot), таким образом, можно загрузиться в нормальном режиме.
27
ответ дан 22 November 2019 в 23:53

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

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

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

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

find / -gid 1000 -exec chgrp -h 5000 {} +
54
ответ дан 22 November 2019 в 23:53

Если Вы переходите к консоли и типу: usermod --help Вы получите одно из высказывания параметров:

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

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

usermod -u 1000 cyrex

это изменило бы uid для cyrex от любого значения, которое он имел прежде к 1 000

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

Перейдите в

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

Выберите себя из списка и нажмите на ADVANCED SETTINGS

UID в конце того окна.

7
ответ дан 22 November 2019 в 23:53
  • Система Goto>> администрация>> Пользователи и Группы

alt text

  • Нажмите Advanced Settings и goto Вкладку "Дополнительно" там в нижней части, Вы будете видеть свой идентификатор пользователя.
  • Измените его и нажмите ОК.
    alt text
2
ответ дан 22 November 2019 в 23:53

С KDE: в меню параметров опытного пользователя изменения:

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

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

0
ответ дан 22 November 2019 в 23:53

Полное решение на основе @AlexandreP. и @ddeimeke + официальная документация. Никакая необходимая перезагрузка.

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

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

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

    # put the information we need in variables
    username=...
    old_uid=`id -u $username`  # looks up current (old) uid
    new_uid=...
    
    # update the user ID and group ID for $username
    usermod -u $new_uid $username
    groupmod -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 IDs
    chown -Rhc --from=:$old_uid :$new_uid /  # change the group IDs
    
  5. Выйти из системы
  6. Войдите в систему как $username
  7. Отключите корневую учетную запись:

    sudo passwd -dl root
    
25
ответ дан 22 November 2019 в 23:53

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

sudo passwd root

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

groupmod --gid NEWGID username
usermod  --uid NEWUID username 

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

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

Удалите и заблокируйте passwd корня, если Вы хотите. (Я склонен сохранять его):

passwd -dl root
0
ответ дан 22 November 2019 в 23:53

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

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

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

0
ответ дан 22 November 2019 в 23:53

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

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