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

46

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

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

    
задан ændrük 09.12.2010 в 01:34
источник

8 ответов

24

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

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

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

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

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

  2. Используйте команду Луиса Альварадо : usermod -u NEW_UID your_username .

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

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

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

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

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

find / -gid 1000 -exec chgrp -h 5000 {} +
    
ответ дан ddeimeke 09.12.2010 в 07:08
22

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

Политика 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 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. Отключите учетную запись root :

    sudo passwd -dl root
    
ответ дан l0b0 24.07.2012 в 10:50
6

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

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

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

usermod -u 1000 cyrex

, который изменил бы uid для cyrex из любого значения, которое у него было до 1000

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

Перейдите к

SYSTEM --> ADMINISTRATION --> USERS AND GROUPS

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

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

    
ответ дан Luis Alvarado 09.12.2010 в 02:14
2
  • Перейти к Системным > Администраторам > Пользователям и группам

  • НажмитеДополнительныенастройкииперейдитевДополнительно.Внизувнизувыувидитесвойидентификаторпользователя.
  • Изменитеегоинажмите«ОК».
ответ дан karthick87 09.12.2010 в 06:10
0

С KDE: В меню «Изменение расширенных пользовательских настроек»:

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

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

    
ответ дан skidzo 12.07.2011 в 13:17
0

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

sudo passwd root

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

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

Для ваших файлов в других местах, кроме вашего домашнего каталога, выполните следующие действия:

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

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

passwd -dl root
    
ответ дан qed 29.11.2013 в 22:04
0

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

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

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

    
ответ дан KalenGi 27.11.2017 в 19:48