Не удается инициализировать модуль политики centos

Обновлено: 07.07.2024

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

В найденных на эту тему материалах говорится, что редактирование данного файла необходимо производить через команду visudo . Хотелось бы, конечно, чтобы авторы таких материалов уточняли, что команду следует запускать от имени суперпользователя, так как при вводе просто visudo в терминале появляется:

$ visudo
visudo: /etc/sudoers: Отказано в доступе

После ввода "правильной" команды открывается окно редактора nano с загруженным в него содержанием файла sudoers .

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

Вследствие отсутствия необходимости использования редактора nano мне не было известно назначение клавиш, с помощью которых производится запись в файл вносимых изменений:


И только в дальнейшем после "подсказки друга" мне стало известно, что символ ^ соответствует клавише Ctrl.

>>> /etc/sudoers: ошибка синтаксиса near line 21 <<<
sudo: parse error in /etc/sudoers near line 21
sudo: no valid sudoers sources found, quitting
sudo: не удаётся инициализировать модуль политики

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


К счастью, "лечение" сломанного механизма сводится к выполнению одной команды:

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

root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL

Исправьте свои "неверные" записи или приведите файл к исходного значению, после чего нажмите на комбинацию клавиш Ctrl и o. На последующий запрос нажмите y:


Далее, используя клавишу Backspace, удалите в наименовании файла .tmp и на вопрос о перезаписи существующего файла снова нажмите клавишу y:



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

я только что установил sudo на свой свежий сервер centos и успешно установил его с помощью команды:

Теперь, когда я набираю sudo , он показывает ошибку:

может ли кто-нибудь сказать мне, что случилось с sudo

Вот мой конфигурационный файл sudo:

2 ответа

Пытаюсь запустить инструментальный тест на AS. застрял с этой ошибкой: java.lang.IllegalStateException: не удалось инициализировать плагин: interface org.mockito.plugins.MockMaker at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:66) в.

Попробуйте переустановить sudo

если это не сработает, удалите sudo и переустановите с:

Надеюсь, это сработает для вас!

Просто была такая же ошибка. В моем случае пользователь, упомянутый в команде sudo, не существовал в этой системе (мы используем мультисистемные sudoers)

Похожие вопросы:

Я попытался изменить файл /etc/sudoers в AIX7.1, чтобы избежать запроса пароля при использовании sudo, так как у меня нет достаточного права на visudo , поэтому попытался добавить разрешение на.

Я следовал документации о android-studio, однако, когда я выполняю studio.sh, я получил эту ошибку : Плагин com.intellij не удалось инициализировать и будет отключен: null

При создании модели сущности из базы данных она выдает следующую ошибку с помощью VS 2012 Я погуглил его, но не нашел никакого ответа Пожалуйста, помогите мне решить мою проблему ошибка есть.

Пытаюсь запустить инструментальный тест на AS. застрял с этой ошибкой: java.lang.IllegalStateException: не удалось инициализировать плагин: interface org.mockito.plugins.MockMaker at.

Я работаю над CentOS 7, и обычные команды sudo (например, sudo yum update и т. д.) работают нормально. Однако одна из моих команд sudo требует сохранения переменных окружения, поэтому я использовал.

Я использую PythonAnywhere с Postgresql и столкнулся с несколькими проблемами. Когда я пытаюсь сделать что-нибудь, например python manage.py makemigrations , я получаю следующую ошибку : sudo.

Я обращаюсь к своему серверу (centOS 6.9 (hostgator)) через SSH. Когда я использую команду sudo в пределах PuTTY, я получаю следующую ошибку sudo: эффективный uid не равен 0, us sudo установлен.

Я не знаю, в чем проблема. Ошибка не появляется, когда я удаляю import mysql.connector из моего модуля connection.py, но это не решает мою проблему.

Я использую python 3.5.3 и для from scipy import maxentropy Я получаю ошибку: ImportError: не удается импортировать имя 'maxentropy' Пожалуйста, предложите решение этой ошибки. Спасибо

Я должен получить ImportError: не удается импортировать имя 'deque' из 'collections' Как решить эту проблему? Я уже изменил имя модуля (имя модуля- collections.py ), но это не сработало.

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

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

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

В нашем простом примере также будет три файла

Содержимое файла app.py будет выглядеть следующим образом:

Содержимое файла models.py будет выглядеть следующим образом:

Содержимое файла controllers.py будет выглядеть следующим образом:

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

  1. Приложение начинается с app.py
  2. переменная app внутри файла app.py создается в памяти.
  3. переменная db внутри app.py создается в памяти.
  4. Теперь, чтобы импортировать auth из файла controllers.py , мы переключаемся на файл ``controllers.py`.
  5. Мы импортируем Blueprint из flask.
  6. Чтобы импортировать User , мы переключаемся на файл models.py .
  7. Теперь внутри файла models.py мы импортируем db (мы можем импортировать его, потому что он был создан на шаге 3)
  8. И программа продолжается, и так далее, и так далее.

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

Теперь мы попытаемся изменить файл app.py , чтобы ввести проблему циклической зависимости.

Теперь, как разработчик, мы можем подумать, что весь наш импорт должен быть в верхней части файла, разве это не делает ваш код чище. Да, конечно! это действительно делает код чище.

Теперь у нас есть проблема циклической зависимости в нашем приложении. Позвольте мне показать вам, как?

  1. Наше приложение начинается с файла app.py
  2. Во-первых, нам нужно импортировать auth_controller из файла controllers.py
  3. Давайте посетим файл controllers.py и обработаем его.
  4. Из flask мы импортируем чертеж
  5. Давайте переключимся на файл models.py , чтобы импортировать User
  6. Внутри файла models.py мы импортируем db из app (но бд еще не существует.)

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

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

Я надеюсь, что это может ответить на ваш вопрос!

Я пытаюсь импортировать некоторые переменные из другого файла python , находящегося в том же каталоге, что и другой файл python. У меня есть два файла в том же каталоге , что и ниже: constantvariables.py test.py Вот как выглядит constantvariables.py class CONST(object): FOO = 1234 NAMESPACE =.

Я постоянно получаю код ошибки: from bs4 import BeautifulSoup ImportError: не удается импортировать имя 'BeautifulSoup' из частично инициализированного модуля 'bs4' (скорее всего, из-за циклического импорта ) Не могу найти решение нигде пожалуйста помогите import requests from bs4 import.

Я установил postgres9. далее работаю с ним через командную строку. Моя ОС linux mint 18.

После установки postgres, в ОС создался пользователь postgres, о чем говорит запись в /etc/passwd:


Теперь я хотел бы создать пользователя postgres и работать под ним, а не под суперпользователем. Для этого я зашел в postgres под суперпользователем:
sudo -u postgres psql

и создал нового пользователя, новую БД, дал права пользователю на эту БД:


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

Простой 3 комментария

Bacon, а разве в 12 процедура входа под определённым пользователем сильно изменилась? zlodiak, 9 это такое легаси, не вижу не одной причины ее использовать, кроме мазохизма

sudo - запуск команды от имени пользователя ОС.
Пользователь ОС не имеет совсем ничего общего с пользователем в БД. Пользователя ОС вы не создали, ответ sudo закономерен.

Для использования psql sudo не нужен. Нужны настройки pg_hba.conf и сам psql. Например, psql -U user1 database1

Не получается. В соответствии с документацией я добавил в файл
/etc/postgresql/9.5/main/pg_hba.conf
строку
local database1 user1 trust
и снова попробовал зайти:
Пользователь ОС не имеет совсем ничего общего с пользователем в БД.

Не совсем так, судя по ошибке "Peer authentication failed", у автора включена как раз аутентификация через пользователя ОС, т.е. PostgreSQL ищет и проверяет пароль пользователя в ОС.
Хотя он вроде пытался изменить это, значит либо ошибка в pg_hba.conf, либо не было reload.

Что не противоречит утверждению

Пользователь ОС не имеет совсем ничего общего с пользователем в БД.

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

hba же необходимо смотреть целиком, от позиции строки в списке правил результат может меняться. Правила проверяются строго по порядку и применяется только первое совпадающее. Так если сначала сделать local all all peer а затем local all all trust - второе правило никогда не сработает.

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