Как зарегистрировать каждую команду Linux к logserver

Я видел значения 1 000 - 1 024 составов группы, являющихся пределом, я не уверен, что это - жесткий предел, но членство этого, многие группы приводят к "маркерному чрезмерному увеличению размера", поскольку маркер содержит SIDs всех составов группы.

В Вашем случае пользователь может быть членом 400 групп непосредственно, но вложенные группы могли значительно увеличить это.

13
задан 13 November 2010 в 01:59
7 ответов

Это не то, как Вы приближаетесь к проблеме. После того как Вы предоставляете доступ оболочки к пользователю, Вы поручаете тому пользователю, чтобы сделать что-либо, к чему у него есть верные полномочия. Забудьте вход команды, существует слишком много способов выполнить команду в любой системе Unix.

Например, пользователь может запустить почтовый клиент (единственная зарегистрированная команда pine, например), там он выбирает, "Сочиняют", который запускается VI, и от VI он запускает любую команду, которую он хочет через :!cmd. Эта команда не зарегистрирована нигде, и с точки зрения системы, она похожа на любое вспомогательное приложение, названное VI, как grep или вид. Единственная команда, зарегистрированная оболочкой, была pine.

Кажется, что то, что Вы на самом деле хотите, называют, контролируя. Включите подсистему аудита и используйте auditctl команда и auditd демон от контрольного пакета для управления, что зарегистрировано. Больше информации находится в auditctl (8) страница руководства.

Обратите внимание, что, регистрируя каждое инстанцирование процесса это не может также быть оптимально. Например, простое ./configure для пакета программного обеспечения (созданные автоинструменты использования) известно созданию тысяч инстанцирований процесса. Это лавинно разошлет журнал аудита с таким большим количеством шума, что становится очень трудно проанализировать его позже.

29
ответ дан 2 December 2019 в 21:14

Установите acct пакет (имя пакета варьируется дистрибутивом, также известным как учет процесса), и использование lastcomm <username>:

[mithrandir]-[/home/sernin]-[1951] % lastcomm sernin
tr                     sernin   pts/2      0.00 secs Fri Nov 12 12:02
zsh               F    sernin   pts/2      0.00 secs Fri Nov 12 12:02
tr                     sernin   pts/2      0.02 secs Fri Nov 12 12:02
zsh               F    sernin   pts/2      0.00 secs Fri Nov 12 12:02
fortune                sernin   pts/2      0.00 secs Fri Nov 12 12:02
xmodmap                sernin   pts/2      0.00 secs Fri Nov 12 12:02
xrdb                   sernin   pts/2      0.00 secs Fri Nov 12 12:02
sh                     sernin   pts/2      0.00 secs Fri Nov 12 12:02
cpp                    sernin   pts/2      0.00 secs Fri Nov 12 12:02

Можно также искать tty или названием команды. Как обычно,man lastcomm для большего количества информации.

13
ответ дан 2 December 2019 в 21:14

Звуки мне как Вы ищете что-то как rootsh (страница справочника). Заключить страницу справочника в кавычки:

Rootsh является оберткой для оболочек, которая регистрирует все отраженные нажатия клавиш и терминальный вывод в файл и/или в системный журнал.

Несмотря на имя, это может использоваться для любого пользователя.

7
ответ дан 2 December 2019 в 21:14

Если Вы готовы сделать немного программирования C, можно сделать это путем записи библиотеки, которая переносит execve, журналы к системному журналу, то dlopen's библиотека, содержащая реальный execve syscall. Затем в/etc/environment, набор LD_PRELOAD к пути для библиотеки Вы сделали.

Вы захотите быть осторожными относительно ввода цикла здесь, таким образом, можно будет захотеть или только журнал должностное лицо определенных двоичных файлов или исключить других (как системный журнал) от того, чтобы быть зарегистрированным.

11
ответ дан 2 December 2019 в 21:14
  • 1
    @Leo Начиная с версии 2.0.0 Излишне любопытные поддержки пользовательская спецификация формата журнала при выполнении./настраивать, таким образом, сверхмногословие не должно больше быть проблемой. Раскрытие: Излишне любопытный специалист по обслуживанию здесь. –  Bostjan Skufca 23 October 2014 в 22:11

Bash может быть скомпилирован с поддержкой системного журнала с тех пор 4.1.

Это не является надежным (учет процесса мог бы быть лучше для этого), но это - главным образом взаимодействие с пользователем; объем должен быть более управляем, и Вы сможете переключиться на что-то более подробное при подозрении чего-то аварийного.

Тем не менее это - навязчивый путь, и как пользователь я ожидал бы очень определенную конфиденциальность, предупреждающую, прежде чем Вы начали делать это.

1
ответ дан 2 December 2019 в 21:14

Вы - вероятно, более обеспеченный пользовательский sudo использования наличия (или подобный) к командам выполнения, о которых Вы заботитесь о, и доверие пользователям на некотором уровне. Поскольку Вы становитесь ближе к "полностью управлению" вещами, тяжелее оно должно разыскать то, что они делают. Я недавно смотрел на инструменты как это, например. Главным образом они просто создают журналы, которыми трудно управлять, если у Вас есть достаточно пользователей и машин для создания такой вещи стоящей.:)

Рассмотрите всю информацию, которую Вы будете генерировать. О каком количестве из него Вы заботитесь? Вероятно, очень мало - таким образом, Вы генерируете журналы, которые главным образом бесполезны. Аудит вещей, о которых Вы на самом деле заботитесь о, как другие, предлагает, вероятно, получает Вас к лучшему конечному состоянию.

2
ответ дан 2 December 2019 в 21:14

Существует также sudosh (http://sudosh.sourceforge.net), который сделает вход сессии. У Вас есть опция выполнения его как определенная оболочка для пользователя или через sudo. Это отслеживает синхронизации для каждой сессии также, таким образом, можно воспроизвести сессию и наблюдать ее (включая сеансы редактирования и этажерку).

0
ответ дан 2 December 2019 в 21:14

Теги

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