Запрет повышения прав пользователям через su
Во многих руководствах по linux (и не только по linux) в вопросах безопасности регулярно появляются рекомендации выполнять все неадминистративные действия под пользователем, не имеющим прав администратора / суперпользователя. Проще говоря, все рекомендуют не работать постоянно под пользователем root и прибегать к работе под root только в необходимых случаях.
На самом деле, во многих ситуациях
возникает необходимость запускать процессы под пользователем, который не только не имеет прав root, но и не может повысить свои права до root. Никак, никаким образом. Такая необходимость возникает (создавать таких пользователей имеет смысл) для сервисов, выполняющихся на сервере. Например, Apache, Asterisk, и так далее. То есть чтобы тот, кто может получить права такого пользователя, не только не получил бы прав root, но даже (вдруг) узнав пароль root, не смог бы зайти под этим паролем (повысить свои привилегии).
В более старых версиях linux по умолчанию был выставлен следующий режим: пользователи, относящиеся к группе wheel, могут запускать команду su, а все остальные - нет. То есть запускать su могут все, но для пользователей не из группы wheel команда su даже с правильным паролем root будет выдавать ошибку.
В современных версиях linux, к примеру, CentOS и Debian, по умолчанию такая возможность отключена, т.е. все пользователи могут повысить свои права (зная пароль root). В данной статье мы покажем как вернуть режим, который был раньше - чтобы только пользователи из группы wheel могли "поднимать" свои привилегии.
С чего начать
В первую очередь, надо обезопасить себя. То есть обязательно внесите того пользователя, под которым Вы работаете, в группу wheel. Ну а если в системе работает несколько пользователей, под которыми необходимо время от времени повышать привилегии до root, то каждый из этих пользователей должен быть внесен в группу wheel!
Обратите внимание, это важно сделать до того, как Вы измените настройки linux, иначе (если к примеру, Вы подключаетесь к серверу по SSH, по SSH
доступ под рутом закрыт) зайдя под обычным пользователем по SSH, Вы не сможете повышать свои привилегии до рута!
Создать группу wheel
Возможно, что в Вашей версии linux по умолчанию нет группы wheel. Тогда ее необходимо создать. Для этого существует следующая команда:
addgroup wheel
Не бойтесь вводить эту команду: если группа wheel существует, будет выдано сообщение, что такая группа уже есть. Если же такой группы нет, она будет создана
Как внести пользователя в группу wheel
Для этого существует команда:
usermod -a -G wheel имя-пользователя
например:
usermod -a -G wheel username
Эта команда добавляет пользователя username в группу wheel. Если при этом пользователь состоит в одной или нескольких других группах, членство во всех группах сохраняется, просто пользователь добавляется в еще одну (дополнительную) группу.
Теперь проверьте, что все выполнено правильно. Для этого существует команда:
id имя-пользователя
например:
id username
Будет отображен ID пользователя, имя пользователя, а также ID и имя каждой группы, к которой пользователь принадлежит. Убедитесь, что все необходимые пользователи добавлены в группу wheel.
Запуск su только пользователями из группы wheel
Откройте в Вашем текстовом редакторе файл: /etc/pam.d/su
В этом файле найдите строку, подобную следующей:
auth required pam_wheel.so
или
auth required pam_wheel.so use_uid
По умолчанию эта строка начинается со знака "#", это энак комментария. Уберите знак комментария из начала этой строки и сохраните файл.
Всё! Теперь только пользователи из группы wheel могут выполнять команду su и повышать свои привилегии до root. Не забудьте это проверить!
|