Узнайте, кто подал в суд на вашего пользователя

Если в именах ваших файлов нет символов новой строки в них вы могли бы сделать это, просто указав оболочке разделить вывод ls только на новые строки, а не на пробелы по умолчанию. Разделение управляется переменной IFS , любые символы, содержащиеся в IFS , используются в качестве разделителей.

IFS=$'\n'      # set it to just a newline
convert $(ls -vd ./*.png) output.pdf 

Это может по-прежнему иметь проблемы, если имена файлов достаточно забавные или если ls искажает их для отображения. При печати на терминал ls обычно перечисляет файлы в нескольких столбцах. Но когда вывод не поступает на терминал (здесь его читает оболочка), он действует так, как если бы было задано -1 .


Для реализации идеи, с которой вы начали, вы можете использовать eval .

eval: eval [arg ...]
Объедините ARG в одну строку, используйте результат в качестве входных данных для оболочки и выполните полученные команды.

Но проблема с eval в том, что все и вся в командной строке снова анализируется, и даже то, что обычно безопасно, не является. Подумайте о файле с именем $ (touch HELLO) и о том, что произойдет, если такое имя будет пропущено в командной строке.

Кроме того, если вы пойдете этим путем, вы можете использовать - quoting-style = shell вместо -Q , поскольку это может соответствовать обработке оболочкой специальных символов. ближе. (Оба могут быть специфичными для GNU ls, но я думаю, что -v тоже.)

3
11.05.2017, 10:33
1 ответ

стандартные отчеты Linux об использовании su и sudo через модуль PAM в /var/log/auth.log.

Таким образом, самый простой способ — отслеживать этот файл журнала и создавать сигналы тревоги. Вы можете создать простой скрипт для отправки писем или использовать анализаторы лог-файлов (например, logstash, Graylog), которые могут вызывать сигналы тревоги.

Вот два примера протоколов использования su и sudo:

пользователь: testx успешно получил root с помощью команды su в 07:47. :26 и снова вышел в 07:47:30

May 11 07:47:26 server su[3873]: Successful su for root by testx
May 11 07:47:26 server su[3873]: + /dev/pts/3 testx:root
May 11 07:47:26 server su[3873]: pam_unix(su:session): session opened for user root by testx(uid=1002)
May 11 07:47:30 server su[3873]: pam_unix(su:session): session closed for user root

пользователь: testx успешно получил root с помощью команды sudo в 07:54:21 и снова вышел в 07:54:31

May 11 07:54:21 server sudo:    testx : TTY=pts/3 ; PWD=/ ; USER=root ; COMMAND=/bin/sh
May 11 07:54:21 server sudo: pam_unix(sudo:session): session opened for user root by testx(uid=0)
May 11 07:54:31 server sudo: pam_unix(sudo:session): session closed for user root

пользователь : testx не разрешено использовать команду sudo (неудачная попытка).

May 11 07:56:04 server sudo:    testx : user NOT in sudoers ; TTY=pts/3 ; PWD=/ ; USER=root ; COMMAND=/bin/sh

пользователь: text не разрешено использовать команду su (неверный пароль).

May 11 07:56:57 server su[3927]: pam_unix(su:auth): authentication failure; logname=testx uid=1002 euid=0 tty=/dev/pts/3 ruser=testx rhost=  user=root
May 11 07:56:59 server su[3927]: pam_authenticate: Authentication failure
May 11 07:56:59 server su[3927]: FAILED su for root by testx
May 11 07:56:59 server su[3927]: - /dev/pts/3 testx:root
3
27.01.2020, 21:21

Теги

Похожие вопросы