Добавление и удаление пользователей в Ubuntu 18.04
Управление пользователями – один из самых базовых и самых важных навыков системного администратора среды Linux. Как правило, в новой системе по умолчанию существует только один пользователь – это root.
Пользователь root имеет широкие привилегии, он очень гибкий, но работать с сервером как root на постоянной основе крайне не рекомендуется. Дело в том, что, обладая абсолютными правами, пользователь root может случайно нанести непоправимый вред системе и серверу. Потому для повседневной работы нужно создать дополнительного пользователя с обычными привилегиями, а затем передать ему права суперпользователя. Также можно создать дополнительные аккаунты для других пользователей, которые должны иметь доступ к серверу.
Данный мануал научит вас создавать аккаунты новых пользователей, передавать права sudo и удалять пользователей.
Требования
Для работы вам понадобится сервер Ubuntu 18.04, предварительно настроенный по этому мануалу.
1: Добавление пользователя
Чтобы создать нового пользователя в сессии root, введите:
Находясь в сессии не-root пользователя с доступом к команде sudo, можно добавить нового пользователя с помощью команды:
sudo adduser newuser
Эта команда предложит:
- Установить и подтвердить пароль.
- Указать дополнительные данные о пользователе. Это опционально; чтобы принять информацию по умолчанию, просто нажмите Enter.
- Подтвердить предоставленную информацию (нажмите Y).
Новый пользователь готов. Теперь можно подключиться к серверу с его помощью. Но без команды sudo этот пользователь не сможет выполнять многие команды.
2: Настройка доступа к команде sudo
Чтобы иметь возможность использовать новый аккаунт для выполнения задач администратора, нужно разрешить новому пользователю доступ к команде sudo. Это можно сделать двумя способами:
- Добавить пользователя в группу sudo
- Отредактировать файл /etc/sudoers
Добавление пользователя в группу sudo
В системе Ubuntu 18.04 все пользователи, которые входят в группу sudo, по умолчанию имеют доступ к команде sudo.
Чтобы узнать, в какие группы входит ваш новый пользователь, введите:
По умолчанию каждый новый пользователь системы входит только в одноименную группу. Чтобы добавить пользователя в нужную группу, введите:
usermod -aG sudo newuser
Флаг –aG добавляет пользователя в перечисленные в команде группы.
Редактирование файла /etc/sudoers
Еще один способ расширить привилегии пользователя – отредактировать файл sudoers. Для этого используется команда visudo, которая позволяет открыть файл /etc/sudoers в редакторе и явно задать привилегии каждого пользователя в системе.
Редактировать файл sudoers рекомендуется исключительно через visudo, поскольку эта команда блокирует внесение одновременных правок и выполняет проверку файла перед перезаписью. Это предотвращает ошибки в настройке sudo, которые могут повлечь за собой потерю всех привилегий.
Если вы находитесь в сессии root, введите команду:
В сессии не-root пользователя с доступом к sudo введите:
Как правило, visudo открывает файл /etc/sudoers в редакторе vi, сложном для новичков. По умолчанию в новых установках Ubuntu visudo использует более простой редактор nano. Для перемещения курсора используйте клавиши со стрелками. Найдите такую строку:
root ALL=(ALL:ALL) ALL
Скопируйте эту строку и вставьте её ниже, указав вместо root имя пользователя, которому нужно передать права суперпользователя.
root ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL
Добавьте такую строку для каждого пользователя, которому нужны расширенные привилегии. После этого сохраните и закройте файл.
Тестирование настройки
Теперь нужно убедиться, что новый пользователь имеет доступ к sudo.
По умолчанию команды в сессии нового пользователя запускаются так:
Чтобы выполнить команду с правами администратора, добавьте sudo в начало:
При этом система запросит пароль вашего текущего пользователя.
3: Удаление пользователей
Ненужные аккаунты можно удалить из системы.
Чтобы удалить пользователя, оставив его файлы, введите такую команду:
как пользователь с расширенными привилегиями:
sudo deluser newuser
Чтобы удалить пользователя вместе с его домашним каталогом и всеми файлами, используйте:
deluser —remove-home newuser
как пользователь с расширенными привилегиями:
sudo deluser —remove-home newuser
Если удалённый пользователь обладал правами суперпользователя, нужно отнять эти права. Снова отредактируйте файл:
sudo visudo
root ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL # удалите эту строку
Если бы строка осталась в файле, а в системе появился другой пользователь с таким же именем, он автоматически получил бы расширенные привилегии. Теперь этого не случится.
Заключение
Управление пользователями – очень важный навык в администрировании сервера Ubuntu 18.04. Он позволяет отделять пользователей и передавать им только необходимый диапазон привилегий.
Дополнительную информацию о настройке sudo можно найти в нашем мануале Редактирование файла sudoers в Ubuntu и CentOS.
Как создать пользователя Linux
Основу управления правами доступа в Linux и уровнем привилегий в Linux составляют именно пользователи. Изначально, еще при проектировании системы существовал пользователь root, которому позволено выполнять любые действия и другие пользователи, права которых настраиваются с помощью вступления их в группы Linux и установки прав на каталоги.
Многопользовательская архитектура, одна из первых особенностей Linux, которая существует еще с зарождения системы. В системе могут работать одновременно множество пользователей благодаря удаленному входу, а также пользователи используются для запуска определенных сервисов. В этой статье мы рассмотрим как создать пользователя linux, рассмотрим способ через терминал и в графическом интерфейсе.
Создание пользователя в Linux
Вся информация о пользователях находится в файле /etc/passwd. Мы могли бы создать пользователя linux просто добавив его туда, но так делать не следует, поскольку для этой задачи существуют специальные утилиты. Одна из таких утилит, это useradd. Рассмотрим ее подробнее.
Команда useradd
Это довольно простая команда, которая есть во всех дистрибутивах Linux. Она позволяет зарегистрировать нового пользователя или изменить информацию об уже имеющемся. Во время создания можно даже создать домашний каталог пользователя и скопировать в него системные файлы. Рассмотрим синтаксис команды:
$ useradd опции имя_пользователя
Все довольно просто, дальше нам нужно рассмотреть основные опции команды, с помощью которых вы будете настраивать нового пользователя:
- -b — базовый каталог для размещения домашнего каталога пользователя, по умолчанию /home;
- -c — комментарий к учетной записи;
- -d — домашний каталог, в котором будут размещаться файлы пользователя;
- -e — дата, когда учетная запись пользователя будет заблокирована, в формате ГГГГ-ММ-ДД;
- -f — заблокировать учетную запись сразу после создания;
- -g — основная группа пользователя;
- -G — список дополнительных групп;
- -k — каталог с шаблонами конфигурационных файлов;
- -l — не сохранять информацию о входах пользователя в lastlog и faillog;
- -m — создавать домашний каталог пользователя, если он не существует;
- -M — не создавать домашнюю папку;
- -N — не создавать группу с именем пользователя;
- -o — разрешить создание пользователя linux с неуникальным идентификатором UID;
- -p — задать пароль пользователя;
- -r — создать системного пользователя, не имеет оболочки входа, без домашней директории и с идентификатором до SYS_UID_MAX;
- -s — командная оболочка для пользователя;
- -u — идентификатор для пользователя;
- -D — отобразить параметры, которые используются по умолчанию для создания пользователя. Если вместе с этой опцией задать еще какой-либо параметр, то его значение по умолчанию будет переопределено.
Теперь, когда вы знаете основные необходимые нам параметры утилиты мы можем перейти к разбору того, как выполняется создание нового пользователя linux. Сначала давайте посмотрим какие параметры будут применены для пользователя по умолчанию:

Как видите, по умолчанию домашний каталог пользователя будет создан в /home и будет использоваться оболочка /bin/sh. Теперь создадим минимального пользователя с минимальными настройками:
sudo useradd test

Был создан самый простой пользователь, без оболочки и пароля, а также без групп. Теперь немного усложним задачу и создадим пользователя с паролем и оболочкой /bin/bash:
sudo useradd -p password -s /bin/bash test1
Для того чтобы получать доступ к системным ресурсам пользователю нужно быть участником групп, у которых есть доступ к этим ресурсам. Дополнительные группы пользователя задаются с помощью параметра -G. Например, разрешим пользователю читать логи, использовать cdrom и пользоваться sudo:
sudo useradd -G adm,cdrom,wheel -p password -s /bin/bash test2
Также, можно установить дату, когда аккаунт пользователя будет отключен автоматически, это может быть полезно для пользователей, которые будут работать временно:
sudo useradd -G adm,cdrom,wheel -p password -s /bin/bash -e 01:01:2018 test2
Некоторых пользователей интересует создание пользователя с правами root linux, это очень просто делается с помощью useradd, если комбинировать правильные опции. Нам всего лишь нужно разрешить создавать пользователя с неуникальным uid, установить идентификатор в 0 и идентификатор основной группы тоже в 0. Команда будет выглядеть вот так:
sudo useradd -o -u 0 -g 0 -s /bin/bash newroot
Пожалуй, это все основные примеры как добавить пользователя linux. Дальше нам осталось взглянуть только на работу в графическом интерфейсе.
Создание нового пользователя linux в GUI
В графическом интерфейсе системы создать нового пользователя linux еще проще. Рассмотрим окружение Gnome, хотя и в KDE тоже есть аналогичная функция. Войдите в главное меню и откройте параметры системы:

Затем откройте «Пользователи»:

Поскольку утилита запущена от имени обычного пользователя вы ничего не можете сделать. Поэтому нажмите кнопку «Разблокировать»:

Только после этого используйте кнопку со знаком плюс для создания нового пользователя Linux:

В открывшемся окне нужно заполнить все поля. Но тут намного больше ограничений, чем в методе через терминал. Вы не можете задать слишком простой пароль, а также нельзя настроить группы. Можно только указать будет ли пользователь включен в группу wheel с помощью выбора типа пользователя — администратор или обычный:

После этого создание пользователя linux завершено, новый пользователь появится в списке.
Выводы
В этой статье мы рассмотрели как создать пользователя linux с помощью терминала или в графическом интерфейсе системы. Оба способа имеют свои преимущества. Например, способ в терминале намного гибче, но в то же время графический способ дает больше контроля над процессом. Если у вас остались вопросы, спрашивайте в комментариях!
How to create a user with root privileges in bash?
Notice the -r option, which according to the man page:
Assuming I have a user account with root privileges, I then run:
cat: /dev/input/mouse0: Permission denied
Running the same command as root provides the expected output (garbled output from the mouse driver).
How can I create a user with root privileges?
5 Answers 5
Haven’t tried it but this should create a new user and add them to the sudo group, which if your /etc/sudoers is as default, should mean they’re allowed to use sudo with their password (just like the standard first user):
If you’ve already created the user, you can just run:
man adduser will show you some of the other billion permutations and combinations of arguments this tool has.
Note: If you use Ubuntu 11.10 or older, you should use the admin group instead of sudo .
HowTo: Grant Root Access to User – Root Privileges – Linux
From this article you’ll learn how to create a user in Linux and grant root access to him or how to grant root privileges to already existent user.
This can be easily done by changing UID (user id) and GID (group id) in /etc/passwd file.
Also you will learn how to just add user to root group and i will explain how to delete user with root privileges.
Actually it is not a good idea to give all the privileges of root to a non-root user and outside the test environment i would not recommend to have multiply superusers.
Warning: Giving a non-root user all the permissions of root is very dangerous, because the non-root user will be able to do literally anything that could cause a big trouble if account is hijacked.
Check SSH Server Settings: If you have disabled root access in SSH server settings, by setting PermitRootLogin no in /etc/ssh/sshd_config – you won’t be able to login if your user has UID 0 .
Warning: Before moving forward, read the comments below and DON’T FOLLOW THE STEPS FROM THIS ARTICLE if you don’t understand of what you are doing and what impact this may have!
Grant Root Privileges To New User
Let’s say you need to create a new user and grant him root access to the server.
To create a user with exactly the same privileges as root user, we have to assign him the same user ID as the root user has ( UID 0 ) and the same group ID ( GID 0 ).
Use the following commands to create a user john , grand him the same privileges as root and set him a password:
Grant Root Privileges To Existent User
Cool Tip: Dot the i’s and cross the t’s on file and folder permissions in Linux! Make it more clear! Read more →
Perhaps you already have a user john and you want to grant him root privileges (make him a second root user):
For this, it is required to edit the file /etc/passwd and just change UID and GID to 0 :
Add User To Root Group
If you just want to add john to root group, without granting him all root privileges, run the following command:
Delete User With Root Privileges
Cool Tip: Log in to a remote Linux server without entering password! Set up password-less SSH login! Read more →
You won’t be able to delete a user with UID 0 using userdel command:
To delete him, firstly open the /etc/passwd file and change his UID .
For example, change the line:
to something like:
After this, you’ll be able to delete user john with userdel command:
45 Replies to “HowTo: Grant Root Access to User – Root Privileges – Linux”
“For this, it is required to edit the file /etc/passwd and just change UID and GID to 0”
WRONG.
Baaaad idea. Much regret. Undo, undo.
$ ssh 192.168.88.16 -l pi
pi@192.168.88.16‘s password:
Permission denied, please try again.
pi@192.168.88.16‘s password:
Permission denied, please try again.
– – –
Nice explanation?)
Since noone elaborate how to undo this broken way of adding users, I will. The only way is to successful login to the linux machine, if you login via ssh or tty.
If you add a user with uid 0 to group uid 0, and you set in sshd_config AllowRootLogin NO, you`re access will be denied. So you will have to login to the linux machine via tty (this is the only way if you don`t have a correctly added backup user on the linux machine). Via tty you can login with any of the users, even root.
The correct way to add a user with root privileges is adding the user the normal way, useradd -m user, and then add privileges with visudo to the user.
So if you have a backup user that haves root privileges in visudo. you will be able to login to the linux machine via ssh, and you will be able to change the uid and group to the “broken” user.
I think this article explains more likely how to add a user with root privileges “the hacker way (which is a broken way)”, and repair the broken way after.
Also if you don`t have access to a tty console, and you want to test the commands of this article and be sure you did not broke something, STAY LOGGED in current session and open another one and test if all things are OK. If you can`t login in the new session, you still have opened the previous session and you can repair what have you broken.
Hope it helps to repair further mistakes.