Linux用户登录记录

问题练习:如何判断一个用户是否登录到了系统?
预先创建一个用户和密码,登录一次,而不是su -,之后运行如下命令:
[root@xiaoke backup]# who | grep hadoop
显示结果: hadoop   pts/2        2017-03-09 07:47 (172.16.1.166)
[root@xiaoke backup]# echo $?
显示结果: 0
备注:0表示成功登录过,其他数字代表没有登录过,例如:
[root@xiaoke backup]# who | grep hbase
[root@xiaoke backup]# echo $?
显示结果: 1
1. w
解释: 显示哪个用户登录并且在干什么
帮助: man w
举例: [root@xiaoke ~]# w
显示结果: 08:53:36 up  3:44,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                06:14    2:39m  0.01s  0.01s -bash
root     pts/0    192.168.6.1      06:14    2:12m  0.08s  0.01s -bash
root     pts/1    192.168.6.10     08:03    0.00s  0.05s  0.00s w
备注: 如果显示终端的窗口过于小会提示XXX column window is too narrow,可以使用w | cat命令
IDLE:空闲时间
2. last
解释: 显示/var/log/wtmp文件,主要显示用户登录历史及系统重启历史
选项: -n #:显示最近#次的相关信息
举例: [root@xiaoke ~]# last -n 3
显示结果: root     pts/1        192.168.6.10     Thu Mar  9 08:03   still logged in   
hadoop   pts/2        172.16.1.166     Thu Mar  9 07:47 - 07:52  (00:04)    
root     pts/2        172.16.1.166     Thu Mar  9 07:47 - 07:47  (00:00)    
wtmp begins Sun Feb 12 18:47:40 2017
3. lastb
解释: 显示/var/log/btmp文件,显示用户错误的登录尝试
选项: -n #:显示最近#次的相关信息
举例: [root@xiaoke ~]# lastb
显示结果: root     ssh:notty    192.168.6.10     Thu Mar  9 09:15 - 09:15  (00:00)    
root     ssh:notty    192.168.6.10     Thu Mar  9 09:15 - 09:15  (00:00)    
btmp begins Thu Mar  9 09:15:15 2017
备注: 事先打开其他终端尝试登录,并输错密码,之后再执行上述命令。
注意: 此命令可以看出谁会尝试登录Linux服务器(黑客等)
4. lastlog
解释: 显示每一个用户最近一次的成功登录信息
选项: -u USERNAME:显示特定用户最近的登录信息
举例: [root@xiaoke ~]# lastlog
显示部分结果:
用户名           端口     来自             最后登陆时间
root             pts/1    192.168.6.10     四 3月  9 08:03:38 +0800 2017
...
jerry                                      **从未登录过**
hadoop           pts/2    172.16.1.166     四 3月  9 07:47:59 +0800 2017

[root@xiaoke ~]# lastlog -u hadoop
显示结果:
用户名           端口     来自             最后登陆时间
hadoop           pts/2    172.16.1.166     四 3月  9 07:47:59 +0800 2017
5. basename
解释: 取路径中的最后一个部分
用法: 主要在shell脚本中使用,配合变量$0使用,代表文件名本身,即执行脚本时的脚本路径及名称
举例: [root@xiaoke ~]# basename /etc/sysconfig/network-scripts/
显示结果: network-scripts

shell脚本中往往会引用脚本名称,如果脚本自身名称发生改变就要更改脚本内的名称
这样就比较繁琐,所以在脚本中使用basename $0就可以化繁为简了。
6. mail
解释: 与邮件相关
举例:
[root@xiaoke ~]# mail
显示结果: No mail for root

测试收发电子邮件
[root@xiaoke ~]# cat /etc/fstab | mail -s "How are you ?" root
[root@xiaoke ~]# cat /etc/fstab | mail -s "I LOVE YOU" root
[root@xiaoke ~]# cat /etc/inittab | mail -s "Thank You" root
备注:将/etc/fstab文件内容作为信件正文交给mail命令,-s后面加邮件主题,之后加收件人
[root@xiaoke ~]# mail
显示结果: Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/root": 3 messages 2 new
1 root Thu Mar  9 10:39  33/1343  "How are you ?"
>N  2 root Thu Mar  9 10:54  32/1329  "I LOVE YOU"
N  3 root Thu Mar  9 10:55  43/1407  "Thank You"
&
备注: N:代表新的邮件
U:代表未读邮件(第1次打开后看到的是N,如果没有看而退出,第2次打开是U)
#:代表邮件编号,显示结果中的123
& #:查看第#个邮件内容
& d #:删除第#个邮件
& q:代表退出
另:发邮件还可以用输入重定向
[root@xiaoke ~]# mail -s "Network Card" root < /etc/sysconfig/network-scripts/ifcfg-eth0 
[root@xiaoke ~]# mail
显示部分结果: Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/root": 3 messages 1 new 2 unread
>N  3 root Thu Mar  9 11:04  24/645   "Network Card"
&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值