当有人使用Winscp打开会话时,当我运行who
或执行last
命令时,其会话未在Linux中显示。我以为它会出现,因为它正在使用ssh进行连接。但是仍然没有记录。它可能被证明是一个安全问题。
我的意思是,如果用户登录并删除了一些文件,并且没有任何记录。我们将如何追踪呢?
who
并且last
仅在您登录时显示。使用scp
时,从技术上讲,您尚未登录,因为在远程端的外壳不是这样生成的。
为了追踪您需要利用过程核算的事情,一个名为的软件包psacct
可以为您提供所需的日志记录级别。此外,如果需要的话,可以扩展通过SSH的日志记录,以向您显示其中的一些详细信息。
命令who
和last
并非用于此目的。
该术语总是使人们感到困惑,因为他们将连接与登录相关联,但是它们是2个截然不同的状态。访问Web服务器时,您在不登录的情况下消耗了远程系统的资源。本质上,这就是在执行时所要执行的操作scp
。
最后和谁的手册页摘录
最后的谁last,lastb-显示最近登录用户的列表
谁-显示谁登录
在这里,我已经使用SFTP登录到服务器,但是who
并last
没有提到。
$ ps auxf | less
...
root 3376 0.0 0.0 7212 1040 ? Ss Sep10 0:00 /usr/sbin/sshd
root 29066 0.0 0.0 10108 3004 ? Ss 09:44 0:00 \_ sshd: sam [priv]
sam 29071 0.0 0.0 10240 1836 ? S 09:44 0:00 | \_ sshd: sam@notty
sam 29072 0.1 0.0 6708 1740 ? Ss 09:44 0:00 | \_ /usr/libexec/openssh/sftp-server
root 29202 0.1 0.0 10084 3052 ? Ss 09:44 0:00 \_ sshd: root@pts/0
root 29204 0.6 0.0 6268 3052 pts/0 Ss 09:44 0:00 \_ -bash
root 29255 0.0 0.0 4624 1108 pts/0 R+ 09:45 0:00 \_ ps auxf
root 29256 0.0 0.0 4288 760 pts/0 S+ 09:45 0:00 \_ less
由于我没有执行作为登录外壳程序的外壳程序,因此从技术上讲,我没有登录。ssh
如上所述,当我以root用户身份进入系统时,确实有一个外壳程序bash
。
who -a
Bear的输出证明了这一点:
$ who -a
2014-09-10 05:15 398 id=si term=0 exit=0
system boot 2014-09-10 05:15
run-level 5 2014-09-10 05:15 last=S
2014-09-10 05:16 2307 id=l5 term=0 exit=0
LOGIN tty1 2014-09-10 05:16 3785 id=1
LOGIN tty2 2014-09-10 05:16 3786 id=2
LOGIN tty3 2014-09-10 05:16 3787 id=3
LOGIN tty4 2014-09-10 05:16 3788 id=4
LOGIN tty5 2014-09-10 05:16 3792 id=5
2014-09-10 05:16 3794 id=6
2014-09-10 05:16 3799 id=x
root + pts/0 2014-09-25 09:51 . 29300 (mulder.mydom.net)
pts/1 2014-09-24 16:36 20324 id=ts/1 term=0 exit=0
pts/1 2014-09-12 02:40 27603 id=/1 term=0 exit=0
pts/2 2014-09-12 03:21 27820 id=ts/2 term=0 exit=0
请注意,通过SFTP连接没有引用用户sam。如果要确定外壳是否是交互式的,请参阅标题为:如何检查外壳是否为login / interactive / batch的此U&L问答。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句