Visudo Manual

Visudo Manual Техника

Почему sudo

Использование sudo лучше (безопаснее) открытия сессии root, по следующим причинам:

По этим причинам, переключение на root с помощью «sudo -i» (или sudo su) считается устаревшим, поскольку отменяет вышеперечисленные особенности.

Чтобы произвести сколь-нибудь значимые изменения в настройках операционной системы своего сервера, администратор должен обладать доступом к этой самой системе с соответствующими правами. Это относится ко всем операционным системам. В Linux учётная запись, которая может всё, это – root. Эту учётную запись ещё называют суперпользователь. И для администрирования Linux-системы необходимо либо использовать учётную запись root’а, либо получить его полномочия при работе со своей учётной записью.

В первом случае администратор должен подключаться с паролем root’а напрямую или используя команду su. Во втором – пароль root’а не нужен. Для получения привилегий суперпользователя потребуется команда sudo.

Sudo — программа, дающая возможность системным администраторам позволять пользователям выполнять команды как root (или другой пользователь). Основная философия — позволить людям выполнить свою задачу, используя как можно меньше привилегий. Также sudo — эффективный способ для записи деятельности root: кто использует sudo,какую команду и когда.

Грубо говоря, sudo установлен и включён (если во время установки были выбраны компоненты рабочего стола). Но в Debian права не предоставляются по умолчанию (в отличие от некоторых других дистрибутивов).

Выполнить команду от имени root: (по умолчанию в Debian)

(Примечание для DebianSqueeze: введён аналогичный инструмент PolicyKit, ориентированные на потребности настольных компьютеров и ноутбуков).

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

Настройки sudo по большей части находятся в файле /etc/sudoers. Для внесения изменений в этот файл крайне нежелательно использовать обычный редактор текста. Дело в том, что некорректный синтаксис файла sudoers запросто может навредить операционной системе в части повышения уровня полномочий учётных записей и их действий. Для редактирования файла sudoers существует специальная команда – visudo. Данная команда использует штатный текстовый редактор, но при сохранении внесённых в файл изменений производит проверку синтаксиса.

Здесь есть один интересный момент. Команда visudo обычно использует текстовый редактор vi. Но, например, в Ubuntu visudo открывает файл при помощи nano. И, несмотря на это, операционная система сохраняет возможность заменить использующийся редактор. В Ubuntu команда для изменения редактора выглядит следующим образом:

$ sudo update-alternatives —config editor

Visudo Manual

Что такое sudo?

Sudo – это утилита для операционных систем семейства Linux, позволяющая пользователю запускать программы с привилегиями другой учётной записи, как правило, суперпользователя. В части запуска команд от имени root’а sudo является альтернативой утилите su. Правда, в отличие от su, которая запускает оболочку root’а и предоставляет суперполномочия всем дальнейшим инструкциям, sudo предоставляет только временное повышение привилегий. Таким образом, включая полномочия root’а только когда это действительно необходимо, применение команды sudo снижает вероятность того, что опечатка или ошибка в вызываемой команде причинит какой-нибудь вред системе.

Непривилегированная учётная запись должна иметь некоторые полномочия в системе для того, чтобы иметь возможность воспользоваться командой sudo. Если быть более точным, такой пользователь должен состоять в определённой группе безопасности. Для добавления пользователя в данную группу в Ubuntu/Debian применяется следующая команда:

Для CentOs такая команда имеет вид:

Инструкции, предназначенные для добавления учётным записям дополнительных прав, следует запускать от имени root’а, либо пользователя уже владеющего правами на запуск sudo.

Updated: by

You should not edit sudoers directly, by opening it in a text editor. Instead, edit it with visudo, which will verify its validity before saving the changes to disk.

Description

Visudo edits the sudoers file in a safe fashion, similar to the way that vipw safely edits the passwd file. Visudo locks the sudoers file against multiple simultaneous edits, provides basic sanity checks, and checks for parse errors. If the sudoers file is currently being edited by someone else, or by you in another session, you will receive a message to try again later.

There is a hard-coded list of one or more editors that visudo uses, set at compile-time. The default is vi.

Syntax

A typical sudoers file looks like this:

The special word ALL may be used for any of these values, and means that any are allowed.

hope ALL=(ALL:ALL) ALL

Then save the file and exit the text editor launched by visudo.

Important files

Then run visudo:

Or if you already have sudo rights, run visudo with sudo:

Sudoer directives

%hope ALL=(ALL:ALL) ALL

3 мая, 2016 12:20 пп

Управление пользователями – один из важнейших навыков системного администратора окружения Linux. Как правило, в новой системе по умолчанию существует только один пользователь – root.

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

Данное руководство научит создавать аккаунты новых пользователей, передавать права sudo и удалять пользователей.

Добавление пользователя

Чтобы добавить нового пользователя в сессии root, введите:

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

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

Настройка прав доступа sudo

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

Добавление пользователя в группу sudo

В системе Ubuntu 16.04 все пользователи, входящие в группу sudo, по умолчанию имеют доступ к команде sudo.

Чтобы узнать, в какие группы входит новый пользователь, введите:

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

Флаг –aG добавляет пользователя в перечисленные группы.

Тестирование настройки

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

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

Чтобы выполнить команду с правами администратора, добавьте sudo в начало команды:

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

Редактирование файла /etc/sudoers

Альтернативный способ расширить привилегии пользователя – отредактировать файл sudoers. Для этого используется команда visudo которая позволяет открыть файл /etc/sudoers в редакторе и явно указать привилегии каждого системного пользователя.

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

Дополнительно:  Root 100 alcohol

Если вы находитесь в сессии root, введите:

В сессии не-root пользователя с доступом к sudo введите:

Как правило, visudo открывает /etc/sudoers в редакторе vi, который может показаться сложным для новичков. По умолчанию в новых установках Ubuntu visudo использует более знакомый редактор nano. Для перемещения курсора используйте клавиши со стрелками. Найдите строку:

root    ALL=(ALL:ALL) ALL

Скопируйте эту строку и вставьте её ниже, заменив root именем пользователя, которому нужно передать права суперпользователя.

Добавьте такую строку для каждого пользователя, которому нужны расширенные привилегии. Сохраните и закройте файл.

Удаление пользователей

Ненужные аккаунты можно удалить.

Чтобы удалить пользователя, оставив его файлы, введите:

Чтобы удалить пользователя вместе с его домашним каталогом, используйте:

Если удалённый пользователь обладал правами суперпользователя, необходимо отнять эти права, отредактировав файл:

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

Заключение

Управление пользователями – необходимый навык при администрировании сервера Ubuntu 16.04. Он позволит отделить пользователей и дать им только необходимый для работы доступ.

Для получения дополнительных сведений о настройке sudo, ознакомьтесь с нашим руководством о редактировании файла sudoers.

NAME

visudo —
edit the sudoers file

SYNOPSIS

visudo edits the sudoers
file in a safe fashion, analogous to vipw(8). visudo locks the
sudoers file against multiple simultaneous edits, provides
basic sanity checks, and checks for parse errors. If the
sudoers file is currently being edited you will receive a
message to try again later.

-c,
—check

Enable check-only mode. The existing
sudoers file will be checked for syntax errors, owner
and mode. A message will be printed to the standard output describing the
status of sudoers unless the -q
option was specified. If the check completes successfully,
visudo will exit with a value of 0. If an error is
encountered, visudo will exit with a value of
1.

-f
sudoers,
—file=sudoers

Specify an alternate sudoers file location. With this
option, visudo will edit (or check) the
sudoers file of your choice, instead of the default,
. The lock file used is the specified
sudoers file with “.tmp” appended to it.
In check-only mode only, the argument to
-f may be
‘-’, indicating that
sudoers will be read from the standard input.

-h,
—help

Display a short help message to the standard output and exit.

-q,
—quiet

Enable
quiet
mode. In this mode details about syntax errors are not printed. This
option is only useful when combined with the -c
option.

-s,
—strict

-V,
—version

Print the visudo and sudoers
grammar versions and exit.

-x
output_file,
—export=output_file

Debugging
and sudoers plugin arguments

visudo versions 1.8.4 and higher support a
flexible debugging framework that is configured via
Debug lines in the
sudo.conf(5) file.

Starting with sudo 1.8.12,
visudo will also parse the arguments to the
sudoers plugin to override the default
sudoers path name, UID, GID and file mode. These
arguments, if present, should be listed after the path to the plugin (i.e.
after ). Multiple arguments may be
specified, separated by white space. For example:

Plugin sudoers_policy sudoers.so sudoers_mode=0400

The
sudoers_file
argument can be used to override the default path to the
sudoers file.

The
sudoers_gid
argument can be used to override the default group of the sudoers file. It
must be specified as a numeric group ID (not a group name).

ENVIRONMENT

Invoked by visudo as the editor to use

sudoers
file busy, try again later.

Someone else is currently editing the sudoers file.

/etc/sudoers.tmp:
Permission denied

You didn’t run visudo as root.

Can’t find
you in the passwd database

visudo:
/etc/sudoers: input and output files must be different

SEE
ALSO

vi(1),
sudo.conf(5),
sudoers(5),
sudo(8),
vipw(8)

Many people have worked on sudo over the
years; this version consists of code written primarily by:

Todd C. Miller

See the CONTRIBUTORS file in the sudo
distribution (https://www.sudo.ws/contributors.html) for an exhaustive list
of people who have contributed to sudo.

CAVEATS

If you feel you have found a bug in
visudo, please submit a bug report at
https://bugzilla.sudo.ws/

SUPPORT

visudo is provided “AS IS”
and any express or implied warranties, including, but not limited to, the
implied warranties of merchantability and fitness for a particular purpose
are disclaimed. See the LICENSE file distributed with
sudo or https://www.sudo.ws/license.html for
complete details.

visudo edits the sudoers
file in a safe fashion, analogous to vipw(8). visudo locks the
sudoers file against multiple simultaneous edits, provides
basic sanity checks, and checks for parse errors before installing the
edited file. If the sudoers file is currently being edited
you will receive a message to try again later.

There are two sudoers settings that determine
which editor visudo will run.

Enable check-only mode. The existing
sudoers file (and any other files it includes) will be
checked for syntax errors. If the path to the sudoers
file was not specified, visudo will also check the
file owner and mode. A message will be printed to the standard output
describing the status of sudoers unless the
-q option was specified. If the check completes
successfully, visudo will exit with a value of 0.
If an error is encountered, visudo will exit with
a value of 1.

Specify an alternate sudoers file location, see below.
As of version 1.8.27, the sudoers path can be specified
without using the -f option.

A sudoers file may be specified instead of the
default, . The temporary file used is
the specified sudoers file with “.tmp”
appended to it. In check-only mode only,
‘-’ may be used to indicate that
sudoers will be read from the standard input. Because the
policy is evaluated in its entirety, it is not sufficient to check an
individual sudoers include file for syntax errors.

Starting with sudo 1.8.12,
visudo will also parse the arguments to the
sudoers plugin to override the default
sudoers path name, UID, GID and file mode. These
arguments, if present, should be listed after the path to the plugin (i.e.,
after ). Multiple arguments may be
specified, separated by white space. For example:

The
sudoers_gid
argument can be used to override the default group of the sudoers file. It
must be specified as a numeric group-ID (not a group name).

Used by visudo if
SUDO_EDITOR is not set

/etc/sudoers:
Permission denied

you do not
exist in the passwd database

unknown
defaults entry «name»

visudo edits the sudoers
file in a safe fashion, analogous to vipw(8). visudo locks the
sudoers file against multiple simultaneous edits, performs
basic validity checks, and checks for syntax errors before installing the
edited file. If the sudoers file is currently being edited
you will receive a message to try again later.

Enable check-only mode. The existing
sudoers file (and any other files it includes) will be
checked for syntax errors. If the path to the sudoers
file was not specified, visudo will also check the
file ownership and permissions (see the -O and
-P options). A message will be printed to the
standard output describing the status of sudoers unless
the -q option was specified. If the check
completes successfully, visudo will exit with a
value of 0. If an error is encountered, visudo
will exit with a value of 1.

Дополнительно:  После обновления windows 10 не работает bluetooth блютуз - все методы

-I,
—no-includes

-O,
—owner

-P,
—perms

Enforce the default permissions (mode) of the sudoers
file. In edit mode, the permissions of the edited file will be set to the
default. In check mode (-c), an error will be
reported if the file permissions are incorrect. This option is enabled by
default if the sudoers file was not specified.

visudo versions 1.8.4 and higher support a
flexible debugging framework that is configured via
Debug
lines in the sudo.conf(5) file.

ignoring
editor backup file

ignoring
file name containing ‘.’

See the CONTRIBUTORS.md file in the sudo
distribution (https://www.sudo.ws/about/contributors/) for an exhaustive
list of people who have contributed to sudo.

If you believe you have found a bug in
visudo, you can submit a bug report at
https://bugzilla.sudo.ws/

visudo is provided “AS IS”
and any express or implied warranties, including, but not limited to, the
implied warranties of merchantability and fitness for a particular purpose
are disclaimed. See the LICENSE.md file distributed with
sudo or https://www.sudo.ws/about/license/ for
complete details.

17 марта, 2016 12:01 пп

Centos, Linux, Ubuntu

Разделение прав доступа – одна из наиболее важных парадигм безопасности, реализуемых в Linux и Unix-подобных операционных системах. Обычные пользователи работают с ограниченными правами; так сокращаются масштабы их влияния на их собственную среду и на операционную систему в целом.

Пользователь root имеет привилегии суперпользователя. Эта учетная запись администратора не имеет ограничений, которые присутствуют на учётных записях обычных пользователей. Другие пользователи могут выполнять команды с правами root в ряде отдельных случаев.

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

Примечание: Данное руководство было выполнено на сервере Ubuntu 12.04, однако большинство современных дистрибутивов Linux будут вести себя аналогичным образом.

Для выполнения руководства нужно предварительно выполнить начальную настройку сервера:

Войдите на сервер как не-root пользователь.

Как получить права root

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

Вход как root

По запросу введите root-пароль.

Команда su

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

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

Итак, чтобы получить root-права, просто введите:

Система запросит пароль root-пользователя, после чего откроет доступ к сессии оболочки root-пользователя.

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

Команда sudo

Последний способ получения привилегий root – команда sudo.

Команда sudo позволяет выполнять отдельные команды с правами root без необходимости открывать новую сессию.

Примечание: В отличие от su, команда sudo запрашивает не пароль root, а пароль пользователя, который вызывает команду.

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

Что такое Visudo?

Команда sudo настраивается при помощи файла /etc/sudoers.

Важно! Никогда не редактируйте этот файл при помощи обычного текстового редактора! Для этого следует использовать visudo.

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

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

Как правило, visudo открывает файл /etc/sudoers в редакторе vi. В системе Ubuntu visudo использует nano.

Чтобы настроить команду visudo для использования vi в системе Ubuntu, выполните команду:

There are 3 choices for the alternative editor (providing /usr/bin/editor).
Selection    Path                Priority   Status
————————————————————
* 0            /bin/nano          40        auto mode
1            /bin/nano           40        manual mode
2            /usr/bin/vim.basic   30        manual mode
3            /usr/bin/vim.tiny    10        manual mode

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

В системе CentOS это значение можно изменить, добавив в ~/.bashrc строку:

Чтобы обновить настройки, введите:

Чтобы открыть /etc/sudoers, введите:

Редактирование файла sudoers

Итак, в выбранном вами текстовом редакторе на экране откроется файл sudoers.

Ниже приведены параметры файла системы Ubuntu 12.04 (закомментированные строки опущены, а изменения, внесённые при начальной настройке сервера, сохранены).

Примечание: Файл sudoers системы CentOS гораздо более объёмен; некоторые его параметры в этом руководстве не описаны.

Стандартные параметры

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

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

Третий и четвёртый параметр должны быть вам знакомы. Четвёртую строку вы добавили самостоятельно, но, возможно, не разбирали её подробно.

Это значит, что пользователи root и demo могут запускать все команды при помощи sudo, указав свой пароль.

Параметры привилегий групп

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

Имена групп начинаются с символа %.

Пользовательские правила

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

Создание алиасов

Файл sudoers можно более удобно структурировать при помощи различных алиасов (англ. – alias).

К примеру, можно создать три разные группы пользователей с совмещёнными правами:

Имена групп должны начинаться с большой буквы. После этого можно дать пользователям GROUPTWO право на изменение БД apt-get:

GROUPTWO    ALL = /usr/bin/apt-get update

Если в правиле не указан пользователь и группа, по умолчанию sudo использует root.

Затем можно разрешить пользователям группы GROUPTHREE выключать и перезапускать машину; для этого нужно создать алиас команды:

Cmnd_Alias      POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart
GROUPTHREE  ALL = POWER

Алиас команды POWER содержит команды для отключения и перезапуска машины.

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

Runas_Alias     WEB = www-data, apache
GROUPONE    ALL = (WEB) ALL

Теперь любой пользователь группы GROUPONE может выполнять команды в сессиях пользователей www-data или apache.

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

Блокировка правил

Существует ряд способов контроля поведения и реакции sudo на вызов.

К примеру, команда updatedb в сочетании с пакетом mlocate относительно безвредна. Чтобы обычный пользователь мог выполнять её с привилегиями суперпользователя, не вводя пароль, можно создать такое правило:

GROUPONE    ALL = NOPASSWD: /usr/bin/updatedb

Команда NOPASSWD значит, что система не будет запрашивать пароль. Также существует команда PASSWD, которая отвечает за противоположное поведение и используется по умолчанию.

NOPASSWD распространяется на всё правило, если команда PASSWD не отменяет его. Например, строка может выглядеть так:

GROUPTWO    ALL = NOPASSWD: /usr/bin/updatedb, PASSWD: /bin/kill

Ещё одна удобная команда – NOEXEC, которая используется для предотвращения опасного поведения определенных программ. К примеру, некоторые команды, такие как less, могут вызывать другие команды:

Дополнительно:  Dingdong root для android на русском скачать бесплатно на телефон

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

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

Дополнительные сведения

В данном разделе собраны различные полезные советы по работе с sudo.

Если вы указали пользователя или группу в параметре Run as, вы можете выполнять команды в сессии этого пользователя при помощи флагов -u и –g соответственно:

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

Если в целях безопасности вы хотите сбросить этот таймер, используйте команду:

Чтобы узнать права пользователя, введите:

Эта команда выведет все права, указанные в файле /etc/sudoers для данного пользователя.

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

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

Теперь у вас есть базовые навыки работы с файлом sudoers и правами root.

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

Использование псевдонимов

При организации данных по разным пользователям и группам в файле /etc/sudoers полезно использование различных псевдонимов. Вот так выглядят записи в /etc/sudoers, соответствующие трём разным группам пользователей:

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

GROUPA ALL = /usr/bin/apt update

Подобным же образом мы можем дать участникам группы GROUPC разрешение на перезагрузку операционной системы. Для этого необходимо создать псевдоним, содержащий команды на перезагрузку системы. Такой псевдоним мы назовём, например, RSTRT. После чего участникам группы GROUPC нужно будет выдать разрешение на запуск этих команд.

Cmnd_Alias RSTRT = /sbin/restart, /sbin/reboot
GROUPC ALL= RSTRT

В файле /etc/sudoers существует возможность контролировать реакцию утилиты sudo при её вызове. Например, вы можете разрешить пользователям выполнять какую-либо команду с использованием полномочий root, но без необходимости пользователю вводить свой пароль. Для таких случаев применяется опция NOPASSWD. Так будет выглядеть запись в /etc/sudoers, разрешающая запуск команды apt update участникам группы GROUPB:

GROUPB ALL = NOPASSWD: /usr/bin/apt update

И кстати, в /etc/sudoers есть настройка, позволяющая изменить количество неправильных попыток ввода пароля при выполнении команды sudo. По умолчанию таких попыток разрешено 3. Но если есть желание увеличить из количество, допустим, до четырёх, то такая настройка будет выглядеть как:

Defaults passwd_tries=4

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

Defaults badpass_message=»Your password is not correct!»

И эту фразу пользователь будет видеть вместо стандартной Sorry, try again.

Visudo Manual

Проблемы и решения

Типичный сеанс выглядит следующим образом:

Это сообщение обычно означает, что пользователю не разрешено выполнять этого действие.

Sudoers только для чтения

Файл /etc/sudoers только для чтения, даже для root!

Нужно использовать команду visudo для редактирования /etc/sudoers.

CVE-2005-4158

If you had more complex setups where you meant to pass through environment variables, your work around may be more complex or no longer possible.

Опция PASSWD не работает

sudo has a flag called exempt_group which contains a list of groups for which always NOPASSWD is true and setting PASSWD has no effect. On Debian Systems this list consists of the group sudo.

Неправильное поведение HOME (и настроек профиля)

Defaults env_keep += HOME

Для получения дополнительной информации см. список изменений для версии 1.7.4

Обзор настроек

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

Содержимое файла /etc/sudoers

Теперь давайте рассмотрим некоторые настройки, содержащиеся в файле /etc/sudoers.

Во-первых, строка Defaults env_reset отвечает за сброс терминальной среды с целью удалить переменные пользователя. Такая мера безопасности применяется для ликвидации потенциально опасного воздействия переменных среды в сессии sudo.

Во-вторых, строка Defaults secure_path задаёт значение для переменной PATH. Такой путь для приложений используется утилитой sudo для выполнения операций. Это позволяет защитить систему от использования пользовательских путей, которые могут быть потенциально опасными.

Далее, в файле /etc/sudoers есть строка, определяющая полномочия sudo для учётной записи root.

Visudo Manual

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

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

Visudo Manual

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

Visudo Manual

Несмотря на то, что строка с параметром includedir начинается со знака #, комментарием данная строка не является. Этот параметр указывает на то, что файлы, находящиеся в директории /etc/sudoers.d, также применяются для настройки полномочий sudo. Файлы в этом каталоге создаются в основном для того, чтобы определённые пользователи могли запускать определённые команды с использованием привилегий sudo. Данные файлы, также как и файл /etc/sudoers, необходимо редактировать командой visudo. Например, для того, чтобы отредактировать файл /etc/sudoers.d/mysettingsfile, следует применить следующую конструкцию:

$ sudo visudo -f /etc/sudoers.d/mysettingsfile

Использование sudo

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

$ sudo command-you-want-to-run

Например, запуск команды для обновления списка доступных пакетов в Debian из-под учётной записи не имеющей полномочий root’а выглядит как:

$ sudo apt update

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

Visudo Manual

# apt update
# apt install sudo

Visudo Manual

Visudo Manual

Чтобы не набирать sudo в каждой команде, можно при помощи sudo авторизоваться под именем другой учётной записи. Для этого применяется опция -i:

$ sudo -i

Чтобы посмотреть текущие настройки sudo, используйте команду с опцией -l. Вывод будет содержать информацию по разрешённым к запуску командам. В данном случае нашему пользователю разрешено всё:

Visudo Manual

Конфигурация sudo содержится в файле /etc/sudoers. В этом файле можно изменить такие настройки как, например, какой учётной записи можно запускать команды от имени суперпользователя, или какие команды может выполнять пользователь, и так далее. Для внесения изменений в конфигурационный файл наберите следующую команду, подключившись к системе root’ом:

Вместо заключения

Файл /etc/sudoers является очень мощным инструментом настройки функционирования системы. В этой ознакомительной статье мы лишь вкратце коснулись данной темы. Ну, а поскольку вы теперь знаете, что такие настройки возможны, глубину их изучения определять именно вам. Ведь применять или не применять их в работе с Linux-системами, решаете вы.

Вкратце, мы ознакомились с весьма полезной и популярной в Linux-системах утилитой sudo. Её функционал и возможности намного шире, чем то, что описано в данной статье. И если вам нужна более подробная информация по настройке и использованию команды, то добро пожаловать в другие разделы нашего справочника.

Оцените статью
Master Hi-technology
Добавить комментарий