一:last命令
可以使用last命令,last命令可以查看用户的登录历史记录,这个命令读取/var/log/wtmp文件中的命令。last命令默认显示所有用户登录信息,如果你是想显示某个用户的登录信息,可以使用"last 用户名"这种格式。
代码演示如下图所示:
二:who和w命令
下面演示一下这两个命令,截图如下如所示:
w命令执行过程中,有许多的字段,第一行显示了当前系统时间;系统从启动到现在已经运行了的时间、登录到系统中的用户数和系统平均负载这些信息。这八个字段的含义如下:
- USER: 表示登录系统的用户。
- TTY:表示用户使用的TTY名称
- FROM: 表示远程主机地址或者名称。
- LOGIN@:表示用户登录的时间和日期。
- IDLE: 表示某一程序上次从终端开始执行到现在所持续的时间。
- JCPU: 表示该终端上所有进程以及子进程使用系统的时间。
- PCPU:当前活动进程使用的系统时间。
- WHAT:当前用户执行的进程名称和选项。
- who命令的一般输出格式为:命令[状态]终端 时间[活动] [进程标识] [主机名]
每个字段的含义如下:
- 名称: 用户的登录名。
- 状态: 显示终端是否对用户都是可写的。
- 终端: 类似于pst/1等形式,此终端标识可以在/dev目录中查找到。
- 时间:用户登录系统的时间。
- 活动:某个用户在自己终端上最后一次活动发生以来到现在的时间。
- 进程标识:用户登录Shell进程的id。
- 主机名:登录到Linux系统中的客户端标识.
三:su命令
如果你是以普通用户的身份登录系统,需要设置系统环境时,普通用户又没有这个权限,这时候就需要切换到管理员身份即root用户身份。一般情况下,我们使用普通用户的身份进管理系统的日常操作,只有在涉及某些权限的时候才会去切换身份。
su这个命令是最简单的切换用户身份的命令,这个命令可以在登录期间切换为另一个用户的身份,su命令的使用格式为:su [选项] 用户名
与su命令搭配使用的选项如下表所示:
选项 |
说明 |
- |
切换到root身份 |
-c |
切换后仅执行一次Shell命令 |
-l |
后面加上需要切换到的用户名,与su -的用法类似 |
执行su命令需要输入root密码,虽然执行id命令之后结果显示的是root的UID等信息,但是很多原本的变量并不会变成root身份下的环境变量,比如家目录仍然是/home/user3,演示如下图所示:
通过su - 切换身份是,仍然需要输入root密码,使用这种方式可以成功切换到root身份下的环境变量中。使用这种方式才会把USER、PWD、PATH等这种变量一起变成新用户的环境,如下图所示:
使用su命令的一个缺点,就是容易造成root密码泄露。
四:sudo命令
sudo命令不同与sudo命令,执行sudo命令时用户只需要知道自己的命令就可以了。sudo命令的重要配置文件就是/etc/sudores,这个文件保存了可以执行sudo命令的指定用户可以执行的特权命令。sudo命令的有效默认是5分钟,超过这个时间之后需要再次验证。
sudo命令默认情况下只有root可以使用,该命令的使用格式如下:
sudo [选项] 命令
下面是sudo命令的常用选项:
选项 |
说明 |
-b |
在后台执行指定的命令 |
-l |
列出指定用户可以执行的命令 |
-u |
以指定用户的身份执行命令 |
如果你想切换系统账户执行一些操作,通过su命令是切换不了的。这种时候sudo命令就有了优越性,比如要使用系统账户user3创建一个文件,可以使用sudo -u指定系统账户的方式执行创建文件的操作。使用ll明令可以查看文件/tmp/useruser3的创建者是user3,而不是root。演示如下图所示:
可以执行sudo命令的用户都记录在了/etc/sudoers文件里面,如果用户可以执行sudo命令,那么直接输入自己的密码就可以执行后面的操作了。
五:Linux用户管理总结
上面的总结命令只是一个框架,要想深入熟练还需要多加练习。
·