Как просмотреть использование команды sudo в Linux
Опубликовано: 2022-08-24 Команда sudo
дает пользователю полномочия суперпользователя или root. Без сомнения, вы произнесли им речь «с большой силой приходит большая ответственность». Вот как проверить, слушали они или нет.
Команда sudo
Команда sudo
означает «заменить пользователя». Это позволяет уполномоченному лицу выполнять команду, как если бы они были другим пользователем. Он может принимать параметры командной строки, одним из которых является имя пользователя, от имени которого вы хотите выполнить команду. Наиболее распространенный способ использования sudo
— опустить параметры командной строки и использовать действие по умолчанию. Это эффективно выполняет команду от имени пользователя root.
Для использования sudo
таким образом требуется специальное разрешение. Только избранные могут использовать sudo
. Когда вы устанавливаете современный дистрибутив Linux, вам предлагается установить пароль root, который вы можете использовать с sudo
. Разрешение на это предоставляется обычному пользователю, которого вы создаете во время установки. Это предпочтительный способ управления доступом к возможностям пользователя root. Старый способ состоял в том, чтобы создать пользователя root и войти в систему как он, чтобы администрировать вашу систему.
Это был опасный сценарий. Было легко забыть — или полениться — выйти и снова войти в систему как обычный пользователь, когда вам больше не нужны привилегии root. Любые ошибки, которые вы допустили в окне терминала как root, будут выполнены, какими бы серьезными они ни были. Вещи, которые будут заблокированы оболочкой, если их попытается сделать обычный пользователь, будут работать без вопросов, когда root запрашивает их. Использование учетной записи root вместо обычной учетной записи также представляет угрозу безопасности.
Использование sudo
фокусирует ум. Вы вступаете в те же самые опасные воды, но делаете это сознательно и, надеюсь, проявляете большую осторожность. Вы вызываете свой статус суперпользователя только тогда, когда вам нужно сделать что-то, для чего он нужен.
Если вы открываете корневой доступ для других пользователей, вы хотите знать, что они проявляют к ним такую же заботу, как и вы. Вы не хотите, чтобы они запускали команды безрассудно или спекулятивно. Здоровье и благополучие вашей установки Linux зависят от уважительного и ответственного поведения привилегированных пользователей.
Вот несколько способов контролировать их использование root.
Файл auth.log
Некоторые дистрибутивы ведут журнал аутентификации в файле с именем «auth.log». С появлением и быстрым внедрением systemd
потребность в файле «auth.log» отпала. Демон systemd-journal
объединяет системные журналы в новый на тот момент двоичный формат, а journalctl
предоставляет вам возможность просматривать или запрашивать журналы.
Если у вас есть файл «auth.log» на вашем компьютере с Linux, он, вероятно, будет в каталоге «/var/log/», хотя в некоторых дистрибутивах имя файла и путь «/var/log/audit/audit .журнал."
Вы можете открыть файл less
, как это. Не забудьте настроить путь и имя файла в соответствии с вашим дистрибутивом и будьте готовы к тому, что ваш Linux даже не создаст файл аутентификации.
Эта команда работала на Ubuntu 22.04.
меньше /var/log/auth.log
Файл журнала открыт, и вы можете прокручивать файл или использовать средства поиска, встроенные в less, для поиска «sudo».
Даже используя средства поиска less
, может потребоваться некоторое время, чтобы найти интересующие вас записи sudo
.
Допустим, мы хотим узнать, для чего пользователь по имени mary
использовал sudo
. Мы можем искать в файле журнала с помощью grep
строки с «sudo» в них, а затем снова передавать вывод через grep
и искать строки с «mary» в них.
Обратите внимание на sudo
перед grep и перед именем файла журнала.
sudo grep sudo /var/log/auth.log | грэп "мэри"
Это дает нам строки, в которых есть «sudo» и «mary».
Мы видим, что пользователю mary
были предоставлены привилегии sudo
в 15:25, а в 15:27 она открывает файл fstab
в редакторе. Это тот тип деятельности, который определенно требует более глубокого изучения, начиная с чата с пользователем.
Использование журналаctl
В дистрибутивах Linux на основе systmd
предпочтительным методом является использование команды journalctl
для просмотра системных журналов.
Если мы передаем имя программы в journalctl
, он будет искать в файлах журналов записи, содержащие ссылки на эту программу. Поскольку sudo
— это двоичный файл, расположенный в «/usr/bin/sudo», мы можем передать его в journactl
. Параметр -e
(конец пейджера) указывает journalctl
открыть файловый пейджер по умолчанию. Обычно это будет less
. Дисплей автоматически прокручивается вниз, чтобы показать самые последние записи.
sudo journalctl -e /usr/bin/sudo
Записи журнала, в которых используется sudo
, перечислены в списке less.
Используйте клавишу «Стрелка вправо», чтобы прокрутить вправо, чтобы увидеть команду, которая использовалась при каждом вызове sudo
. (Или растяните окно терминала, чтобы оно стало шире.)
А поскольку выходные данные отображаются в формате less
, вы можете искать текст, такой как имена команд, имена пользователей и метки времени.
СВЯЗАННЫЕ С: Как использовать journalctl для чтения системных журналов Linux
Использование утилиты журналов GNOME
Графические среды рабочего стола обычно включают средства просмотра журналов. Мы рассмотрим утилиту журналов GNOME. Чтобы получить доступ к утилите журналов, нажмите клавишу «Супер» слева от «Пробел».
Введите «журналы» в поле поиска. Появится значок «Журналы».
Щелкните значок, чтобы запустить приложение «Журналы».
Нажав на категории на боковой панели, вы отфильтруете сообщения журнала по типу сообщения. Чтобы сделать более детальный выбор, щелкните категорию «Все» на боковой панели, затем щелкните значок увеличительного стекла на панели инструментов. Введите текст для поиска. Мы собираемся искать «sudo».
Список событий фильтруется, чтобы отображались только те события, которые относятся к команде sudo
. Небольшой серый блок в конце каждой строки содержит количество записей в этом сеансе событий. Щелкните строку, чтобы развернуть ее.
Мы щелкнули верхнюю строку, чтобы увидеть подробности о 24 записях в этом сеансе.
Немного прокрутив, мы можем увидеть те же события, что и при использовании команды journalctl
. Необъяснимый сеанс редактирования пользователем mary
файла fstab
был быстро обнаружен. Мы могли бы искать «mary», но это включало бы записи, отличные от того, как она использовала sudo
.
Не всем нужен root-доступ
Там, где есть реальное, разумное требование, предоставление привилегий sudo
другим пользователям может иметь смысл. Точно так же имеет смысл проверять их использование — или злоупотребление — этими полномочиями, особенно сразу после того, как они были им даны.