linux-用户轨迹

版权声明:来一来,看一看,有钱的捧个人场,没钱的你不得捧个人场 https://blog.csdn.net/wait_for_eva/article/details/85306425

终端类型

能够登录服务器,并且进行用户登录校验的设备接口,这就是终端。

当登录以后,进行操作和查看信息是理所当然的,不够也要受到权限的控制。

回过头来划分,所谓终端是包含了硬件和软件两个部分的。

硬件是显示屏之类的,进行信息展示。

软件就是用户鉴权的程序,至于权限控制,那就是Linux本身的程序了。

终端 类型 说明
console 控制台 直连服务器进行信息显示
和用户无关,无鉴权操作
相当于服务器自身设备一部分
pty 物理终端 直连服务器,显示服务器信息
无关用户,不鉴权,就是console
ptyconsole的类别称谓
consolepty的具体实现名称
tty 虚拟终端 附加在物理终端之上,进行显示,都是存在于本地
Linux上面可以看到tty#,就是虚拟终端
区别于远程登录,包括上述所说,都是通过VGA进行连接显示的
ttyS 串行终端 通过串口进行通信并进行显示,主要区别于VGA显示方式
串行终端多是字符设备,图形显示设备都是类VGA的方式
强行去区分的话,VGA可以有华丽的图形化桌面
但是命令行这种基本上都是字符的界面差别不大
pty 伪终端 shell远程连接时候的终端类型
建立在一个伪文件系统之上,故称之为伪终端
  • 终端的数量

Linux认识那个就是多用户的,所以终端类型也是有复数个。

哪怕是最近距离的物理终端,也有复数个,所以其他类型的终端都不止一个,具体编号显示时会标出。

不过在物理终端中的console却是唯一,只会有一个正统的控制台

不过没什么矛盾的,tty1也只有一个。

一方面是类型,一方面是具体,总要有特殊性才称得上是个体

用户活动

whoami

whoami

查看当前登录用户名,仅仅如此

who

who

这个信息比较丰富,默认的就会输出用户名、终端、时间、备注

如果记不清楚含义,可以加一下-H,会把头信息打印一下

who -H

在这里插入图片描述

选项 说明
-a 一些列的选线,可以man who具体看一下
-t time,时间
-H head,头信息
-r runlevel,运行级别
-p process,进程号

更多信息,有兴趣的可以man一下。

w

w

在这里插入图片描述

这个就比较丰富,会显示

用户、终端、登录地址、登录时刻、空闲时间、cpu、做什么

其实who也可以,不过不会自带这么全的信息。

选项 说明
-h 去头
-s short
-f from
-i ip
-o old-style

不过,差别真的不大,直接w即可,选项没太必要。

用户轨迹

last

last

在这里插入图片描述

用户、终端、IP、日期、登录时间、登出时间、活动时长

last -n 3

-n之后,可以指定最近登录活动的次数。

这个命令是Linux本身的日志查看,对应文件为/var/log/wtmp

lastb

lastb

last,查看登录日志,但是记录的是错误登录的日志,对应文件为/var/log/btmp

很幸运也很不幸的是,我并没有看到啥。

毕竟也没谁黑我,哈哈,自己错误登录就能看到了,这个就不说了。

last选项差不多,都能用。

lastlog

lastlog

在这里插入图片描述

所以说,Linux会创建很多用户不是吹的。

不过别乱删,很多事必须的,如果背熟了,有外人来访,想想都刺激。

在这里插入图片描述

就这些了

lastlog -u root

针对用户号监控登录记录啊。

工具命令

sleep

sleep 3

会编程的就很熟悉了,休眠啊,这是纯正的系统休眠了,没有借助JVM或者啥东西,直接的休眠。

basename

basename /etc/own/tools/test

知道路径,不管相对的还是绝对的,获取文件名,谁都做过吧。

有的截取,有的正则。感觉有用又不是很有用,十分鸡肋。

basename也很是鸡肋,它能够获取最末端的文件名,也能够对后缀进行操作。

但是它取不到路径哦,哈哈哈。

上述就能够得到test,你觉得好用…么?

hostname

hostname
hostname www.godme.com

hostname直接使用的话,就是查看本机主机名

后面有 参数的话,就是设置主机名了

对应的环境变量HOSTNAME,直接修改环境变量是改不了的哦

RANDOM

echo $RANDOM

获取随机数,看起来是个变量,但是没都会变得。

范围[0,32768],32位的嘛,至于64位,不就是65535了么。

这个的随机数,都是熵池里面取得的,具体分类如下两种。

设备 来源 阻塞 说明
/dev/random 熵池 熵池空以后可能返回空值
请求填充熵池
/dev/urandom 熵池 熵池空以后软件自动生成随机数返回

利用软件生成的随机数难免有迹可循。

从易用的角度来看,不会阻塞的urandom比较好。

从安全的角度衡量,random拥有更高的安全价值。

mail

  • 查看
mail

直接mail就能够进入了,通过序号进行邮件查看,q则退出。

在这里插入图片描述

就是那个序号。

在这里插入图片描述

内容就是content。一个q就能退出了。

  • 发送
echo "content" | mail -s "subject" root

那一封就是这样发送出去的。

  • 内容
echo "content"

使用|流进行内容的传输,所以呢,你还可以有很多种方法。

比如

cat "XXX" | mail root

或者重定向

mail root < cat "XXX"

都可以,你用EOF现场手写也没问题。

  • 主题

-s指定subject

  • 附件

-c,自动拷贝文件作为附件发送。

  • 发送

最后的就是用户啦,也可以是邮箱地址,可以列表哦。

脚本

报时

#!/bin/bash
while ((1)) ;do
    date +"%Y-%m-%d %H:%m:%S"
    sleep 1
done

想要整点报时的话,还要进行整点匹配。

重复输出太浪费资源,第一次匹配之后就sleep,这样比较方便。

不过还不如crontab呢,啥都方便了,所以这个就这样算了。

好友关注

#!/bin/bash
while ((1));do
    who | grep "godme"
    if [ $? -eq 0 ];then
        echo "friend godme login"
    fi
    sleep 10
done

文件名获取

#!/bin/bash
fileName=`basename $0`
echo "myname is $filename"

看起来好简单,不过我想说明的是,及时是$0,表现也不一样。

相对路径运行

./name.sh
# $0显示的是./name.sh

绝对路径

/home/godme/name.sh
# $0显示的是/home/godme/name.sh

要做到无区别的话,最好basename,提示的就都会是name.sh了。

猜你喜欢

转载自blog.csdn.net/wait_for_eva/article/details/85306425