Как просмотреть использование команды sudo в Linux

Опубликовано: 2022-08-24
Ноутбук Linux с приглашением bash
Фатмавати Ачмад Заэнури/Shutterstock.com

Команда sudo дает пользователю полномочия суперпользователя или root. Без сомнения, вы произнесли им речь «с большой силой приходит большая ответственность». Вот как проверить, слушали они или нет.

Команда sudo

Команда sudo означает «заменить пользователя». Это позволяет уполномоченному лицу выполнять команду, как если бы они были другим пользователем. Он может принимать параметры командной строки, одним из которых является имя пользователя, от имени которого вы хотите выполнить команду. Наиболее распространенный способ использования sudo — опустить параметры командной строки и использовать действие по умолчанию. Это эффективно выполняет команду от имени пользователя root.

Для использования sudo таким образом требуется специальное разрешение. Только избранные могут использовать sudo . Когда вы устанавливаете современный дистрибутив Linux, вам предлагается установить пароль root, который вы можете использовать с sudo . Разрешение на это предоставляется обычному пользователю, которого вы создаете во время установки. Это предпочтительный способ управления доступом к возможностям пользователя root. Старый способ состоял в том, чтобы создать пользователя root и войти в систему как он, чтобы администрировать вашу систему.

Это был опасный сценарий. Было легко забыть — или полениться — выйти и снова войти в систему как обычный пользователь, когда вам больше не нужны привилегии root. Любые ошибки, которые вы допустили в окне терминала как root, будут выполнены, какими бы серьезными они ни были. Вещи, которые будут заблокированы оболочкой, если их попытается сделать обычный пользователь, будут работать без вопросов, когда root запрашивает их. Использование учетной записи root вместо обычной учетной записи также представляет угрозу безопасности.

Как контролировать доступ к sudo в Linux
СВЯЗАННЫЕ С : Как управлять доступом к sudo в Linux

Использование 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 

Глядя на файл /var/log/auth.log с меньше

Файл журнала открыт, и вы можете прокручивать файл или использовать средства поиска, встроенные в less, для поиска «sudo».

Содержимое файла /var/log/auth.log отображается в менее

Даже используя средства поиска less , может потребоваться некоторое время, чтобы найти интересующие вас записи sudo .

Допустим, мы хотим узнать, для чего пользователь по имени mary использовал sudo . Мы можем искать в файле журнала с помощью grep строки с «sudo» в них, а затем снова передавать вывод через grep и искать строки с «mary» в них.

Обратите внимание на sudo перед grep и перед именем файла журнала.

 sudo grep sudo /var/log/auth.log | грэп "мэри" 

Использование grep для фильтрации записей, в которых упоминаются mary и sudo

Это дает нам строки, в которых есть «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 

Использование journalctl для поиска записей, в которых упоминается sudo

Записи журнала, в которых используется sudo , перечислены в списке less.

journalctl, отображающий записи, содержащие sudo, в средстве просмотра файлов less

Используйте клавишу «Стрелка вправо», чтобы прокрутить вправо, чтобы увидеть команду, которая использовалась при каждом вызове sudo . (Или растяните окно терминала, чтобы оно стало шире.)

Прокрутка вбок, чтобы увидеть команды, которые использовались с sudo

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

СВЯЗАННЫЕ С: Как использовать journalctl для чтения системных журналов Linux

Использование утилиты журналов GNOME

Графические среды рабочего стола обычно включают средства просмотра журналов. Мы рассмотрим утилиту журналов GNOME. Чтобы получить доступ к утилите журналов, нажмите клавишу «Супер» слева от «Пробел».

Введите «журналы» в поле поиска. Появится значок «Журналы».

Щелкните значок, чтобы запустить приложение «Журналы».

Приложение журналов GNOME

Нажав на категории на боковой панели, вы отфильтруете сообщения журнала по типу сообщения. Чтобы сделать более детальный выбор, щелкните категорию «Все» на боковой панели, затем щелкните значок увеличительного стекла на панели инструментов. Введите текст для поиска. Мы собираемся искать «sudo».

Поиск записей, содержащих sudo, в приложении GNOME Logs

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

Серый блок, содержащий количество записей в сеансе sudo.

Мы щелкнули верхнюю строку, чтобы увидеть подробности о 24 записях в этом сеансе.

Детали событий, показанные в развернутом виде

Немного прокрутив, мы можем увидеть те же события, что и при использовании команды journalctl . Необъяснимый сеанс редактирования пользователем mary файла fstab был быстро обнаружен. Мы могли бы искать «mary», но это включало бы записи, отличные от того, как она использовала sudo .

Не всем нужен root-доступ

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