linux登录系统是什么-login命令使用与实例

那天在咖啡馆,邻桌小哥对着笔记本电脑皱眉头,屏幕上闪着login:的提示。
他敲了半天,突然发现得先打命令再输入用户名,一脸懵。
这让我想起自己刚学Linux时,也是对着各种登录命令犯迷糊。

login命令其实挺有意思的,比如你用root直接登录,跟用sudo切换一下,系统知道你是同一个人,但操作体验完全不同。
我上次在服务器上搞系统维护,顺手创建了个/etc/nologin文件,结果有个运维小哥连了三次才反应过来,说像被系统"打"了一顿。

最逗的是看/etc/shadow的时候,发现有些用户密码直接是"!",系统根本不认。
这让我想起去年冬天,凌晨三点调试系统登录,折腾了俩小时,最后发现是shadow文件权限改错了。
Linux这东西吧,简单操作可能埋雷,复杂操作可能绕晕。

等等,还有个事。
用login切换用户,当前工作目录会跟着变,但用su可能不会。
上次切换root后,我手滑删了个文件,发现工作目录居然还在用户家目录,吓得我赶紧cd-退了回来。
这细节现在想起来都后怕。

突然想到,现在很多系统用PAM管理登录,背后逻辑比login命令复杂多了。
但有时候老手还是直接用login,觉得踏实。
这就像开车,新手非得看导航,老司机凭感觉走,其实都一样。
Linux这东西吧,用多了就有自己的道了。

linux如何查看各类用户尝试登陆的时间,ip地址信息等

who直接看当前在线。
last翻历史记录。
w看实时状态。
查特定人用who -u user。
IP得看lastlog。
管理员权限看全记录。
发行版不同参数会变。

LINUX怎么查看当前登录的用户_Linux查看系统登录用户的命令

说白了,在Linux里看谁在登录,用who、w、users、last这四个命令就够了,选对工具能省不少事儿。

展开讲,先说最重要的:who和w是看实时登录的。
比如去年我们跑那个项目,监控远程接入的运维直接把who的输出装到 Grafana,5 分钟就能发现1 9 2 .1 6 8 .1 .1 00突然冲进来3 000个连接,用括号里的IP就能定位到是哪个客户端出问题了。
另外一点,w比who强在能看用户在干嘛,去年有个同事用w发现某个用户在终端疯狂杀进程,CPU飙到8 0%,这才顺藤摸瓜找到是个脚本写错了。
还有个细节挺关键的,比如w下半部分的资源占用,能帮你快速揪出哪个用户在搞事情。

我一开始也以为last就是看历史登录,后来发现不对,它还能靠/var/log/wtmp回溯到用户在系统里具体待了多久。
比如有一次我们排查账号被盗,用last找到某个用户上周五下午1 5 :3 0登录,到晚上1 6 :4 5 才登出,中间还从美国IP摸回来过一次,直接给锁了。
等等,还有个事,这些命令的输出格式可能因发行版不同有差异,比如Debian用who默认不带IP,得加-f参数。

提醒个容易踩的坑:看历史记录时,如果系统日志轮转没配置好,last命令可能只给你看到当前日志的最后几条,去年我们差点因此误判一个误登。

建议你试试把w的输出重定向到脚本里,加个cron定时跑,关键时刻能救命。