sudo su – с ошибкой su: не удалось выполнить /bin/bash: Доступ запрещен

Вопрос или проблема

У меня есть Red Hat Enterprise Linux Server release 7.7.
Создан локальный пользователь. Файл sudoers настроен с помощью ALL = (ALL) ALL для этого пользователя. Пользователь может выполнять любую команду, например: sudo ls, sudo cat, sudo wherever.

Однако следующая команда не работает: sudo su -
Она выдает сообщение об ошибке:

Последний вход: Вт Июн 15 10:21:52 -03 2021 на pts/1
su: не удалось выполнить /bin/bash: Доступ запрещен

Я уже проверил разрешения файлов и директорий.

[root@hostname ~]$ ls -l /bin/bash
-rwxr-xr-x 1 root root 964592 Мар 12  2019 /bin/bash

[root@hostname ~]$ ls -ld /usr/lib*
drwxr-xr-x 40 root root 12288 Мар 26  2020 /usr/lib
drwxr-xr-x 59 root root 36864 Май 11  2020 /usr/lib64
drwxr-xr-x 24 root root  4096 Мар 24  2020 /usr/libexec

[root@hostname ~]$ ls -ld /tmp/
drwxrwxrwt 75 root root 12288 Июн 15 09:34 /tmp/

[root@hostname ~]$ stat /
  Файл: ‘/’
  Размер: 4096            Блоки: 8          IO блок: 4096   директория
Устройство: fd01h/64769d    Идент. узла: 2           Ссылки: 22
Доступ: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Доступ: 2021-06-15 09:30:45.000000000 -0300
Изменено: 2020-03-27 17:56:07.000000000 -0300
Изменено: 2021-06-15 09:30:44.000000000 -0300
  Создан: -

Какие идеи?

SELinux предотвращает выполнение программ; проверьте с помощью sestatus, установлен ли режим на enforcing.

Вы можете протестировать это, временно отключив его (setenforce 0) и посмотрев, будет ли теперь работать sudo. Не рекомендуется.

Вместо этого измените значение по умолчанию noexec в файле sudoers:
Убедитесь, что строка Defaults noexec удалена или закомментирована в файле /etc/sudoers.

Когда опция noexec включена, только команды, указанные в “secure_path” (в файле /etc/sudoers), могут быть выполнены.

Ответ или решение

У вас возникла проблема с выполнением команды sudo su -, которая возвращает сообщение об ошибке: su: failed to execute /bin/bash: Permission denied. Давайте рассмотрим это подробнее и предложим возможные решения.

1. Контекст проблемы

Вы используете сервер Red Hat Enterprise Linux 7.7, и пользователь с правами sudo может выполнять команды по типу sudo ls и sudo cat. Однако, проблема возникает при попытке использовать sudo su -. Это может указывать на ограничение, связанное с конфигурацией sudo или с политиками безопасности, такими как SELinux.

2. Проверка прав на файл /bin/bash

Ваши проверки прав на файл /bin/bash показывают, что у него корректные права:

-rwxr-xr-x 1 root root 964592 Mar 12  2019 /bin/bash

Это указывает на то, что файл доступен для исполнения.

3. SELinux

Одной из наиболее распространенных причин возникновения ошибки "Permission denied" может быть активная политика SELinux, которая ограничивает выполнение определенных команд:

  1. Проверьте статус SELinux, выполнив команду:

    sestatus

    Если ваша система находится в режиме enforcing, это может быть источником проблемы.

  2. Для временного тестирования отключите SELinux командой:

    setenforce 0

    После этого попробуйте снова выполнить sudo su -. Если команда сработает, это означает, что проблема связана с SELinux.

4. Параметры sudoers

Если вы не хотите отключать SELinux, рассмотрите возможность изменения файла конфигурации /etc/sudoers. Убедитесь, что в нем нет параметра Defaults noexec, который может ограничивать выполнение некоторых команд:

  1. Откройте файл для редактирования (используя visudo для безопасности):

    visudo
  2. Найдите строку, содержащую Defaults noexec, и закомментируйте её или удалите.

5. Другие возможные причины

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

  • Проблемы с оболочкой: Убедитесь, что база данных ld.so.cache корректна, выполнив ldconfig от имени пользователя с правами root.
  • Логи: Проверьте логи системы (например, в /var/log/messages или /var/log/audit/audit.log) на предмет сообщений, связанных с SELinux или правами доступа.

Заключение

Проблема с выполнением sudo su - на вашем сервере Red Hat Enterprise Linux 7.7 может быть вызвана несколькими факторами, включая настройки SELinux и параметры конфигурации файла sudoers. Следуя данным рекомендациям, вы сможете определить и устранить причины возникновения ошибки. Если проблема будет сохраняться, рекомендуется дополнительно обращаться к документации или поддержке сообществ, связанным с RHEL.

Оцените материал
Добавить комментарий

Капча загружается...