Отсутствует в файле sudoers, это действие будет зарегистрировано

Обновлено: 04.07.2024

Этот документ (7002705) предоставляется с учетом отказа от ответственности в конце этого документа.

Окружающая среда

SUSE Linux Enterprise Server 10
SUSE Linux Enterprise Desktop 10
SUSE Linux Enterprise Server 11
SUSE Linux Enterprise Server 12
SUSE Linux Enterprise Server 15
SUSE Linux Enterprise Server для приложений SAP 12
SUSE Linux Enterprise Server для приложений SAP 15
Виртуальные машины Microsoft Azure

Ситуация

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

Разрешение

sudo (superuser do) позволяет настроить пользователей без полномочий root для выполнения команд уровня root, не являясь пользователем root. Доступ может быть предоставлен администратором корневого уровня через настройку файла /etc/sudoers. Обратите внимание, что не рекомендуется вносить изменения непосредственно в файл /etc/sudoers и следует использовать утилиту visudo.

Синтаксис использования sudo довольно прост: вы указываете имя команды, которому предшествует 'sudo'. Например, если пользователю нужно запустить /sbin/chown , вы можете запустить его с помощью команды:

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

Настройка пароля для использования

Вот как настроить каждый из них:

<р>1. Для доступа пользователя без полномочий root введите пароль root:

Удалите строку " Defaults targetpw " и строку " ALL ALL=(ALL) ALL " в файле /etc/sudoers. (ПРИМЕЧАНИЕ: если вы удалите строку « Defaults targetpw », а не другую, все пользователи будут иметь полный доступ к утилитам на уровне root, просто введя свой пароль).

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

Настройка разрешений для пользователей без полномочий root

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

В разделе «Спецификация привилегий пользователя» вы можете установить привилегии на уровне пользователя или группы. Вот как это выглядит по умолчанию:


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

При использовании этого синтаксиса Джо будут доступны все параметры chown. Если вы хотите ограничить параметры, которые может использовать Джо, перечислите их в записи следующим образом:

Обратите внимание, что есть три отдельных записи. Тот, который позволяет -R , один для -V и один для -R-V . sudo позволяет использовать несколько параметров только в том случае, если вы добавите их специально (и только в указанном вами порядке), поэтому -R-V в дополнение к спискам отдельных параметров.

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

С приведенной выше конфигурацией команда /bin/chown -R не требует пароля, /bin/chown -V и /bin/chown -RV требуют пароля для запуска, но они будут разрешены.

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


Вам просто нужно указать имя группы с % перед ним. Тот же синтаксис для пользователей применяется к группам.

Отказ от ответственности

Эта база знаний поддержки предоставляет ценный инструмент для клиентов SUSE и сторон, заинтересованных в наших продуктах и ​​решениях, для получения информации, идей и обучения друг у друга. Материалы предоставляются для информационного, личного или некоммерческого использования внутри вашей организации и представлены «КАК ЕСТЬ» БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

  • Идентификатор документа:7002705
  • Дата создания: 19 февраля 2009 г.
  • Дата изменения: 31 марта 2021 г.
    • SUSE Linux Enterprise Desktop
    • SUSE Linux Enterprise Server
    • SUSE Linux Enterprise Server для приложений SAP

    В системах Unix/Linux учетная запись пользователя root является учетной записью суперпользователя, поэтому ее можно использовать для любых действий, доступных в системе.

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

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

    И одна из худших вещей, которые могут случиться с системным администратором Ubuntu, — это потеря привилегий на использование команды sudo. Эта ситуация обычно называется «сломанным sudo». Это может быть абсолютно разрушительным.

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

    1. Пользователь не должен быть удален из группы sudo или admin.
    2. Файл /etc/sudoers был изменен, чтобы запретить пользователям из sudo или группы администраторов повышать свои привилегии до уровня root с помощью команды sudo.
    3. Разрешение для файла /etc/sudoers не установлено на 0440.

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

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

    Как исправить неработающую команду sudo в Ubuntu

    Если на вашем компьютере используется только Ubuntu, после его включения нажмите и удерживайте клавишу Shift в течение нескольких секунд, чтобы открыть меню загрузки Grub. С другой стороны, если вы используете двойную загрузку (Ubuntu вместе с Windows или Mac OS X), вы должны увидеть меню загрузки Grub по умолчанию.

    С помощью стрелки вниз выберите «Дополнительные параметры для Ubuntu» и нажмите Enter.

    Меню Ubuntu Grub

    Вы окажетесь в интерфейсе ниже, выберите ядро ​​с параметром «режим восстановления», как показано ниже, и нажмите Enter, чтобы перейти в «меню восстановления».

    Режим восстановления Ubuntu

    Ниже находится «Меню восстановления», указывающее, что корневая файловая система монтируется как доступная только для чтения. Перейдите к строке «root Drop to root shell prompt», затем нажмите Enter.

     Меню восстановления Ubuntu - Переместить в корневую подсказку оболочки

    Далее нажмите Enter для обслуживания:

    Ubuntu Maintenance

    В этот момент вы должны быть в командной строке корневой оболочки. Как мы видели ранее, файловая система монтируется как доступная только для чтения, поэтому, чтобы внести изменения в систему, которую нам нужно перемонтировать, она доступна для чтения/записи, выполнив следующую команду:

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

    Примечание. Не забудьте использовать фактическое имя пользователя в системе, в моем случае это aaronkilik.

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

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

    Затем откройте файл sudoers.

    и добавьте содержимое ниже:

    Предположим, что разрешение для файла /etc/sudoers не установлено на 0440, затем выполните следующую команду, чтобы исправить это:

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

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

    Меню восстановления Ubuntu — возобновить нормальную загрузку

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

    Подтвердить Ubuntu Обычная загрузка

    Обзор

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

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

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

    Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

    TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

    Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

    Закрыто. Этот вопрос не соответствует правилам переполнения стека. В настоящее время ответы не принимаются.

    Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.

    Закрыто 12 месяцев назад.

    Сообщество рассматривало возможность повторного открытия этого вопроса 7 месяцев назад и оставило его закрытым:

    Первоначальные причины закрытия не были устранены

    После входа в ssh я получил следующее сообщение:

    Имя пользователя отсутствует в файле sudoers. Об этом инциденте будет сообщено.

    Как решить эту проблему? Я подключаюсь по ssh к моему виртуальному частному серверу.

    Только для пользователей Mac: выйдите из системы и войдите в систему с помощью одной из учетных записей администратора. Нажмите значок Apple (вверху слева) => Системные настройки => Пользователи и группы. выберите нужное имя пользователя, затем активируйте «Разрешить пользователю управлять этим компьютером» и перезапустите.

    11 ответов 11

    Затем добавьте пользователя ниже администратора, как показано ниже.

    Рекомендуется использовать visudo, чтобы избежать одновременного редактирования (возможно, в данном случае это не проблема, но все же. )

    Как это понять? Проблема в том, что пользователь не может использовать sudo, так как же часть решения может использовать sudo?

    Оба приведенных выше ответа верны, но проще добавить пользователя в группу sudo в системах на основе Debian (Ubuntu, kbuntu, debian и т. д.) и в группу Wheel в системах на основе RedHat (RedHat, Fedora, CentOS и т. д.)

    Точно. Включите OpenSuse во 2-ю группу. В моем случае я изменил порядок, изменив sudoers перед добавлением моего пользователя в колесо, и оказался здесь.

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

    Это очень распространенная ошибка новичков. Ошибка возникает из-за того, что мы пытаемся получить доступ/обновить что-то с суперпривилегиями от пользователя, а не от root-пользователя.

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

    Редактор откроет файл, теперь прокрутите вниз, где вы увидите строку

    Как видите, я только что добавил свое имя пользователя со всеми разрешениями.

    Сохраните файл и выйдите. Вернитесь к пользователю и начните с легкостью использовать команды sudo.

    Получил синтаксис, немного отличающийся от синтаксиса Родни от моего хоста

    Их объяснение было

    Пользователь должен быть добавлен в группу wheel.

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

    После этого вам может потребоваться выйти из системы и снова войти в нее

    Что делать, если мой пользователь уже принадлежит к группе wheel, но я все равно получаю сообщение "Имя пользователя отсутствует в файле sudoers. Об этом инциденте будет сообщено"?

    @AdrianLopez синтаксис колеса имеет смысл только в том случае, если колесо является группой sudoers, что в вашем случае, вероятно, не так. Этот ответ также не очень полезен, но, если честно, он пропускает информацию. По умолчанию колесо не находится в файле sudoers.

    В верхней части вышеупомянутого файла /etc/sudoers есть информация:

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

    Найдите следующий раздел файла /etc/sudoers и добавьте права пользователя:

    Сохраните файл (нажмите esc и введите :x, если vim является вашим текстовым редактором по умолчанию, для nano нажмите ctrl+o , введите, а затем ctrl+x ).

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

    Вы должны использовать visudo для редактирования файла /etc/sudoers.

    Просто запустите sudo visudo -f /etc/sudoers

    и добавьте свое имя пользователя с правильным синтаксисом и правами доступа. Вы можете найти больше в man sudoers

    Введен root с помощью команды $ su root . Введите корневой пароль

    Установите sudo: $ apt-get install sudo -y

    Затем зарегистрируйтесь и войдите в сессию

    Наконец, проверьте с помощью: @:~$ sudo apt-get update

    1. ssh root@localhost
    2. sudo vi /etc/sudoers
    3. вставить имя пользователя в файл 'sudoers'
    4. сохранить и выйти из ssh

    Если вы не можете найти visudo в своей системе

    Запустить этот инструмент

    добавить эту строку под

    Сохраните изменения и готово!

    Сначала переключитесь/войдите в учетную запись пользователя root или учетную запись с правами sudo.

    Затем добавьте пользователя в группу для пользователей sudo:

    Если вы используете Ubuntu, членам группы sudo предоставляются привилегии sudo, поэтому вы можете использовать это:

    Если вы используете CentOS, членам группы wheel предоставляются привилегии sudo, поэтому вы можете использовать это::

    Примечание. Замените имя пользователя желаемым именем пользователя.

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

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

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

    В этом кратком руководстве объясняется, как изменить файл журнала sudo по умолчанию в дистрибутивах Linux, таких как Debian, Ubuntu, CentOS, Fedora и openSUSE.

    Почему мы должны изменить файл журнала sudo по умолчанию? Вы можете удивиться. По умолчанию все инциденты sudo регистрируются в файле /var/log/auth.log в системах на основе Debian, таких как Ubuntu. В системах на основе RPM, таких как CentOS и Fedora, действия sudo хранятся в файле /var/log/secure/. В openSUSE журналы sudo хранятся в файле /var/log/messages. Однако они не предназначены для журналов sudo. Если вы заглянете в эти файлы, то заметите, что в них также хранятся другие типы журналов, такие как cron, ssh, systemd и т. д. Поэтому, если вы хотите настроить специальный файл для регистрации как успешных, так и неудачных попыток sudo (а также ошибок), выполните шаги, указанные ниже.

    Изменить файл журнала sudo по умолчанию в Linux

    По умолчанию sudo ведет журнал через системный журнал, но это можно изменить в файле «/etc/sudoers». Во-первых, мы увидим, как это сделать в системах на основе Debian.

    1. Как изменить файл журнала Sudo по умолчанию в Ubuntu

    В Ubuntu действия sudo хранятся в файле /var/log/auth.log.

    Чтобы изменить или установить специальный файл журнала для sudo в Ubuntu 20.04, отредактируйте файл «/etc/sudoers» с помощью команды:

    Добавьте в конце следующую строку:

    Установить местоположение файла журнала Sudo в Debian, Ubuntu

    Установить местоположение файла журнала Sudo в Debian, Ubuntu

    Нажмите CTRL+X, а затем Y, чтобы сохранить и закрыть файл.

    Далее отредактируйте файл "/etc/rsyslog.d/50-default.conf":

    Добавьте следующую строку (строка номер 8), отмеченную красным цветом, перед строкой "auth,authpriv.*".

    Как изменить местоположение файла журнала Sudo в Debian, Ubuntu

    Изменить местоположение файла журнала Sudo в Debian, Ubuntu

    Здесь /var/log/sudo.log — это файл, в котором будут храниться все журналы sudo. Сохраните и закройте файл (CTRL+X и Y).

    Наконец, перезапустите службу rsyslog, чтобы изменения вступили в силу:

    С этого момента все попытки sudo будут регистрироваться в файле /var/log/sudo.log. Например, я собираюсь запустить следующую команду:

    Теперь позвольте мне проверить, входит ли он в файл /var/log/sudo.log:

    Пример вывода:

    Видите последнюю строку в приведенном выше выводе? Команда «apt update» регистрируется в файле /var/log/sudo.log.

    2. Как изменить файл журнала Sudo по умолчанию в Debian

    Редактировать файл "/etc/sudoers" в Debian с помощью команды:

    Добавьте в конце следующую строку:

    Сохраните и закройте файл.

    Далее отредактируйте файл "/etc/rsyslog.conf":

    Добавьте следующую строку (номер строки 61), отмеченную красным цветом, перед строкой "auth,authpriv.*;local1.none".

    Сохраните и закройте файл, нажав CTRL+X, а затем Y.

    Перезапустите службу rsyslog, чтобы изменения вступили в силу:

    С этого момента все попытки sudo будут регистрироваться в файле /var/log/sudo.log.

    3. Как изменить файл журнала Sudo по умолчанию в CentOS, Fedora

    Журналы sudo хранятся в файле "/var/log/secure" в системах на основе RPM, таких как CentOS и Fedora.

    Чтобы установить специальный файл журнала sudo в CentOS 8, отредактируйте файл «/etc/sudoers» с помощью команды:

    Эта команда откроет файл /etc/sudoers в редакторе Vi. Нажмите «i», чтобы войти в режим вставки, и добавьте в конце следующую строку:

    Нажмите ESC и введите :wq, чтобы сохранить и закрыть.

    Далее отредактируйте файл "/etc/rsyslog.conf":

    Добавьте/измените следующие строки (строки 46 и 47):

    Изменить расположение файла журнала Sudo в CentOS

    Изменить местоположение файла журнала Sudo в CentOS

    Нажмите CTRL+X, а затем Y, чтобы сохранить и закрыть файл.

    Перезапустите rsyslog, чтобы изменения вступили в силу.

    С этого момента все попытки sudo будут регистрироваться в файле /var/log/sudo.log.

    Пример вывода:

     Просмотр файлов журнала sudo в CentOS

    Просмотр файлов журнала sudo в CentOS

    4. Как изменить файл журнала Sudo по умолчанию в openSUSE

    Журналы sudo хранятся в файле "/var/log/messages" в SUSE и openSUSE.

    Чтобы установить специальный файл журнала sudo в openSUSE, отредактируйте файл «/etc/sudoers» с помощью команды:

    Эта команда откроет файл /etc/sudoers в редакторе Vi. Нажмите «i», чтобы войти в режим вставки, и добавьте в конце следующую строку:

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

    В SUSE Linux Enterprise Server sudo по умолчанию настроен на работу аналогично su. Тем не менее, sudo предлагает возможность разрешить пользователям выполнять команды с привилегиями любого другого пользователя с широкими возможностями настройки. Это можно использовать для назначения ролей с определенными привилегиями определенным пользователям и группам. Например, можно разрешить членам группы пользователей выполнять команду с привилегиями wilber. Доступ к команде можно дополнительно ограничить, например, запретив указывать какие-либо параметры команды. В то время как su всегда требует пароль root для аутентификации с помощью PAM, sudo можно настроить для аутентификации с вашими собственными учетными данными. Это повышает безопасность, поскольку не нужно делиться корневым паролем. Например, вы можете разрешить членам группы пользователей запускать команду frobnicate от имени wilber с тем ограничением, что аргументы не указываются. Это можно использовать для назначения ролей с определенными возможностями определенным пользователям и группам.

    sudo прост в использовании, но очень мощен.

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

    Команда id -un печатает имя текущего пользователя.

    Пароль не отображается во время ввода ни в виде обычного текста, ни в виде маркеров.

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

    В течение ограниченного периода времени вам не нужно повторно вводить пароль root.

    Совет: перенаправление ввода-вывода

    Перенаправление ввода-вывода не работает так, как вы, вероятно, ожидаете:

    Только бинарник echo/cat запускается с повышенными привилегиями, а перенаправление выполняется оболочкой пользователя с привилегиями пользователя. Вы можете либо запустить оболочку, как описано в Разделе 2.1.2, «Запуск оболочки», либо использовать вместо нее утилиту dd:

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

    Запускает оболочку, заданную переменной среды SHELL, или оболочку по умолчанию целевого пользователя. Если задана команда, она передается оболочке (с параметром -c), в противном случае оболочка запускается в интерактивном режиме.

    То же, что и -s , но запускает оболочку как оболочку входа. Это означает, что файлы запуска оболочки ( .profile и т. д.) обрабатываются, и текущий рабочий каталог устанавливается в домашний каталог целевого пользователя.

    Читайте также: