Настройка root прав ubuntu

Повышение пользовательских прав командой sudo

Существует более современный способ повышения пользовательских прав с помощью команды sudo (substitute user and do — подменить пользователя и выполнить).

Sudo является программой системного администрирования, дающей возможность выполнять команды от имени root. Если для выполнения команды su все пользователи должны были знать пароль root, что само по себе небезопасно, то sudo его не требует. В sudo нужен пароль самого пользователя.

Sudo работает следующим образом, перед командой которую необходимо выполнить, нужно добавить sudo, например:

От имени root:
yum install -y wget

При помощи sudo:
sudo yum install -y wget

Sudo определяет пользователя сверяясь с настройками находящимися в файле /etc/sudoers, если пользователь внесен в sudoers, то команда выполняется. Если выполнить команду sudo от имени пользователя не внесенного в sudoers, то можно увидеть такую картину:

$ sudo yum install -y wget
 password for test: 
test is not in the sudoers file.  This incident will be reported.

При попытке выполнить команду sudo, от имени пользователя test, выдается ответ что такого пользователя в файле sudoers не обнаружено. О событии создается запись в лог файле, также высылается электронное письмо root-пользователю с уведомлением о случившемся.

From root@test2.localdomain  Sat Feb 11 20:19:12 2017
Return-Path: <root@test2.localdomain>
X-Original-To: root
Delivered-To: root@test2.localdomain
Received: by test2.localdomain (Postfix, from userid 0)
        id CD2AF8051BC; Sat, 11 Feb 2017 20:19:12 +0300 (MSK)
To: root@test2.localdomain
From: test@test2.localdomain
Auto-Submitted: auto-generated
Subject: *** SECURITY information for test2 ***
Message-Id: <20170211171912.CD2AF8051BC@test2.localdomain>
Date: Sat, 11 Feb 2017 20:19:12 +0300 (MSK)

test2 : Feb 11 20:19:12 : test : user NOT in sudoers ; TTY=pts/0 ; PWD=/home/test ; USER=root ; COMMAND=/bin/yum install wget

Для того чтобы пользователь мог выполнять sudo, его надо внести в файл sudoers. Сделать это можно двумя способами.

Первый способ — внесение имени пользователя непосредственно в сам файл /etc/sudoers. Для изменения файла sudoers, требуется обладать правами root.

nano /etc/sudoers
 
Находим строку:
root    ALL=(ALL)	ALL
 
Добавляем под нее имя пользователя, которому будет разрешен доступ к sudo:
root    ALL=(ALL)	ALL
test    ALL=(ALL)	ALL
 
Сохраняем и выходим.

После того как пользователь будет внесен в список допущенных к использованию, он может выполнять команду sudo.

Вторым способом разрешить пользователям выполнять команду sudo, является внесение пользователя в группу wheel, точно так же как в случае с командой su.

Вносим пользователя в группу wheel:
usermod -a -G wheel techlist_1
 
Проверяем:
id techlist_1
uid=1001(techlist_1) gid=1004(techlist_1) группы=1004(techlist_1),10(wheel)
 
Перезагружаем систему:
reboot

После перезагрузки системы, пользователь внесенный в группу wheel, сможет выполнять sudo.

Для того чтобы полностью сменить окружение пользователя на окружение root, используется команда sudo -i, что равносильно использованию команды su —

$ sudo -i
 password for test: 
# 

Возвращение в свое пользовательское окружение, происходит при помощи команды exit.

Каждый раз при использовании sudo, требуется ввод пароля пользователя. При вводе пароля, происходит обновление временной метки, что позволяет выполнять sudo без ввода пароля на протяжении некоторого времени. По умолчанию ввод пароля не требуется на протяжении пяти минут, после чего пароль опять будет затребован. Временной промежуток можно изменить при помощи опции timeout в файле sudoers. Существует возможность отключения ввода пароля.

Отключить ввод пароля для пользователей принадлежащих к группе wheel:

Открываем для внесения изменений:
nano /etc/sudoers
 
Находим строку:
# %wheel        ALL=(ALL)	NOPASSWD: ALL
 
Раскомментировать строку:
%wheel        ALL=(ALL)	NOPASSWD: ALL
 
 
Сохраняем изменения и выходим.

Отключить ввод пароля для пользователей добавленных вручную:

Открываем для внесения изменений:
nano /etc/sudoers
 
Находим строку с нужным пользователем:
test    ALL=(ALL)     ALL
 
Изменяем ее:
test    ALL=(ALL)     NOPASSWD: ALL
 
Сохраняем изменения и выходим.

Sudo гибкая в настройке и позволяет настроить множество различных параметров. Грамотный администратор знающий sudo может творить настоящие чудеса с пользователями.

Для просмотра руководства по настройке sudo, выполняется команда:

Посмотреть руководство sudo:
man sudoers
 
Выйти из руководства:
q
 
Посмотреть список дополнительных опций команды:
sudo -h

Повышение пользовательских прав командой su

Давайте рассмотрим такую ситуацию, когда пользователю нужно установить некую программу, например wget.

$ yum install -y wget
Загружены модули: fastestmirror
Для выполнения этой команды необходимы привилегии суперпользователя.

Все, приехали, для выполнения этой команды нужны привилегии суперпользователя. Что делать дальше? Далее можно воспользоваться так называемым повышением пользовательских прав. Для подобных целей существует команда su.

$ su
Пароль: 
# 

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

Было $, стало #. Теперь можно установить нужную программу или выполнить необходимую операцию, ради которой все это и было затеяно. Для возвращения назад используют команду exit.

# exit
exit
$ 

После выполнения команды exit происходит возвращение в свое пользовательское окружение $.

Существует еще один вариант выполнения команды — su -. При выполнении su — изменяется не только имя, но и рабочее окружение пользователя.

$ su -
Пароль: 
Последний вход в систему:Сб фев 11 21:11:06 MSK 2017на pts/0
# 

Были $, стали #. Грубо говоря стали пользователем root, до тех пор пока не будет выполнена команда exit и пользователь не вернется назад в свое окружение.

У некоторых читателей может появиться вопрос: Зачем это нужно, если обычный пользователь зная пароль root может входить напрямую, без всяких заморочек? Да может, зная пароль это не составит особого труда. Я описываю ситуацию когда root и обычный пользователь, это один и тот-же человек.

Некоторые пользователи закрывают удаленный root-доступ на свои VPS/VDS сервера в качестве меры безопасности. Поскольку напрямую под root они входить уже не могут, то входят от имени обычного пользователя, после чего повышают себя до root для выполнения нужных задач.

А как быть если пользователей много? Ведь это не есть хорошо, когда пароль root знает каждый из них. В том-то и дело что не каждый юзер знает пароль. Грамотный администратор не будет разбрасываться паролем направо и налево, а доверит его только проверенным пользователям. Пароль может знать каждый, но не каждый сможет его применить, этой привилегией обладает тот, кто входит в специальную группу пользователей.

В UNIX-системах существует так называемая группа wheel, только входящие в нее пользователи могли выполнять команду su. В последних версиях Linux любой пользователь может выполнять su по умолчанию, а раньше у них такой возможности не было. В старых версиях Linux и системе FreeBSD, команда su могла выполняться только после внесения пользователя в группу wheel администратором.

Подобную манипуляцию пользователями можно провернуть и в современных версиях Linux. Допустим что у нас есть два пользователя techlist_1 и techlist_2, по умолчанию не относящиеся к группе wheel.

# id techlist_1
uid=1001(techlist_1) gid=1004(techlist_1) группы=1004(techlist_1)
# id techlist_2
uid=1002(techlist_2) gid=1005(techlist_2) группы=1005(techlist_2)

Добавим пользователя techlist_1 в группу wheel, а techlist_2 оставим без изменений.

# usermod -a -G wheel techlist_1
# id techlist_1
uid=1001(techlist_1) gid=1004(techlist_1) группы=1004(techlist_1),10(wheel)
# id techlist_2
uid=1002(techlist_2) gid=1005(techlist_2) группы=1005(techlist_2)

Отредактируем файл /etc/pam.d/su для возвращения возможности разделения пользователей, как в старых версиях Linux.

# nano /etc/pam.d/su

Находим следующую строку и расскомментируем ее, уберем знак #, в начале строки:
#auth           required        pam_wheel.so use_uid
auth           required        pam_wheel.so use_uid

Сохраняем изменения и выходим.

Проверим как теперь пользователи смогут выполнять команду su. Сначала проверим входящего в группу wheel пользователя.

$ su
Пароль: 
# exit
exit
$ su -
Пароль: 
Последний вход в систему:Вс фев 12 04:49:44 MSK 2017на pts/1
# 

Теперь второго, которого не добавляли в группу.

$ su
Пароль: 
su: Доступ запрещен
$ su -
Пароль: 
su: Доступ запрещен
$

Что и требовалось доказать. Один пользователь выполняет команду su, а другой не может. Вот так может работать повышение пользовательских прав при помощи команд su и su -.

Как в Ubuntu войти как root-пользователь

14.05.2019

Linux

По умолчанию в операционной системе Ubuntu учетная запись root не включена во время установки, соответственно далее пользователю не предлагается создать пароль root. Вместо этого создаётся обычная учетную запись пользователя, но с привилегиями sudo. То есть, для выполнения каких-либо команд с правами рута, необходимо запускать их вместе с командой sudo. Это не всегда удобно! Сейчас я расскажу как зайти под Root в Ubuntu или дать пользователю права рута. Существует несколько вариантов и мы рассмотрим каждый из них!

Примечание: Перед тем, как включить пользователя root в Убунту, Вы должны понимать всю опасность этого для неопытного пользователя. Выполняя команды от его имени, Вы можете легко и просто, буквально за несколько команд, привести операционную систему в нерабочее состояние.

Даём root-права пользователю

Первый и самый простой вариант позволяет не вводить постоянно команду sudo при каждом вводе команды, которую надо выполнить в привилегированном режиме. Для перехода в полный режим рута введите такую команду:

sudo -i

После этого Вы перейдёте в привилегированный режим суперпользователя Убунту.

Есть и второй вариант:

sudo -s

В этом случае домашний каталог не сменится на /root, а останется пользовательский. Как правило, этот вариант удобнее.

Как включить рута в Ubuntu

Вы всегда можете включить корневую учетную запись root в Ubuntu, задав ей пароль с помощью команды passwd. Но чтобы запустить команду passwd для учетной записи root, вам нужны права sudo.

Мы можем включить корневую учетную запись Ubuntu, задав ей пароль с помощью команды passwd. Но чтобы запустить команду passwd для учетной записи root, вам нужны права sudo.
Откройте терминал Ubuntu и выполните команду, чтобы убедиться, что вы являетесь членом группы администраторов:

groups

Если у вас есть соответствующие права, то вы можете установить пароль root с помощью следующей команды:

sudo passwd root

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

После этого, команда passwd предложит вам ввести новый пароль для учетной записи root. Это делается дважды. Теперь вы можете войти в систему как пользователь root с помощью команды:

su

Далее последует запрос запроса пароля — введите пароль для root.

Как зайти под root в Ubuntu Desktop GUI

Если вы хотите зайти в систему как пользователь root  не в консоли, а на графическом рабочем столе Ubuntu, тогда вам нужно выполнить несколько дополнительных шагов после включения пользователя root:

Откройте фаил /etc/gdm3/custom.conf. Здесь Вам надо будет добавить AllowRoot = true в блоке . Вот так:

 AllowRoot=true

Затем откройте файл /etc/pam.d/gdm-password и найдите такую строку:

auth required pam_succeed_if.so user != root quiet_success

Закомментируйте её, поставив знак # перед ней:

#auth required pam_succeed_if.so user != root quiet_success

Далее перезагрузите компьютер. Когда он перезапустится и появится экрану входа в систему — кликните на ссылку «Нет в списке?». Остаётся лишь ввести root в поле username и указать пароль для суперпользователя. Вот и всё!

root, ubuntu, права пользователя, рут, суперпользователь

Изменение корневого раздела

Используя arch-chroot

Bash-скрипт arch-chroot является частью пакета из официальных репозиториев. Перед тем, как запускать , этот скрипт монтирует интерфейсные файловые системы вроде и делает доступным из под окружения chroot.

Запустите arch-chroot с указанием нового корневого каталога:

# arch-chroot /mnt/arch

Чтобы запустить командную оболочку bash вместо sh:

# arch-chroot /mnt/arch /bin/bash

Чтобы запустить в окружении chroot минуя создание сеанса в командной оболочке:

# arch-chroot /mnt/arch /usr/bin/mkinitcpio -p linux

Используя chroot

# cd /mnt/arch
# mount -t proc proc proc/
# mount --rbind /sys sys/
# mount --rbind /dev dev/

И, опционально:

# mount --rbind /run run/

Чтобы использовать интернет-соединение в chroot может понадобиться скопировать resolv.conf:

# cp /etc/resolv.conf etc/resolv.conf

Чтобы запустить bash в окружении chroot:

# chroot /mnt/arch /bin/bash

Примечание: Если вы получили ошибки:

  • , это значит, что архитектуры основной среды и среды нового корневого каталога не совпадают.
  • , перемонтируйте раздел с разрешением exec: .

После входа в сеанс chroot может понадобиться проинициализировать среду командной оболочки в новой среде:

# source /etc/profile
# source ~/.bashrc

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

# export PS1="(chroot) $PS1"

Используя systemd-nspawn

systemd-nspawn может использоваться для запуска команды или операционной системы в легковесном контейнере. Во многих случаях он похож на chroot, но является более мощным инструментом, так как он полностью эмулирует отдельную иерархию файловой системы и дерево процессов, различные системы межпроцессного взаимодействия, имя хоста и домена.

Перейдите в точку монтирования нового корневого раздела и запустите systemd-nspawn:

# cd /mnt/arch
# systemd-nspawn

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

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

Как включить/отключить вход root в Ubuntu

По умолчанию Ubuntu не устанавливает пароль root во время установки системы. Однако это не означает, что учетная запись root не существует в Ubuntu или что её нельзя включить. Вместо этого, вам предоставляется возможность выполнять задачи с привилегиями суперпользователя, используя команду sudo.

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

Внимание: включение учетной записи root совсем не обязательно, поскольку большинство действий в Ubuntu на самом деле не требуют использования учетной записи root. Хотя пользователям настоятельно рекомендуется использовать команду sudo для получения привилегий root, по той или иной причине вы все же можете получить доступ как пользователь root в терминале или включить/отключить вход в учетную запись root в Ubuntu, используя следующие способы

Хотя пользователям настоятельно рекомендуется использовать команду sudo для получения привилегий root, по той или иной причине вы все же можете получить доступ как пользователь root в терминале или включить/отключить вход в учетную запись root в Ubuntu, используя следующие способы.

1. Как включить учетную запись root в Ubuntu?

Для включения учетной записи пользователя root выполните следующую команду и введите пароль, который вы первоначально установили для своего пользователя (sudo user).

Вы можете изменить пароль root с помощью команды sudo passwd root, как показано в примере ниже:

3. Как отключить доступ Root в Ubuntu?

Если вы хотите отключить вход в учетную запись root, запустите следующую команду, чтобы установить срок действия пароля.

Для получения дополнительной информации вы можете обратиться к документации Ubuntu.

В этой статье мы объяснили, как включить и отключить root в Ubuntu Linux.

Спасибо за уделенное время на прочтение статьи!

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

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Источник

Смотрите видео: Как Получит Права Супер Пользователя root. linux ubuntu обзор для начинающих (November 2019).

Как вы знаете, Linux очень серьезно относится к управлению пользователями и предоставлению им прав на работу с системой. Обычный пользователь может записывать файлы только в свой каталог и каталог /tmp/. Также есть возможность читать некоторые файлы в корневой файловой системе. Но вы не можете устанавливать программы, ведь для этого нужно право на запись, не можете изменять атрибуты файлов, не можете запускать сервисы, не можете читать некоторые файлы логов и еще много чего не можете.

В Linux управлять корневой файловой системой и создавать там файлы имеет право только пользователь root.

В этой статье мы рассмотрим какие программы нужны для того, чтобы получить права root пользователя linux, как они работают, как выполнять программу с правами root от обычного пользователя и как запускать графические программы с правами root. А также выясним что такое sudo в чем разница su или sudo.

Что такое корень файловой системы?

Понятно, что корень файловой системы — это главная директория, в которой находятся все другие. Но что это в физическом смысле? Как я уже сказал, диски могут монтироваться в самые разные места файловой системы, сменные носители и постоянные диски довольно часто монтируются в /mnt/ или в /media/, так как они специально предназначены для этого (это понятно даже из названия). Так вот, корневая файловая система — эта та точка, куда смонтирован системный диск. Можно сказать, что корень файловой системы Linux, это как примерно диск C в Windows. Другие диски, вместо присвоения им букв D, E, F и пр., монтируются ниже по иерархии в какие-то указанные для них точки файловой системы.

О командах для перемещения по директориям файловой системы смотрите «Азы работы в командной строке Linux (часть 1)».

Редактирование конфигурационных файлов

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

Многие файлы вы сможете открыть, но не сможете что-либо в них изменить, вам просто не будет доступна операция сохранения:

Конечно, можно открывать конфигурационные файлы с правами через диалог запуска приложений командой

gksudo gedit /путь/до/файла

Gedit — это стандартный текстовый редактор Ubuntu.

Однако в диалоге запуска не работает автодополнение, следовательно путь до файла вам придётся набирать вручную, что не всегда удобно. Поэтому можно для запуска текстового редактора от имени суперпользователя использовать терминал, например:

Учтите, что — это чисто консольная утилита, поэтому использовать её в диалоге запуска приложений нельзя, хотя из терминала через неё можно запускать графические приложения. А наоборот, утилита графическая, поэтому её не стоит использовать в терминале, хотя это и не запрещено.

В итоге откроется редактор с возможностью сохранения изменений:

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

Типы файлов

Однако как минимум в одной группе каждый пользователь состоит всегда. Это так называемая основная группа, по умолчанию она носит такое же имя, как и у самого пользователя.

И именно поэтому и только по этой причине он собственно и является администратором.

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

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

На самом деле права администратора в основном как раз и заключаются в возможности использовать .

Ограничение доступа для root

После настройки sudo и назначения пользователям нужных прав, можно ограничить доступ к учетной записи root. Существует несколько способов защиты от входа под root и ограничения доступа к его учетной записи.

Изменение пользовательской оболочки root

Для предотвращения входа в оболочку root, достаточно отредактировать файл /etc/passwd, заменив оболочку /bin/bash на /sbin/nologin. Данный способ предотвращает доступ к учетной записи root, с помощью команд использующих оболочку и протокола ssh.

Открываем файл для редактирования:
nano /etc/passwd
 
Находим строку:
root:x:0:0:root:/root:/bin/bash
 
Заменяем /bin/bash на /sbin/nologin:
root:x:0:0:root:/root:/sbin/nologin

Пробуем подключиться по ssh от имени root.

Connecting to 192.168.1.210:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last failed login: Sun Feb 12 06:13:22 MSK 2017 on pts/1
There was 1 failed login attempt since the last successful login.
Last login: Sun Feb 12 06:11:08 2017 from 192.168.1.2
This account is currently not available.

Connection closed by foreign host.

Disconnected from remote host(CentOS_Test_2) at 06:46:52.

Пробуем выполнить команду su от имени обычного пользователя.

$ su
Пароль: 
This account is currently not available.
$

Таким образом достигается полное запрещение доступа от имени root, так и выполнение команд от его имени другими пользователями. Администратор настроив свой аккаунт пользователя и наделив его необходимыми правами может обходиться sudo не прибегая к помощи root.

Запрет удаленного доступа для root

Данный способ запрещает удаленное подключение от имени root по протоколу ssh. Ограничение затрагивает только ssh доступ, все остальные команды: su — или su — продолжают работать.

Для этого вносят изменения в файл /etc/ssh/sshd_config

Открываем файл для редактирования:
nano /etc/ssh/sshd_config
 
Находим строку в разделе Authentication:
PermitRootLogin yes
 
Заменяем yes на no:
PermitRootLogin no
 
Перезапускаем ssh:
service sshd restart - в CentOS
service ssh restart - в Debian & Ubuntu

Запрет доступа root с консольных устройств

Для ограничения доступа к учетной записи root, администраторы также могут запретить вход с любых консольных устройств использующих tty. Для реализации этого ограничения требуется очистить файл /etc/securetty.

cat /dev/null > /etc/securetty

Файл очищается и применяются изменения. Сначала не помешает сделать бэкап файла.

Зачем нужно монтирование

С помощью такого подхода — когда любой диск может быть любой папкой в системе, можно делать очень гибкую настройку. Самый частый пример, встречающийся на практике: файлы пользователя хранятся в папке /home/имя_пользователя/, например, у меня это папка /home/mial/. При установке операционной системы я могу сделать так, что мой второй или третий диск (а не системный) будет смонтирован в точку /home/mial/. То есть вся операционная система будет располагаться на одном диске, а все мои пользовательские файлы — на другом. Что это даёт? В случае переустановки системы, я вновь настрою монтирование диска с моими файлами в папку /home/mial/ и в результате в новой, только что установленной системе, уже будут на месте все мои документы, фотографии и прочее!

Поскольку часто узким местом в мощных компьютерах является скорость чтения с диска, то на на серверах с высокой нагрузкой практикуется перенос файлов баз данных (например, /var/lib/mysql/ на другой диск), возможен перенос файлов сервера (/srv/http/) на третий диск, файлов логов (/var/log/httpd/) на ещё один диск и т. д. Это позволяет добиться того, что данные из баз данных считываются независимо от записи журналов, то есть пока выполняются операции чтения-записи для одного процесса, другому процессу не нужно ждать своей очереди — всё выполняется одновременно.

Ещё монтирование позволяет выбрать различные режимы, например, диск можно смонтировать в режиме «только чтение» — в результате с него можно будет просматривать файлы, но испортить этот диск невозможно.

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

Вход в систему как Root

Рассмотрите возможность использования других методов для получения временного корневого доступа. Вход в систему как root не рекомендуется для регулярного использования.

На это есть несколько причин. Во-первых, так очень легко выполнять команды, которые приведут вашу систему в неработоспособное состояние. Во-вторых, представляет угрозу безопасности, особенно если вы используете SSH-сервер на своей машине.

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

Использование sudo или su вместо входа в систему как root поможет предотвратить непреднамеренный ущерб при входе в систему как root.

Использование этих команд дает пользователю возможность подумать о команде до нанесения серьезного ущерба.

Некоторые дистрибутивы, такие как Ubuntu, оставляют корневую учетную запись заблокированной, пока вы не разблокируете ее вручную.

Во-первых, это не позволяет пользователям неосознанно наносить слишком большой ущерб, используя корневую учетную запись. Во-вторых, защищает систему от потенциальных хакеров. С заблокированной учетной записью root хакеры не могут получить к ней доступ.

Введите . root как пользователь при входе в Linux.

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

Введите пароль пользователя root в качестве пароля пользователя.

Избегайте запуска сложных программ при входе в систему как root.

Существует вероятность того, что программа, которую вы намереваетесь запустить, окажет негативное влияние на вашу систему, когда у нее есть root-доступ. Настоятельно рекомендуется использовать sudo или su запускать программы, а не входить в систему как пользователь root.

Основные параметры

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

Отключаем введение при первом использовании:

Суперпользователь не может выполнять sudo:

Теперь если вы попытаетесь выполнить sudo sudo ничего не сработает:

Изменять домашнюю директорию для целевого пользователя, по умолчанию остается папка текущего пользователя в качестве домашней директории:

Сохранять список групп текущего пользователя:

Запрашивать пароль суперпользователя вместо пароля пользователя:

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

Задать количество попыток ввода пароля перед тем, как sudo прекратит работу, по умолчанию — 3:

Количество минут, которое пройдет перед тем, как sudo будет спрашивать пароль снова, по умолчанию 5. Если установить значение в 0, то пароль будет спрашиваться всегда, независимо от того как давно вы использовали утилиту:

Следующий параметр задает количество минут, пока sudo будет ожидать повторного ввода пароля при неправильном вводе:

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

Можно указать другого пользователя, не root, от которого будут выполняться все команды, для этого используйте:

Вы можете записывать в лог все попытки подключения к sudo:

Затем пробуем проверить работу лога:

Это были все самые интересные параметры настройки работы sudo, которые могут вам понадобиться, дальше мы рассмотрим как задать права доступа sudo для пользователей.

Настройка пользователей sudo

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

Такая команда очень небезопасна, она разрешает всем и все. Первое ALL — разрешить всем пользователям, второе ALL — для всех хостов, третье ALL — разрешить вход под любым пользователем и четвертое — разрешить выполнять любою команду. Но куда более часто используется другая конструкция:

Означает то же самое, что и предыдущее, только здесь мы разрешаем использовать sudo не всем пользователям, а только тем, которые состоят в группе wheel.

Тут мы уже ограничили возможный выбор пользователей только пользователем root. Также можно указать группу пользователя, от имени которого он может выполнять команды:

Это значит что можно выполнить команду от имени root или другого пользователя из группы admins. Еще мы можем указать команды, которые может выполнять пользователь. Например:

Пользователь может выполнять только команды mount и umount от имени суперпользователя. Теперь сделаем еще интереснее, пользователь может выполнять mount и umount без пароля, а все остальные команды с паролем:

Также можно ограничивать пользователям по хостах, например, разрешаем использование sudo только из host1:

Осталось еще рассмотреть как применять псевдонимы. Псевдонимы могут быть таких типов:

  • User_Alias — псевдоним пользователей, которые будут использовать sudo;
  • Runas_Alias — псевдоним пользователей, от имени которых будут выполняться команды;
  • Host_Alias — псевдоним хоста;
  • Cmnd_Alias — псевдоним команд;

Например, создадим четыре псевдонима и применим их в нашем правиле:

Далее применяем все это в правиле:

Это значит, что пользователи из списка Users смогут выполнять команды Cmds от имени пользователей Amdins на хостах Hosts.

Еще осталось сказать несколько слов о флагах. Флаг NOPASSWD говорит, что не нужно запрашивать пароль при выполнении этого правила. Например, разрешить всем пользователям выполнять команду mount с sudo без пароля:

Также можно запретить выполнять именно эту команду вообще с помощью флага NOEXEC:

Вы можете проверить правильно ли была проведена настройка файла /etc/sudoers и посмотреть все созданные правила с помощью команды:

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

Запуск графических приложений в среде chroot

Если у вас есть запущенный X-сервер, вы сможете запускать даже графические приложения в среде chroot.

Чтобы разрешить среде chroot соединение с сервером X, откройте виртуальный терминал внутри сервера (то есть, внутри рабочего стола пользователя, который в данный момент вошел в систему), запустите команду xhost, которая даст права каждому подключаться к X-серверу пользователя:

$ xhost +local:

Теперь, для соединения приложений с сервером X, установите переменной окружения DISPLAY в сеансе chroot значение, совпадающее с переменной окружения DISPLAY пользователя, от имени которого запущен сервер. То есть, выполните

$ echo $DISPLAY

от имени этого пользователя для того, чтобы узнать значение переменной, и выполните

# export DISPLAY=:0

в среде chroot, установив переменной нужное значение (в данном примере это ).

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий