Вопрос: Как я могу переименовать пользователя unix?


У меня есть имя пользователя hedgehog и я хочу, чтобы его назвали squirrel, но я не хочу менять его числовой идентификатор пользователя.
Как я могу это сделать?


58
2017-10-11 14:54


Источник


Вероятно, потому, что переименование пользователя - это не просто задача, с которой бы справилась профессиональная SA. (Для вопроса downvotes.) - HopelessN00b
@Jeznet I downvoted, потому что это не просто невероятно простая задача, которую можно решить, набрав свой заголовок в Google, вы также ответили на свой вопрос, как только попросите его. Казалось, пустая трата времени. - boburob
@boburob ", вы также ответили на свой вопрос, как только вы его попросили. Казалось, пустая трата времени" см. blog.stackoverflow.com/2011/07/... - Szymon Jeż
@boburob Вы заметили, что это галочка, в которой говорится: Answer your own question – share your knowledge, Q&A-style когда вы задаете вопрос? Это по какой-то причине, и их не было бы там, если бы они не хотели, чтобы они использовались. (В идеале, по лучшим вопросам, но независимо от того, что кто-то может ответить на свой вопрос, это плохая форма.) - HopelessN00b
Да, я также ответил на свой вопрос раньше, но для меня, задавая вопрос и вставляя результат Google в ту же минуту, это немного пустая трата времени - boburob


Ответы:


Под Linux, usermod команда изменяет имена пользователей. Он изменяет файлы системной учетной записи, чтобы отобразить изменения, указанные в командной строке.

Чтобы изменить только имя пользователя:

usermod --login new_username old_username

Чтобы изменить имя пользователя и домашнего каталога:

usermod --login new_username --move-home --home /new/home/dir old_username

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

groupmod --new-name new_username old_username

95
2017-10-11 14:54



Вы можете использовать usermod для выполнения всего этого. Usermod -l new-user-name -m -d / new / home / dir old-user-name - Iain
@Iain Спасибо. Я продолжу свой ответ, чтобы отразить это. Кстати, я задал этот «тривиальный» вопрос - получить ответ, который лучше моего (а также потому, что я не мог найти его уже в SF). - Szymon Jeż
Также обратите внимание, что группа также не изменяется. Если вам нужно переименовать old-user-name группы, используйте # groupmod -n new-user-name old-user-name, - alxs
Для систем, использующих autofs, вы также должны обновить /etc/auto.home, Я просто столкнулся с этим. - Steven C. Howell
Может потребоваться снова запустить visudo, чтобы поместить новое имя пользователя в список sudoers, если это применимо - Nagev


ЗАМЕТКА: не пытайтесь это, если ваш каталог зашифрован! Если это ваш случай, вы можете сначала проверить: https://askubuntu.com/questions/107410/can-you-unencrypt-remove-encryption-from-a-user-home-folder

Прямой способ сделать это:

  1. Создайте новую учетную запись temp с правами sudo:

    sudo adduser temp
    sudo adduser temp sudo
    
  2. Выйдите из вашей текущей учетной записи и обратно с помощью учетной записи temp.

  3. Переименуйте свое имя пользователя и каталог:

    sudo usermod -l new-username -m -d /home/new-username old-username
    
  4. Переименуйте группу имени пользователя по умолчанию:

    sudo groupmod -n new-username old-username
    
  5. Выйдите из учетной записи temp и войдите в свою учетную запись с новым именем пользователя.

  6. Удалить временную учетную запись:

    sudo userdel -r temp
    

В противном случае вы просто (1) создаете нового пользователя и (2) rsync старая домашняя папка пользователя для нового, а затем (3) chown Это.


6
2017-12-18 16:49





Как правило, вы можете переименовать пользователя, изменив свое имя пользователя в /etc/passwd (а также /etc/shadow, если применимо). В большинстве систем Unix vipw команда используется для редактирования этих файлов (а во многих системах есть некоторые меры предосторожности, чтобы вы не испортили вещи слишком плохо).
См. Страницы руководства для passwd(5), shadow(5), а также vipw(8) Чтобы получить больше информации.

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


Несколько операционных систем предоставляют системный способ переименования пользователей. Например, многие системы Linux включают usermod(8) команды, а в AIX вы можете изменить имена учетных записей, используя SMIT (или smitty в терминале),
Эти команды часто обрабатывают элементы очистки, такие как переименование домашних каталогов, если вы их попросите.


4