- whoami命令
显示与当前的有效用户ID 相关联的用户名,与id -un 相同
# whoami
# id -un
查询当前登录的用户名
whoami:显示的是当前用户下的用户名
who am i:显示的是登录时的用户名
who:显示当前真正登录系统中的用户
(不会显示那些用su命令切换用户的登录者)
- w命令
# w
显示已经登陆系统的用户列表,并显示用户正在执行的指令
第一行中依次显示当前时间, 系统的持续运行时间, 登录的
用户数, 和最近 1,5,15分钟的系统平均负载 (load average)
-h:不打印头信息
-u:当显示当前进程和cpu时间时忽略用户名
-s:使用短输出格式
-f:显示用户从哪登录
-V:显示版本信息
- last命令
last命令的作用是显示近期用户或终端的登录情况,通过查看系统记录的日志文件内容,获知登录系统或终端的用户名单
# last
显示近期用户或终端的登录情况
第一列: 用户名
第二列: 终端位置
pts: 从SSH或TELNET的远程连接用户
tty:直接连接到计算机或者本地连接用户
除了重启,所有状态会在启动时显示
第三列: 登录IP或者内核
0.0或者什么都没有的话:意味着用户通过本地终端连接
重启活动,会显示内核版本
第四列: 开始时间
第五列: 结束时间
still log in: 还在登录
down: 直到正常关机
crash: 直到强制关机
第六列: 持续时间
# last -n 5 -R
简略显示,并指定显示的个数
-R:不显示登入系统的主机名称或IP地址
# last -n 5 -a -i
最后一列显示主机IP地址
# last -n 15
显示最近15条记录
# last -n 5 root
显示最近root用户的5条记录
# last -n 8 -f /var/log/btmp
指定记录文件,btmp可以显示远程登录,例如ssh登录
-f:指定记录文件
# last -F
显示完整登录和登出信息
-a:把从何处登入系统的主机名称或ip地址,显示在最后一行
-d:将IP地址转换成主机名称
-n:设置列出名单的显示列数
-x:显示系统关机,重新开机,以及执行等级的改变等信息
wtmp,btmp,utmp均为二进制文件,不能用cat查看,可用last打开
echo > /var/log/wtmp 可清空wtmp记录
关当前登录用户的信息记录在文件utmp中
登录进入和退出记录在文件wtmp中;
最后一次登录文件可以用lastlog命令查看
数据交换、关机和重起记录在wtmp文件中
- lastb命令
lastb指令和用 last -f /var/log/btmp 结果一样
# lastb
列出登入失败的用户记录
# lastb -a
使用-a参数把IP显示在最后列
-a 在最后一列显示主机名称
# lastb -R
使用-R参数不显示主机名和IP信息
-R 简略显示主机名区域
# lastb -n 6
显示6条登录失败的信息
# lastb -n 6 root
显示6条root用户登录失败的信息
lastb 与last命令类似,lastb命令查找var/log/btmp 文件
-t 根据登陆的时间显示指定用户的登录状态
-d 对于非本地登录的用户,将显示的IP地址转换为主机名
-i 类似于“-d” 的选项,将显示的主机名称转换为IP地址
-o 读取旧的类型的wtmp 文件
-x 显示系统登录等级
--help 显示帮助信息
--version 显示版本显示
- lastlog命令
需要以root身份运行该命令
# lastlog
显示系统中所有用户最近一次登录信息
# lastlog -b 7
显示指定天数前的登录信息
# lastlog -t 7
显示指定天数以来的登录信息
# lastlog -u root
显示指定用户的最近登录信息
-u 打印LOGIN用户的最近登录记录
# lastlog -C -u root
清除指定用户的登录信息
-b 仅打印早于设定时间的登录记录
-C 清除指定用户的登录信息
-h 显示帮助信息
-R chroot到的目录
-t 仅打印晚于设定时间的最近登录记录
- users命令
# users
显示系统当前登录的用户
- ac命令
# ac
输出用户连接时间
# ac -d
按每天的统计数据打印
# ac -d -y
根据日期(含年份)显示所有用户的登录总时间
# ac -d -p
根据日期,每个用户的登录总时间
# ac -p
每个用户的登录总时间
# ac -d root
查看单个用户的登录时间
-d 按每天的统计数据打印
-y 在显示日期的时候输出年份
-p 打印每个账号的总的连接时间。
- su命令
普通用户切换到root用户,使用su –或su root,必须输入root密码
root用户切换到普通用户,使用su username,不需要输入密码
# su
切换到root,不切换环境
Shell环境仍然是普通用户的Shell
# su - root
用户和Shell环境一起切换成root身份
# su -c ls root
切换用户执行命令,执行后返回原用户
# su - root -c lastb
不切换成 root,但是执行lastb命令
-l 使得shell为可登录的shell
-f 传递给shell(针对csh或tcsh)
-m 不重置环境变量
-p 与-m同
-s 如果/etc/shells允许,运行SHELL.
--help 显示帮助
--version 输出版本信息并退出
单一的 - 意味着-l.如果没有给定USER,则假定为root
- visudo命令
需要超级用户权限;默认编辑/etc/sudoers文件;
sudoers文件的默认权限是440,默认无法修改;该命令可以在不更改sudoers文件权限的情况下,直接修改sudoers文件;
# visudo
编辑/etc/sudoers文件
# visudo -c
编辑/etc/sudoers文件,并检查语法等错误
-c 纯检查模式
-f 指定sudoers文件的位置
-h 显示帮助信息
-q 较简略的语法错误信息
-s 严格语法检查
-V 显示版本信息并退出
-x 以JSON格式将sudoers写入输出文件
- logname命令
# logname
显示当前用户登录名
- passwd文件
#cat /etc/passwd
account:password:UID:GID:GECOS:directory:shell
account 使用者在系统中的名字,它不能包含大写字母
password 加密的用户密码,或者星号
加密的口令放在/etc/shadow中,那个文件只有超级用户能读
UID 用户 ID 数
GID 用户的主要组 ID 数
GECOS 该字段可选,通常,它包含了用户的全名
directory 用户的$HOME目录.
shell 登录时运行的程序(如果空的,使用/bin/sh)
如果设为不存在的执行命令,用户不能通过login登录.
- group文件
# cat /etc/group
组名是用户组的名称,由字母或数字构成
与/etc/passwd中的登录名一样,组名不应重复。
口令字段存放的是用户组加密后的口令字
一般Linux系统的用户组都没有口令,这个字段一般为空,或者是*
组标识号(GID)与用户标识号类似,为整数,被系统内部用来标识组
属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔
这个用户组可能是用户的主组,也可能是附加组