Linux как изменить имя суперпользователя

In windows it is possible to change administrator username for security reasons. Is it possible to change root username in Linux too?

In windows it is possible to change administrator username for security reasons. Is it possible to change root username in Linux too?

asked Jul 1, 2013 at 6:01

Hojat Taheri's user avatar

Hojat TaheriHojat Taheri

4,9166 gold badges22 silver badges22 bronze badges

3

While it’s technically possible, it is probably not a good idea. You would have to audit all the code on your system to check if any of it has the root user name hard-coded.

While the recommended practice for e.g. shell scripts is to check the user ID (if it’s zero, you are root) or check for the actual privilege you require (if you can write a file where you want to, who cares which precise user you are running as) but not all programs adhere to the recommendation. (In fact, the installers and/or packaging scripts for many popular commercial software packages contain some truly atrocious shell scripting.)

A hack which was employed by BSD once upon a time was to have a duplicate user in /etc/passwd with the same user and group ID, but a different user name (and a different shell, which was the purpose of this exercise); they called this user toor. This hardly helps for your particular use case, but may still be useful as guidance. The fact that this (generally) worked is a good indication that you could simply rename root altogether.

answered Jul 1, 2013 at 6:19

tripleee's user avatar

3

It’s possible to change the name of the root account: edit your passwd file. You’ll break stuff, because various applications assume that the root account is called root. (That’s why it’s called a “root account”, after all.)

Renaming a system account isn’t supported any more than renaming some random system file is supported, or applying rot13 to a system file.

There is zero security benefit in renaming the root account. It will not help against any exploit. Root exploits work by causing a program running as root to execute code that it shouldn’t execute. The name of the account is completely immaterial. It’s like painting your front door a different color: it won’t help you against burglars, you need to work on having a good lock, barring your windows, etc.

answered Jul 1, 2013 at 23:47

Gilles 'SO- stop being evil''s user avatar

3

In windows it is possible to change administrator username for security reasons. Is it possible to change root username in Linux too?

asked Jul 1, 2013 at 6:01

Hojat Taheri's user avatar

Hojat TaheriHojat Taheri

4,9166 gold badges22 silver badges22 bronze badges

3

While it’s technically possible, it is probably not a good idea. You would have to audit all the code on your system to check if any of it has the root user name hard-coded.

While the recommended practice for e.g. shell scripts is to check the user ID (if it’s zero, you are root) or check for the actual privilege you require (if you can write a file where you want to, who cares which precise user you are running as) but not all programs adhere to the recommendation. (In fact, the installers and/or packaging scripts for many popular commercial software packages contain some truly atrocious shell scripting.)

A hack which was employed by BSD once upon a time was to have a duplicate user in /etc/passwd with the same user and group ID, but a different user name (and a different shell, which was the purpose of this exercise); they called this user toor. This hardly helps for your particular use case, but may still be useful as guidance. The fact that this (generally) worked is a good indication that you could simply rename root altogether.

answered Jul 1, 2013 at 6:19

tripleee's user avatar

3

It’s possible to change the name of the root account: edit your passwd file. You’ll break stuff, because various applications assume that the root account is called root. (That’s why it’s called a “root account”, after all.)

Renaming a system account isn’t supported any more than renaming some random system file is supported, or applying rot13 to a system file.

There is zero security benefit in renaming the root account. It will not help against any exploit. Root exploits work by causing a program running as root to execute code that it shouldn’t execute. The name of the account is completely immaterial. It’s like painting your front door a different color: it won’t help you against burglars, you need to work on having a good lock, barring your windows, etc.

answered Jul 1, 2013 at 23:47

Gilles 'SO- stop being evil''s user avatar

3

All this fear mongering, saying «Don’t do it!» is ridiculous. At one time, yeah, it probably did break lots of badly written scripts, but I suspect those are not so common any longer; at least not in the standard distributions.

We’ve been told to rename the root account on a subset of linux servers. So, after attempting to research how to go about doing this correctly, I, instead found many, many posts saying «Don’t do it!» with lots of dire warnings of «bad stuff» happening if you choose to do this. But, I have yet to find any with concrete examples of the «bad stuff» that could happen.

So, let me back up and explain where I am, and how we got here. We’re building a PCI compliant environment, and one of the tools that helps us meet those «requirements» is telling us we need to rename the root and administrator and guest accounts to something else. For those uneducated about PCI, you have the option of either following the guidelines or documenting why you either can’t or choose not to follow that guideline, and what mitigating strategy you have to keep the systems safe. So, I imagine most places document why they aren’t going to rename their root accounts, however, our group has decided that, if we can rename the windows administrator accounts without problem, were going to rename the linux root accounts as well.

I am well versed in the «security through obscurity» arguments; I know just changing the root account name doesn’t actually improve security by a lot, root should be disabled at SSH, etc. I know, that’s not the point, I’m not interested in hearing more. I’m also not interested in more «the sky will fall» warnings. I’m looking for statements like this: «>this bad thing< will happen with >this standard package< (unless you >do this<)».

So far I have 3 CentOS (RHEL) systems that apparently have no issues with renaming the root account. Here’s what I did: I changed the account name in /etc/passwd, /etc/shadow, /etc/group, and /etc/gshadow. Then grepped for the name root in /etc/ and modified the postfix aliases file so that root was an alias to our new account name, call it rojotoro. (Something similar should be done for other email systems). I also found that I needed to change some configurations for logrotate when describing who should own the files it would create automatically. And that has been all I have changed thus far.

I’ve looked at many init.d scripts, but haven’t changed anything, and everything appears to start just fine at boot. I have to specify the new account when using sudo: «sudo -u rojotoro vim /etc/passwd» as an example, but I didn’t actually need to change anything within the sudoers file. I expected maybe some issues with selinux which we have on and enforcing, but thus far I’ve not needed to touch that system.

I can also see that mkdev or mkfs scripts may need to be adjusted, but I don’t plan on using those, so I haven’t looked at them with the scrutiny they deserve.

If it truly is this easy to change with no ill effects on an selinux enabled system, why the continuation of all the fear mongering?

Unix-like operating systems decouple the user name from the user identity, so you may safely change the name without affecting the ID. All permissions, files, etc are tied to your identity (uid), not your username.

To manage every aspect of the user database, you use the usermod tool.

To change username and user’s groupname (it is probably best to do this without being logged in):

sudo usermod -l newUsername oldUsername
sudo groupmod -n newUsername oldUsername

This however, doesn’t rename the home folder.

To change home-folder, use

sudo usermod -d /home/newHomeDir -m newUsername

after you changed the username.

For instance, you could logout, drop to a console (Ctrl+Alt+F1), and sudo su - to become true root (as opposed to sudo -s, where $HOME is still /home/yourname.) Maybe you also have to kill some still running processes from this user first. To do so, enter ps -u username, look for the matching PID and kill them by kill PID-number.

Update: as arrange mentioned, some files may reference your old home directory. You can either keep a symlink for backward compatibility, e g ln -s /home/newname /home/oldname or you can change the file contents with sed -i.bak 's/*oldname*/*newname*/g' *list of files* It creates a backup for each file with a .bak extension.

Some additional information for not so experienced users like me:
As I only have ONE user account (administrator), it would not let me change the username («you are already logged in» was the response in TTY1 (Ctrl+Alt+F1). To get around this:

  1. Login with your old credentials and add a new user, e.g. «temporary» in TTY1:

    sudo adduser temporary
    

set the password.
2. Allow the temporary user to run sudo by adding the user to sudo group:

    sudo adduser temporary sudo
  1. Log out with the command exit.

  2. Return to tty1: Login with the ‘temporary’ user account and password. Change your username and folder as mentioned above. exit (until you get the login prompt)

  3. Go back to TTY7 (Ctrl+Alt+F7) to login on the GUI/normal desktop screen and see if this works.

  4. Delete temporary user and folder:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

Это пошаговое руководство о том, как изменить имя пользователя в Debian, Ubuntu, Deepin, Linux Mint, elementary OS (и других дистрибутивах Linux на основе Debian или Ubuntu) и Fedora.

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

Во всех приведенных ниже инструкциях или командах не забудьте заменить newusername его новым именем пользователя и oldusername старым именем пользователя. 

1. Создайте временного пользователя и предоставьте ему привилегии sudo


Мы войдем в систему с временным пользователем, чтобы выполнить команды смены имени пользователя. Таким образом, не будет проблем при запуске их от того же пользователя, которого мы пытаемся переименовать (например, процессы, запущенные для этого пользователя и т. д.).

Добавьте нового временного пользователя (tempuser) и предоставьте ему привилегии sudo в Debian, Ubuntu, Deepin, elementary OS или Linux Mint (после ввода пароля вы можете продолжать нажимать, Enter чтобы пропустить ввод остальной информации):

sudo adduser tempuser
sudo usermod -aG sudo tempuser

Добавьте новый tempuser и предоставьте ему привилегии sudo на Fedora:

sudo adduser tempuser
sudo passwd tempuser
sudo usermod -aG wheel tempuser

2. Войдите в систему как tempuser и измените (переименуйте) имя пользователя, домашнюю папку и группу


Выйдите из системы и на экране входа выберите tempuser и войдите под этим пользователем. Затем откройте терминал и выполните эти команды, чтобы изменить имя пользователя, домашнюю папку и группу с oldusername на newusername:

sudo usermod -l newusername -d /home/newusername -m oldusername
sudo groupmod -n newusername oldusername

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

3. Создайте символическую ссылку из /home/newusername в /home/oldusername


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

sudo ln -s /home/newusername /home/oldusername

4. Измените отображаемое имя или полное имя (имя, фамилия)


В моем случае при попытке переименовать имя пользователя в Ubuntu 19.04 и Fedora 29 отображаемое имя (полное имя) осталось неизменным на экране входа в GDM3 и в меню пользователя. Это можно изменить, используя:

sudo chfn -f "firstname lastname" newusername

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

Команда chfn доступна на Fedora в util-linux-user пакете, который не установлен по умолчанию. Вы можете установить его на Fedora, используя:

sudo dnf install util-linux-user

После установки этого пакета chfn команда должна работать на Fedora. 

5. Войдите в систему с новым (переименованным) именем пользователя и удалите временного пользователя, созданного в шаге 1


Выйдите из системы, выберите новое, переименованное имя пользователя на экране входа в систему и перейдите к входу в систему. Теперь вы можете удалить временного пользователя, созданного в шаге 1 (tempuser), и его домашнюю папку:

sudo userdel -r tempuser

Источник: Linux Uprising

Рекомендуемый контент

В этом кратком руководстве объясняется, как правильно изменить имя пользователя в операционной системе Linux.

Это руководство также описывает, как изменить имя хоста, группу пользователей, домашний каталог, а также владельца и группу этого каталога на нового пользователя вместе со всеми файлами.

Если вы когда-нибудь искали правильный способ изменить имя пользователя в Linux, не нарушая существующие файлы конфигурации, далее объясняется, как это сделать!

Предупреждение:

Я бы не рекомендовал это в производственной среде.

Всегда лучше просто создать нового пользователя, а не переименовывать существующего.

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

Вы можете в конечном итоге изменить файлы конфигурации, используемые таким количеством служб. Также не делайте этого, если ваш каталог $HOME зашифрован!

Поэтому я рекомендую вам создать нового пользователя и перенести данные старого пользователя на нового.

Если это недавно установленная система или просто тестовая система, вы можете изменить имя пользователя, как описано ниже.

Правильный способ изменить имя пользователя на Linux

Изменить имя хоста в Fedora и других дистрибутивах Linux очень просто!

Войдите в систему как пользователь sudo или root.

Я вошел в систему как пользователь root.

Измените текущее имя хоста с помощью команды hostnamectl, как показано ниже:

# hostnamectl set-hostname fedora33

Приведенная выше команда изменяет старое имя хоста на «fedora33».

Выйдите из системы и войдите снова, чтобы увидеть изменения.

Теперь вы увидите, что имя хоста обновлено в приглашении оболочки.

Вы также можете проверить это с помощью команды hostname:

# hostname
fedora33

А вот и основная часть.

Теперь я собираюсь изменить имя пользователя с “vagrant” на “itisgood”.

Для этого я создал новую группу под названием «itisgood», используя команду:

# groupadd itisgood

В этом руководстве я использовал одно и то же имя для пользователя и группы.

Вы можете использовать другое имя, если хотите.

А затем изменил имя пользователя с помощью команды usermod, как показано ниже:

# usermod -d /home/itisgood -m -g itisgood -l itisgood vagrant

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

  • usermod: команда для изменения учетной записи пользователя в Unix-подобных системах.
  • -d /home/itisgood: создать новый каталог $HOME для пользователя.
  • -m: переместить содержимое каталога $HOME старого пользователя в новое место.
  • -g itisgood: добавить нового пользователя в группу под названием «itisgood».
  • -l itisgood vagrant: изменить имя пользователя с «vagrant» на «itisgood». т.е. “vagrant” – это старое имя пользователя, а “itisgood” – это новый пользователь.

Вышеупомянутая команда изменяет имя пользователя, группу пользователей, каталог $HOME, владельца и группу этого каталога на нового пользователя, а также все файлы и каталоги пользователя.

Наконец, назначьте привилегии sudo новому пользователю с помощью команды:

# usermod -aG wheel itisgood

Если вы используете системы на основе Debian, такие как Ubuntu, вы можете предоставить пользователю разрешения sudo с помощью этой команды:

$ sudo usermod -aG sudo itisgood

Выполните разлагон.

Убедитесь, что имя хоста, имя пользователя и каталоги $HOME изменены!

Для получения дополнительных сведений о команде usermod см. справочную страницу:

  • Печать

Страницы: [1]   Вниз

Тема: изменить имя пользователя введённое при установке системы  (Прочитано 16737 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
Вадим Скиф

Подскажите как изменить имя пользователя введённое при установке системы.Желательно не переустанавливая систему.Желательно попроще,например через терминал.Какие команды вводить?Устал искать в темах,что-то вразумительное если не трудно.Помогите чайнику!


ТС не появлялся на Форуме более полугода по состоянию на 21/11/2019 (последняя явка: 22/04/2019). Модератором раздела принято решение закрыть тему.
—zg_nico

« Последнее редактирование: 21 Ноября 2019, 19:27:42 от zg_nico »


Оффлайн
miarle

CPU: 8 core AMD FX-8300 Eight-Core
RAM: Kingston DDR3-1600 8192MB PC3-12800
GPU: NVIDIA GP107 [GeForce GTX 1050]


Оффлайн
Heider

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

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

usermod --comment "Иванов Иван Иванович" usernameГде username — имя пользователя в системе (логин)

« Последнее редактирование: 07 Апреля 2018, 20:46:25 от Heider »


Оффлайн
EvangelionDeath

Тогда Вам придется и домашнюю папку переименовать и права на файлы поменять.

Вот не надо сочинять!
1) Перейменовывать ничего не надо
2) Файлы и директории привязываются по UIDGID, а не по именам пользователягруппы.

Итого:

# Выполнять именно в консоли, не в терминале графического режима (после загрузки не логинимся, а нажимаем Ctrl+Alt+F1)
# вводим логин и пароль своего пользователя
sudo useradd tempuser -G adm -p
# Ctrl+D - выходим с текущего сеанса
# вводим логин и пароль нового пользователя
# проверяем или ничего не запущено под пользователем, что мы хотим перейменовать, если такое находится - завершаем или "убиваем"
ps -aux | grep <old user name>
sudo usermod -l <new login> <old login>
# выходим
# логинимся уже с новым логином
# удаляем временного пользователя
sudo userdel tempuser
# переключаемся на tty7 (графический режим) Ctrl+Alt+F7

Можно обойтись без создания новой учетки — разблокировать учетную запись root, после чего заблокировать ее обратно.

« Последнее редактирование: 08 Апреля 2018, 08:42:58 от EvangelionDeath »

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
Heider

1) Перейменовывать ничего не надо

Я могу ошибаться, конечно… Но мне кажется, что папка /home/vasya сама не переименуется.


Оффлайн
UserX

… Но мне кажется, что папка /home/vasya сама не переименуется

Естественно, не переименуется. А зачем, вообще, необходимо переименование папки пользователя? Пусть останется со старым именем, ничего страшного не случится, права и на него останутся те же, что и были, т.е. ID_пользователя:ID_группы = 1000:1000.
Если необходимо сменить логин и имя_группы для какого-то ID, то можно же запуститься с лайв-диска и отредактировать файлы /etc/group, /etc/gshadow, /etc/passwd, /etc/shadow, /etc/subuid и /etc/subgid. В перечисленных файлах поменять только логин(имя_группы), а всё остальное оставить как есть.


Оффлайн
xandvik

usermod -l NEWUSER OLDUSER
groupmod -n NEWUSER OLDUSER
usermod -md /home/NEWUSER NEWUSER

Вроде так . Я Года полтора назад менял.
Тока потом пыжился редачил файлы в которых записи о пользователях и группах ибо осталась инфа о старых…

« Последнее редактирование: 08 Апреля 2018, 11:52:09 от xandvik »

Debian GNU/Linux bookworm/sid


Оффлайн
Heider

А зачем, вообще, необходимо переименование папки пользователя?

Наверное, чтобы в скриптах пути вроде /home/$USER/…/some_config работали.

« Последнее редактирование: 08 Апреля 2018, 13:07:39 от Heider »


Оффлайн
EvangelionDeath

Наверное, чтобы в скриптах пути вроде /home/$USER/…/some_config работали.

Причина высосана из пальца. Ну или вы неправильно пишите скрипты. Так как принято писать скрипты $HOME/ , а не /home/$USER. Так как реальный HOME у пользователя не только не всегда лежит в /home, так и вообще может иметь другое имя.

Мне никто не запретит сделать sudo useradd -md /var/home/someuser vasyapupkik

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


  • Печать

Страницы: [1]   Вверх

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Linter csslint error while running csslint
  • Morrowind как изменить разрешение экрана windows 10
  • Morrowind music error cannot play file data files music special morrowind title
  • Lint infrastructure error
  • Mordhau the pack file ошибка

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии