Linux 如何记录用户输入
我们有很多用户Linux 如何记录用户输入,linux,logging,tcsh,Linux,Logging,Tcsh,我们有很多用户suing同一个帐户,我想跟踪他们每个人在没有这些命令输出的情况下运行的命令 我试着将su管道连接到tee,效果很好,只是它也给了我输出。 script也做了同样的事情。我尝试过的另一个解决方案是使用strace,但这两种方法都会给我击键,从而捕获密码,但不会告诉我在子shell中发生了什么,或者至少我不知道如何正确使用它。我也尝试过各种有趣的重定向,但所有建议的解决方案都是针对bash的,而我一直在使用tcsh。。。 我不想使用键盘记录器,因为我不想意外捕获密码,我意识到这意味着
su
ing同一个帐户,我想跟踪他们每个人在没有这些命令输出的情况下运行的命令
我试着将su管道连接到tee
,效果很好,只是它也给了我输出。
script
也做了同样的事情。我尝试过的另一个解决方案是使用strace,但这两种方法都会给我击键,从而捕获密码,但不会告诉我在子shell中发生了什么,或者至少我不知道如何正确使用它。我也尝试过各种有趣的重定向,但所有建议的解决方案都是针对bash的,而我一直在使用tcsh。。。
我不想使用键盘记录器,因为我不想意外捕获密码,我意识到这意味着一旦人们启动文本编辑器,我就不知道他们会做什么,但我可以接受
完美的解决方案是捕捉“回音”,即用户点击return时“发送”到shell的内容,但我没有设法提出一个足够好的问题,让谷歌在这方面有所帮助。
有人能给我指出正确的方向吗
*考虑到我没有根权限
编辑:
不幸的是,我们的sudo版本是<1.7.4p4
sudo su
并不比单独的su
好多少,但是您可能想看看通过sudoers(5)
手册页中的LOG\u输入和LOG\u输出
标记激活的I/O日志功能
log\u input
如果设置,
sudo
将以伪tty方式运行命令
并记录所有用户输入。如果未连接标准输入
由于I/O重定向或由于命令
是管道的一部分,该输入也被捕获
并存储在单独的日志文件中
输入被记录到由iolog\u dir
选项指定的目录中
(默认情况下,/var/log/sudo io
)使用唯一的会话ID
它包含在普通sudo日志行中,前缀为TSID=
。
iolog\u文件
选项可用于
控制会话ID的格式
请注意,用户输入可能包含密码等敏感信息
(即使它们没有回显到屏幕上),也会以未加密的方式存储在日志文件中。在大多数情况下,只需通过日志输出记录命令输出。
log\u输出
如果设置,
sudo
将以伪tty运行命令,并记录发送到屏幕的所有输出,类似于脚本(1)命令。
如果由于I/O重定向或命令是管道的一部分,标准输出或标准错误未连接到用户的tty,则该输出也会被捕获并存储在单独的日志文件中
输出被记录到iolog\u dir
选项指定的目录中
(默认情况下,/var/log/sudo io
)使用唯一的会话ID
它包含在普通sudo日志行中,前缀为TSID=
。
iolog\u文件
选项可用于
控制会话ID的格式
可以使用sudoreplay(8)实用程序查看输出日志,
也可用于列出或搜索可用日志。
使用visudo
修改“sudoers”文件。您需要将这两个标记添加到任何为组提供权限的sudo条目中。例如:
%admins ALL=(ALL) NOPASSWD: LOG_INPUT: LOG_OUTPUT: ALL
Defaults iolog_dir=/var/log/sudo-io/%{user}
您还需要使用iolog\u dir
选项设置日志记录位置。例如:
%admins ALL=(ALL) NOPASSWD: LOG_INPUT: LOG_OUTPUT: ALL
Defaults iolog_dir=/var/log/sudo-io/%{user}
请注意,这至少需要sudo版本1.7.4p4。sudo su
并不比单独的su
好多少,但是您可能需要查看通过sudoers(5)
手册页中的LOG\u输入和LOG\u输出
标记激活的I/O日志功能
log\u input
如果设置,
sudo
将以伪tty方式运行命令
并记录所有用户输入。如果未连接标准输入
由于I/O重定向或由于命令
是管道的一部分,该输入也被捕获
并存储在单独的日志文件中
输入被记录到由iolog\u dir
选项指定的目录中
(默认情况下,/var/log/sudo io
)使用唯一的会话ID
它包含在普通sudo日志行中,前缀为TSID=
。
iolog\u文件
选项可用于
控制会话ID的格式
请注意,用户输入可能包含密码等敏感信息
(即使它们没有回显到屏幕上),也会以未加密的方式存储在日志文件中。在大多数情况下,只需通过日志输出记录命令输出。
log\u输出
如果设置,
sudo
将以伪tty运行命令,并记录发送到屏幕的所有输出,类似于脚本(1)命令。
如果由于I/O重定向或命令是管道的一部分,标准输出或标准错误未连接到用户的tty,则该输出也会被捕获并存储在单独的日志文件中
输出被记录到iolog\u dir
选项指定的目录中
(默认情况下,/var/log/sudo io
)使用唯一的会话ID
它包含在普通sudo日志行中,前缀为TSID=
。
iolog\u文件
选项可用于
控制会话ID的格式
可以使用sudoreplay(8)实用程序查看输出日志,
也可用于列出或搜索可用日志。
使用visudo
修改“sudoers”文件。您需要将这两个标记添加到任何为组提供权限的sudo条目中。例如:
%admins ALL=(ALL) NOPASSWD: LOG_INPUT: LOG_OUTPUT: ALL
Defaults iolog_dir=/var/log/sudo-io/%{user}
您还需要使用iolog\u dir
选项设置日志记录位置。例如:
%admins ALL=(ALL) NOPASSWD: LOG_INPUT: LOG_OUTPUT: ALL
Defaults iolog_dir=/var/log/sudo-io/%{user}
注意,这需要sudo版本