Помощник веб-разработчикаСтатьиИнструменты

Права root через sudo

sudo — утилита для расширения прав и переключения на других пользователей или другие группы без передачи пароля. Наиболее часто используется для получения прав root.

Если необходимо создать нового пользователя, введите в терминале:

sudo useradd пользователь -m -s /bin/bash && sudo passwd пользователь

Затем, по запросу терминала, создайте и повторите пароль.

Чтобы дать пользователю возможность получать права суперпользователя с помощью sudo, необходимо добавить его в специальную группу, в CentOS и RHEL эта группа называется «wheel», а в Ubuntu, Debian и Linux Mint — «sudo». Для добавления введите команду:

для CentOS и RHEL

sudo usermod -a -G wheel пользователь

для Ubuntu, Debian и Linux Mint

sudo usermod -a -G sudo пользователь

Теперь, чтобы получить права root, достаточно выполнить команду «sudo» с опцией:

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

sudo sestatus

Если терминал выведет «команда не найдена» или «Command 'sestatus' not found» — значит не установлен, если в первой строке вывода будет строка «SELinux status: enabled» — значит установлен и активен.

Права root в SELinux.

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

Для дальнейшей работы потребуется набор инструментов, который можно установить командой:

Для CentOS и RHEL

sudo yum install -y setroubleshoot

для Ubuntu, Debian и Linux Mint:

sudo apt install -y policycoreutils

Затем нужно узнать с каким SELinux пользователем ассоциирован root, для этого введите команду:

sudo semanage login -l | grep root

Вывод будет примерно таким:

root          unconfined_u          s0-s0:c0.c1023       *

Из вывода видно, что root приравнен к «unconfined_u», следовательно, чтобы дать системному пользователю полномочия суперпользователя, необходимо его уравнять с «unconfined_u»:

sudo usermod пользователь -Z unconfined_u