Linux笔记 Day07---(记录用户信息日志文件及相关命令:su、who、w、last、lastlog;系统信息命令:uname、uptime、dmesg、free;单用户模式修改root密码)

本文详细介绍了Linux系统中的用户信息日志文件及相关命令,如su、who、w、last、lastlog,以及系统信息命令如uname、uptime、dmesg、free。还讲解了如何在单用户模式下修改root密码,提供了多个实例操作。此外,文章提到了Linux中用于查看系统运行时间和负载的uptime命令,以及显示开机信息的dmesg命令和查看内存状态的free命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、用户相关命令

(一)su命令

改变身份的命令 su

su 是最简单的用户切换命令,通过该命令可以实现任何身份的切换,包括从普通用户切换为 root 用户、从 root 用户切换为普通用户以及普通用户之间的切换。

普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,才能实现切换;从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功

用法: su [选项] 用户名

选项:

  • -f: –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell,执行后不改变环境变数和目录

  • -l: –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。

  • -m-p :–preserve-environment:表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)

  • -c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者
    ,执行时不改变环境变数和目录

  • -:当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。

  • 不加选项:切换用户后不改变环境变数和目录

说明:以上所有选项后如果没有指定用户名,缺省情况是root

-f ,-p,-m和不加选项的功能基本一样

【例 1】

#从普通用户切换到root用户,可以执行部分root权限
#使用-f选项不会改变环境变数和目录
[dxk@admin ~]$ whoami
dxk
[dxk@admin ~]$ pwd
/home/dxk
[dxk@admin ~]$ echo  $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dxk/.local/bin:/home/dxk/bin
[dxk@admin ~]$ su -f root
密码:
[root@admin dxk]# pwd     #注意命令行的显示,表示是从普通用户dxk切换到root用户下
/home/dxk
[root@admin dxk]# whoami
root
[root@admin dxk]# echo $PATH       #可以看到环境变量还是切换以前的用户的
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dxk/.local/bin:/home/dxk/bin
[root@admin dxk]# exit       #使用exit命令就可以退出当前用户 ,切换回以前的用户
exit
[dxk@admin ~]$ 

这里要说明的是:无论su命令使用哪个选项,从root用户切换到普通用户不需要输入密码;而普通用户切换到任何用户都需要输入密码

【例 2】

# 完全就是直接登录到root用户,大部分环境变量都是以切换过来的用户为主,并且目录也是切换过来的用户的
[dxk@admin ~]$ pwd
/home/dxk
[dxk@admin ~]$ echo  $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dxk/.local/bin:/home/dxk/bin
[dxk@admin ~]$ whoami
dxk
[dxk@admin ~]$ su -l root
密码:
上一次登录:一 7月 13 21:55:44 CST 2020pts/0 上
[root@admin ~]# pwd          #从以下可以看到环境变数和目录都切换过来了 
/root
[root@admin ~]# whoami
root
[root@admin ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@admin ~]# exit      #使用exit命令就可以退出当前用户 ,切换回以前的用户
登出
[dxk@admin ~]$ 

【例 3】

#验证:
[root@admin ~]# su -c pwd dxk  
/root				#可以看到,目录并未改变
[root@admin ~]#     #执行完后执行完该命令自行切换回原来的用户
[dxk@admin ~]$ su -c 'echo $PATH' root

密码:       		#普通用户切换到其他用户还是得输入密码
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dxk/.local/bin:/home/dxk/bin
 #变量也并未改变,root的PATH变量是:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

【例 4】

#普通用户是无法使用useradd命令的
[dxk@admin ~]$ su -c "useradd test01" root
密码:
[dxk@admin ~]$ su -c "passwd test01" root
密码:
更改用户 test01 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新
[dxk@admin ~]$

【例 5】

[dxk@admin ~]$ su - root
密码:
上一次登录:二 7月 14 09:35:48 CST 2020pts/1 上
[root@admin ~]# pwd       #目录也切换过来
/root
[root@admin ~]# pwd
/root
[root@admin ~]# echo $PATH       #环境变数也切换过来
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@admin ~]# whoami  		#同样身份也是
root
[root@admin ~]# exit
登出
[dxk@admin ~]$ 
#下面我们看看su不加选项
[dxk@admin ~]$ su root
密码:
[root@admin dxk]# pwd
/home/dxk
[root@admin dxk]# echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dxk/.local/bin:/home/dxk/bin
[root@admin dxk]# whoami
root
[root@admin dxk]# exit
exit
[dxk@admin ~]$ 
#不改变环境变数和目录

只有 -c 选项执行一条命令后用户身份会随即自动切换回来,其他切换用户的方式不会自动切换,只能使用 exit 命令进行手动切换

su 和 su - 的区别
因为我们su命令最常用的就是 susu - ,这两个的的区别是:
使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系统环境没有随用户身份切换,很多命令无法正确执行。在不使用 su - 的情况下,虽然用户身份成功切换,但环境变量依旧用的是原用户的,切换并不完整

(二) 查看当前用户信息的命令

1.who命令

显示目前登录到系统的用户的命令 who
显示当前已登录的用户信息

用法: who [选项]… [ 文件 | 参数1 参数2 ]

选项:

  • -a :显示所有用户的所有信息(上次系统启动时间、显示已死的进程、显示系统登录进程、显示由 init 进程衍生的活动进程、显示当前的运行级别、用+,- 或 ? 标注用户消息状态、列出已登录的用户)

  • -q:打印一份在本地系统上的用户和用户数的快速清单。

  • -r:显示当前系统的运行级别

  • -b:指出最近系统启动的方式和时间

who命令实际上就是通过访问该/var/run/utmp日志文件而获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值