linux基础知识-10
Tofloor
poster avatar
老陌
deepin
2018-07-14 23:21
Author
本帖最后由 myccloves 于 2018-7-14 15:22 编辑

参见:https://www.cnblogs.com/myccloves/p/9309716.html

可以通过/etc/passwd和/etc/group查看用户名,组名,用户ID,组ID等信息,但我们一般通过命令来查看用户相关的信息。

一、id命令
用id命令来确定用户的成员身份信息。



默认情况下(没有参数),id命令显示当前用户信息。 显示uid,gid,用户所属主要组,用户所属次要组。
如果只想要知道部分信息可以添加参数:

id [option] [username]

选项        说明
-g, --group        只打印主要组ID
-G, --groups        打包所有组id
-u, --user        只打印用户id
-n,--name        显示用户名或组名,默认是显示ID,需要和上面的选项配合使用
例:打印用户所有组

  1. id -Gn
Copy the Code


二、whoami命令
此命令打印当前用户名,与 id -un效果一样。
一般在bash shell的提示符中,显示了用户名,所以很少用。但有些shell只显示一个$,这样whoami就很有用了。



三、当前登录的是谁?
之前我们学过通过who命令来查看当前谁登录了系统。还有两个命令可以查看谁登录了系统:users, w



users最简单,只打印登录的用户名。
who命令可以显示用户名,登录的终端,登录的时间信息。
w显示更多的信息:

第一行显示:当前时间,自开机以来运行时间,用户数量,1,5,15分钟的平均负载。 之后显示的是:

列:        说明
USER:        用户名
TTY:        用户登录的终端
FROM:        如果用户从网络登录,显示登录地址
LOGIN@:        用户开始会话时间
IDLE:        终端已经空闲的时间
JCPU:        与此终端会话相关的进程所消耗CPU时间
PCPU:        当前进程消耗CPU时间
WHAT:        用户当前进行进程


四、转换身份
在linux中,用户想临时变成另一个用户,比如:张三想临时用我的终端,这时需要切换(switch user)到他的用户,这个命令就是:su

su把用户id转换到指定的user,如果没有指定用户名则切换到root

su [options] [user]

选项        说明
-        使shell成为登录shell
-c        运行指定命令,然后返回
-m,-p        保持当前环境
-s, --shell=SHELL        用SHELL作为新用户的shell
注意:在切换用户时,需要知道用户的密码。



(一)登录shell和非登录shell
当执行 su test 时称为非登录shell,这个shell运行的命令都属于test用户,但这个shell的许多环境都从原先用户那里继承。为了作为新用户完全登录需要执行: su - test,这个shell称为登录shell。

(二)切换到根用户
  1. su -
  2. su - root
Copy the Code


不指定用户名,默认就切换到根用户,根用户的提示符是#,而普通用户的提示符是:$



五、次要组转换主要组
我们可以临时修改用户的主要组,使用newgrp命令。 注意这个组必须是用户的次要组(也就是把次要组转换为主要组),一旦用户注销后则恢复初始状态。

newgrp testgroup
如果newgrp后面没有参数,则切换到同用户名相同的组。

例:


touch abc创建文件abc,发现文件所属组是cclove, 之后用id -nG 查看一下当前用户的次要组有很多,我们选择lp做为主要组,使用:newgrp lp命令。 之后我们再创建文件 touch abd发现abd文件的属组变成了lp。

最后用id查看一下用户信息,发现主要组变成了lp
Reply Favorite View the author
All Replies

No replies yet