linux查看用户和组的命令 linux查看用户权限
last 默认命令只显示最近的登录记录,不是所有次数
很多人用最后查看机就统计了登录次数,其实默认情况下只读取/var/log/wtmp当前周期的数据——这个文件会被logrotated轮转、清空或图了,老品早就没了。实际能查到的次数取决于系统是否保留wtmp历史记录(比如/var/log/wtmp.1、/var/log/wtmp.2.gz)。 wc -l 网略看时间 wtmp 里有太行行(注:每一行不等于登录一次,可能包括重启、关机、ftp等) 查看日志文件:ls -lt /var/log/wtmp*,如果有.gz文件,则 zcat /var/log/wtmp.1.gz | wc -l 网略看时间 wtmp 里有太行行最后 -f - 读取(-f - 从标准输入读取,读取二进制wtmp格式)最后一次输出,重新启动和运行级别行要手动排除,所有这些都不算用户登录统计,指定用户的实际登录次数使用awk过滤器+去重设计
直接最后一个用户名| wc -l 取同同最使电影的多行(如pts/0、pts/1)全算设计,而且重复登录(如断线重连)也会做很多次——但真正的需求往往是“多少次成功认证进入shell”,得按时间时间+终端组合去重。
实操建议:提取有效登录行:最后一个用户名| grep -E 'tty|pts|:0' | head -n 50(先看样例,避免匹配到旧的或无效的)按时间+终端去重计数(兼容大多数最后的输出格式):last username | awk '$1 ~ /^[a-zA-Z0-9_]+$/ && $2 ~ /^(tty|pts|:0)/ {print $5, $6, $2}' |排序 -u | wc -l($5/$6 昘日期品,$2 是电影名)如果用户使用 SSH key 自动登录,最后可能不会显示完整的终端,那么更可靠的检查 auth.log:grep 'Accepted.*for username' /var/log/auth.log* 2>/dev/null | wc -l($5/$6 昘日期品,$2 是电影名) wc -llast 命令无法统计登录失败的次数,也看不是su/sudo 开关
last 只记录成功写入wtmp 会话,所有失败的尝试(密码错、工作销),以及非登录shell 行为(如直接su - 或 sudo -i)根本不会出现。
皮卡电视
AI驱动高效视觉设计平台下载
实操故事:查进行手机:grep '密码失败' /var/log/auth.log* 2>/dev/null | grep -c 'for username' su/sudo 行为:grep -E '(su:|sudo:)' /var/log/auth.log* 2>/dev/null | grep -c 'username' 注意:auth.log可以通过rsyslog配置,路径可能是/var/log/auth.log.1或/var/log/journal(systemd systemd需要journalctl -u sshd)wtmp文件损坏或权限不足会导致最后报错“No such file or directory”或“Cannot open /var/log/wtmp”依赖的二进制日志文件不可读。常见于容器环境中,最小化安装系统(未安装sysvinit工具链接),或者管理员手动清除/var/log/wtmp但不重建结构。 “data”类型(正行应是“wtmp文件”)临时修复(慎用):touch /var/log/wtmp && chmod 644 /var/log/wtmp 不起作用;必须使用 cp /dev/null /var/log/wtmp 清空,再等下次设计电影电影
