Поиск по сайту:

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


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

Команда 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.

less /var/log/auth.log

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

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

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

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

sudo grep sudo /var/log/auth.log | grep "mary"

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

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

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

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

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

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

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

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

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

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

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