Продолжаем разбираться с утилитой sudo.
Ранее мы рассмотрели:
- ? “sudo: /etc/sudoers is world writable” — как исправить права доступа к файлу sudoers
- ? Как настроить sudo переключатель на другого пользователя, у которого нет пароля или ключа ssh в Linux
- Как восстановить привилегии Sudo для пользователя
- Как запускать определенные команды без пароля Sudo в Linux
- Как найти всех пользователей Sudo в вашей Linux-системе
- Сохранять журналы пользователя после использования sudo su -: Вторичная регистрация
- Как использовать Docker без sudo на Ubuntu
В этом руководстве описываются шаги по усилению безопасности системы путем запрета пользователям с доступом sudo получать привилегии суперпользователя с помощью команды:
$ sudo su
Команда sudo позволяет системному администратору разрешить пользователю или группе пользователей запускать определенные инструменты командной строки с различными привилегиями (такими как привилегия суперпользователя «root»), зная только исходный пароль пользователя.
При запуске команды sudo она пытается найти соответствующую команду в своих файлах конфигурации /etc/sudoers или /etc/sudoers.d/; если совпадение найдено, пользователю предоставляется право на запуск команды, если нет, то событие регистрируется и команда отклоняется.
Команда sudo работает путем сопоставления аргументов командной строки с каждой записью в файлах / etc / sudoers или /etc/sudoers.d/. Первый найденный элемент определяет результат.
Каждое правило проверяется в своем порядке в файле /etc/sudoers.
Правило сопоставляется с началом команды.
Если правило короче команды, проверяется только совпадающая часть в начале команды; любой остаток команды не проверяется.
Порядок правил /etc/sudoers имеет значение; всегда ставьте более длинные правила перед более короткой версией.
1. Войдите на сервер под учетной записью root.
2. Сделайте резервную копию файла конфигурации /etc/sudoers.
# cp -p /etc/sudoers /etc/sudoers.ORIG
3. Отредактируйте файл конфигурации /etc/sudoers.
# visudo -f /etc/sudoerss
Из:
##Allow orarom user to run any command (enabled for patching from oracle platnum support) orarom ALL=(ALL) ALL
В:
##Limit the orarom user to run any command (enabled for patching from oracle platnum support), except for sudo su to root orarom ALL = ALL, !/bin/su
4. Затем сохраните файл.
5. Пожалуйста, сделайте то же самое с другой учетной записью пользователя в sudo.
Проверка
Давайте проверим, отключили ли мы доступ sudo для пользователя.
$ sudo su - [sudo] password for orarom: Sorry, user orarom is not allowed to execute '/bin/su -' as root on testvm01.
А как на счёт `sudo /bin/bash` и других оболочек? Одну дырку в заборе заколотили, а рядом ещё десять… :/
Это да, тут как пример идет настройка.
Вообще можно использовать алиас, типа такого:
Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
/usr/local/bin/tcsh, /usr/bin/rsh, \
/usr/local/bin/zsh,
Шрифт нечитаемый, очень узкий интервал между словами. Вырвиглаз