- Добавление пользователей
- Создание пользователя с привилегиями sudo
- Если для root используется аутентификация по SSH-ключу
- Другие команды для управления пользователями
- Как дать Root права пользователю в Linux
- Способ 1: Добавление в корневую группу с помощью usermod
- Способ 2: Добавление в корневую группу с помощью команды Useradd
- Способ 3: Редактирование файла /etc/passwd
- Способ 4: Дать права пользователя Sudo
- HowTo: Grant Root Access to User – Root Privileges – Linux
- Grant Root Privileges To New User
- Grant Root Privileges To Existent User
- Add User To Root Group
- Delete User With Root Privileges
- 46 Replies to “HowTo: Grant Root Access to User – Root Privileges – Linux”
Добавление пользователей
Из соображений безопасности работа от пользователя root в системе Linux не рекомендуется, так как при ошибке в команде могут произойти необратимые повреждения файлов и системы.
Оптимальным решением является создание дополнительного пользователя VDS с привилегиями sudo. Механизм sudo позволит пользователю при необходимости выполнять операции с правами администратора (root).
По этой же инструкции создаются и обычные пользователи системы (без привилегий sudo) — достаточно выполнить первые три шага.
Создание пользователя с привилегиями sudo
1. Создайте нового пользователя (в примере — username) командой ниже:
По умолчанию создаваемый пользователь будет добавлен в группу с таким же именем, а также для него будет создан домашний каталог.
2. В Ubuntu / Debian далее будет запрошен пароль пользователя. Его будет необходимо ввести дважды. Помните, что символы пароля не отображаются в консоли Linux при вводе.
В CentOS для установки пароля выполните команду:
После введите пароль и повторите его.
3. Д алее в Ubuntu / Debian будет запрошен ввод дополнительной информации о пользователе (имя, номер телефона и пр.). Вы можете указать данные или нажимать Enter, чтобы оставить значения по умолчанию (т.е. пустые). После нажмите Y для подтверждения.
В CentOS , если вы хотите указать дополнительную информацию, выполните команду:
На этом этапе создание обычного пользователя (без привилегий sudo) завершено
4. Теперь для того, чтобы предоставить пользователю sudo-привилегии, его нужно добавить в группу sudo. Это делается следующими командами.
usermod -aG wheel username
5. Проверьте работу пользователя. Для этого переключитесь на сеанс работы от его имени:
Система запросит пароль пользователя (при первом запуске sudo). Введите его, после чего попробуйте выполнить любую команду с привилегиями sudo. Например, можно просмотреть содержимое каталога /root , которое недоступно пользователю с обычными правами:
Если содержимое каталога отобразится, значит, созданный пользователь работает корректно.
Если для root используется аутентификация по SSH-ключу
Если вы вошли под root, используя ключ SSH, то аутентификация по паролю для SSH отключена. Вам нужно будет добавить копию вашего локального открытого ключа в файл нового пользователя ~/.ssh/authorized_keys для успешного входа в систему.
Поскольку ваш открытый ключ уже находится в файле ~/.ssh/authorized_keys учетной записи root, можно скопировать этот файл в каталог нового пользователя с помощью команды cp и настроить права на файлы с помощью команды chown .
Скопируем весь каталог в домашний каталог нового пользователя:
Установим username владельцем этого каталога (также будет создана группа с тем же именем):
chown -R username:username /home/username/.ssh
Теперь можно залогиниться на сервер под новым пользователем без использования пароля:
ssh username@your_server_ip
Если нужно запустить команду с правами администратора, введите sudo перед ней, например:
Вам будет предложено ввести пароль обычного пользователя при первом использовании sudo (и периодически после этого).
6. Этот шаг не является обязательным, но для повышения безопасности можно отключить дистанционный доступ для суперпользователя root. В этом случае пользователям всегда будет необходимо подключаться под собственными учетными записями, что позволит отслеживать действия на сервере, видеть, кем были внесены те или иные изменения и т.д.
Для отключения доступа root откройте файл /etc/ssh/sshd_config :
sudo nano /etc/ssh/sshd_config
Найдите строку PermitRootLogin и замените ее текущее значение на:
Выйдите из редактора с сохранением изменений (комбинация Ctrl X -> Y -> Enter).
После выполненных действий перезапустите службу SSH командами ниже.
sudo service sshd restart
Другие команды для управления пользователями
Если вам необходимо добавить пользователя в другую группу, она должна быть предварительно создана:
В Ubuntu и Debian для создания группы также можно использовать команду:
После чего можно создать пользователя следующим образом:
useradd -g имя_группы username
Если пользователь уже существует, вы можете добавить его в нужную группу командой usermod :
usermod -G имя_группы username
Для того, чтобы изменить первичную группу пользователя, используется ключ -g :
usermod -g имя_группы username
Для смены домашнего каталога пользователя используется команда:
usermod -d путь/к/новому/каталогу username
Получить информацию о пользователе можно командой:
Вывод будет содержать примерно следующие сведения:
uid=1000(username) gid=1000(username) groups=1000(username),27(sudo)
Сменить пароль можно командой:
Просмотреть список всех созданных пользователей можно командой:
Чтобы получить только список имен, без дополнительной информации, можно использовать:
Вывести список пользователей, которые сейчас в системе, можно простой командой w .
Удалить пользователя можно командой:
Для удаления группы используется команда:
Как дать Root права пользователю в Linux
Суперпользователь «root” — это король пользователей Linux / Unix. Наличие корневого доступа предоставляет полный и неограниченный доступ к дистрибутиву Linux.
В этой инструкции я покажу вам, как дать root права пользователю в системе Linux. Как правило, доступ на корневом уровне (root) используется в системном администрировании. Поэтому всегда больно давать root-доступ другим пользователям. Вы должны быть очень осторожны и должны забрать доступ, как только необходимость в этом отпадет.
Согласно разрешениям файловой системы Linux, root или суперпользователь имеет полные права на чтение (r), запись (w) и выполнение (x) любого файла. По умолчанию идентификатор пользователя root равен «0».
Я собираюсь создать двух пользователей, а именно user1 и user2. Затем я предоставлю root-правак пользователю «user1«.
Способ 1: Добавление в корневую группу с помощью usermod
Давайте посмотрим, как мы можем дать обычному пользователю root- права, добавив его в корневую группу.
# adduser user1
# adduser user2
# groupadd test
Это группы, которые есть в моей дистрибутиве Linux.
# groups
root bin daemon sys adm disk wheel
Я собираюсь добавить user1 в корневую группу следующим образом:
Приведенная ниже команда даст пользователю привилегию root
Способ 2: Добавление в корневую группу с помощью команды Useradd
Я добавил нового пользователя «user3» в корневую группу с помощью команды:
# useradd -m -G root user3
# groups user3
user3 : user3 root
useradd -c “Imitation Root” -d /home/root_user -m -k /etc/skel -s /bin/bash -u 0 -o -g root root_user
Способ 3: Редактирование файла /etc/passwd
Отредактируйте /etc/passwd для конкретного пользователя. Измените UID и GID пользователя на «0«. Это даст root права пользователю в linux.
Теперь пользователь temproot должен иметь привилегии root:
ВНИМАНИЕ: это не рекомендуемый метод предоставления корневого доступа (root-прав)
Способ 4: Дать права пользователя Sudo
Конфигурационный файл sudo — это файл /etc/sudoers, и вы можете отредактировать его с помощью команды visudo:
Использование visudo защищает от конфликтов и гарантирует использование правильного синтаксиса.
Чтобы предоставить полный доступ конкретным пользователям
Добавьте в файл запись, приведенную ниже:
Следовать этому методу не очень хорошая идея, потому что это позволяет и User1, и User2 использовать команду su для предоставления постоянных привилегий root. Таким образом пропуская функции ведения журнала команд sudo.
Предоставление доступа к определенным файлам одному конкретному пользователю
Эта запись позволяет User 1 и всем другим членам группы получить доступ ко всем программным файлам в каталогах /sbin и /usr/sbin, а также привилегию выполнения команды /usr/oracle/backup.pl…
User1, %operator ALL= /sbin/, / usr/sbin, /usr/oracle/backup.pl
Если у вас есть какие-либо вопросы или предложения по этой теме, оставьте комментарий.
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
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:
$ sudo useradd -ou 0 -g 0 john $ sudo passwd john
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):
$ grep john /etc/passwd john:x:1001:1001::/home/alice:/bin/sh
For this, it is required to edit the file /etc/passwd and just change UID and GID to 0 :
$ grep john /etc/passwd john:x:0:0::/home/john:/bin/sh
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:
$ sudo usermod -a -G root john
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:
$ sudo userdel john userdel: user john is currently used by process 1
To delete him, firstly open the /etc/passwd file and change his UID .
For example, change the line:
After this, you’ll be able to delete user john with userdel command:
46 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.
ntfs@brix:~$ 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.