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

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

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

9 ответов

Решение

Проблема в том, что, как вы упомянули, вы не можете изменить 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. Следуйте инструкциям ddeimeke для обновления прав доступа к файлам.
  4. Затем перезагрузите компьютер (reboot), так что вы можете загрузиться в обычном режиме.

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

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

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

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

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

Комплексное решение на основе @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
    

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

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

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

usermod -u 1000 cyrex

что бы изменить UID для Cyrex с любого значения, которое он имел до 1000

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

Идти к

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

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

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

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

альтернативный текст

  • Нажмите Advanced Settings и перейдите на вкладку Advanced, внизу вы увидите свой идентификатор пользователя.
  • Измените его и нажмите ОК.
    альтернативный текст

Подводя итог, необходимо, по крайней мере, начиная с Ubuntu 20.04 (чтобы сохранить возможность использования автомонтирования, необходимо изменить разрешения расширенного ACL):

Я хотел изменить идентификатор пользователя и идентификатор группы, например, со значения по умолчанию (uid=) 1000 (и gid=1000) на (uid=) 5000 (и gid=5000), чтобы получить доступ к мобильным дискам, отформатированным с помощью ext4 или аналогичных совместимых систем. с uid и gid) не проблема, если файлы и архивы имеют одинаковый идентификатор пользователя или идентификатор группы 5000, независимо от того, записывает ли в него данные другой компьютер или операционная система (это позволяет легко обмениваться файлами между компьютерами, если все собственные пользователи имеют тот же uid и gid).

Сначала я создал дополнительного пользователя, зарегистрировался как новый пользователь, измененный в терминале с помощью sudo su -в корень, а затем я использовал команды

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

для изменения идентификатора пользователя и

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

для изменения идентификатора группы. (Будьте осторожны: это изменяет права на всех подключенных устройствах. Если не требуется, отключите все ненужные или сузьте команды в части find /к find /home/<user>или еще.)

В Fedora это работало, но не полностью в Ubuntu. Например автомонтирование не работало. Затем я прочитал, что нужно также исправить расширенные разрешения ACL, иначе такие вещи, как Automounting, ломаются (возможно, проблема из-за разрешений ACL не появляется, если ни у одного пользователя уже не было этого UID и GID, но в моем случае это была проблема). Изменение расширенных разрешений ACL кажется необходимым, начиная с Ubuntu 14.04 и 14.10.

Вот команды, которые снова вернули возможность автоматического монтирования:

      sudo setfacl -m "u:<NEWUID>:r-x" /media/<USERNAME>

, который устанавливает разрешения UID для собственной папки в «медиа» и

      sudo setfacl -x "u:<OLDUID>" /media/<USERNAME>

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

Кстати: пользователь говорит, что usermod уже меняет все разрешения в домашней папке, начиная с Ubuntu 18.04, но для автоматического монтирования, по крайней мере, до Ubuntu 20.04.4 этого пока недостаточно.

источник информации, откуда я это взял и практически протестировал примерно через месяц:Ответы содержат все, что я объясняю, но немного хаотично, и только один совет исправить расширенные разрешения ACL, чтобы сохранить возможность автоматического монтирования.

PS: Если кто-то спросит, почему я не разместил это как вопрос с решением, то я должен сказать, что у меня недостаточно «кармы» на этих сайтах для этого. Поэтому, пожалуйста, проголосуйте за этот ответ.

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

sudo passwd root

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

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

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

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

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

passwd -dl root

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

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

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

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

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

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

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